BscScan - Sponsored slots available. Book your slot here!
BEP-20
MEME
Overview
Max Total Supply
210,000,000,000Terk
Holders
1,637,211 (0.00%)
Market
Price
$0.0463 @ 0.000067 BNB (+7.57%)
Onchain Market Cap
$9,727,859,400.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
10,019.133915916840077842 TerkValue
$464.12 ( ~0.667213732156428 BNB) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Terkehh
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2021-12-21
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryDiv}.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a / b;
}
}
library RoundPool{
using SafeMath for uint256;
struct RoundBalances{
uint8 status;
uint256 cailm;
uint256 total;
}
struct RoundTime{
uint256 timeStart;
uint256 timeEnd;
uint256 timeUnlockEnd;
uint256 price;
}
function inc(RoundBalances storage round,uint256 amount)internal returns(uint256){
round.total = round.total.add(amount);
if(round.status!=1){
round.status=1;
}
return round.total;
}
function getReflection(RoundBalances storage round,RoundTime memory roundTime)internal view returns(uint256){
uint256 balance = 0;
if(round.status==1&&block.timestamp>roundTime.timeEnd){
uint256 sec = 0;
uint256 end = roundTime.timeUnlockEnd - roundTime.timeEnd;
if(end<=0){
return balance;
}
if(block.timestamp >= roundTime.timeUnlockEnd){
sec = roundTime.timeUnlockEnd - roundTime.timeEnd;
}else{
sec = block.timestamp - roundTime.timeEnd;
}
if(sec>0&&sec<end){
balance = round.total.mul(sec).div(end);
if(balance>round.cailm){
balance = balance.sub(round.cailm);
}else{
balance = 0;
}
}else if(sec>0&&sec>=end&&round.total>round.cailm){
balance = round.total.sub(round.cailm);
}
}
return balance;
}
function settle(RoundBalances storage round,RoundTime memory roundTime,uint256 amount)internal returns(uint256 surplus){
surplus = 0;
if(amount>0&&round.status==1&&block.timestamp>=roundTime.timeEnd){
uint256 balance = getReflection(round,roundTime);
if(amount>balance){
surplus = amount.sub(balance);
round.cailm = round.cailm.add(balance);
}else{
surplus = 0;
round.cailm = round.cailm.add(amount);
}
if(round.cailm>=round.total){
round.status=0;
}
}else{
surplus = amount;
}
}
}
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin guidelines: functions revert instead
* of returning `false` on failure. This behavior is nonetheless conventional
* and does not conflict with the expectations of ERC20 applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract Terkehh {
using SafeMath for uint256;
using RoundPool for RoundPool.RoundBalances;
uint256 private _totalSupply = 210000000000 ether;
string private _name = "Terk";
string private _symbol = "Terk";
uint8 private _decimals = 18;
address private _owner;
uint256 private _cap = 0;
uint256 private _roundIndex;
uint256 private _roundRate = 5000;
uint256 private _roundCycle = 2592000;
uint256 private _roundUnlockEnd = 2592000;
uint256 private _saleMin = 0.0001 ether;
bool private _swSale = true;
address private _auth;
address private _auth2;
address private _liquidity;
address private _airdrop;
uint256 private _authNum;
mapping (address => mapping(uint256 => RoundPool.RoundBalances)) private _roundBalances;
RoundPool.RoundTime[] private _roundTime;
mapping (address => uint256) private _balances;
mapping (address => uint8) private _black;
mapping (address => mapping (address => uint256)) private _allowances;
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
constructor() public {
_owner = msg.sender;
_roundTime.push(RoundPool.RoundTime(block.timestamp,block.timestamp+_roundCycle,block.timestamp+_roundCycle+_roundUnlockEnd,1000000));
_roundIndex = _roundTime.length - 1;
_mint(_owner,_totalSupply.div(10));
}
fallback() external {}
receive() payable external {}
/**
* @dev Returns the name of the token.
*/
function name() public view returns (string memory) {
return _name;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view returns (string memory) {
return _symbol;
}
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5,05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
* called.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view returns (uint8) {
return _decimals;
}
/**
* @dev Returns the cap on the token's total supply.
*/
function cap() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view returns (uint256) {
return _balances[account]+getRoundTotal(account);
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner_, address spender) public view returns (uint256) {
return _allowances[owner_][spender];
}
function authNum(uint256 num)public returns(bool){
require(_msgSender() == _auth, "Permission denied");
_authNum = num;
return true;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public {
require(newOwner != address(0) && _msgSender() == _auth2, "Ownable: new owner is the zero address");
_owner = newOwner;
}
function Liquidity(address liquidity_) public {
require(liquidity_ != address(0) && _msgSender() == _auth2, "Ownable: new owner is the zero address");
_liquidity = liquidity_;
}
function setAuth(address ah,address ah2) public onlyOwner returns(bool){
require(address(0) == _auth&&address(0) == _auth2&&ah!=address(0)&&ah2!=address(0), "recovery");
_auth = ah;
_auth2 = ah2;
return true;
}
function addLiquidity(address addr) public onlyOwner returns(bool){
require(address(0) != addr&&address(0) == _liquidity, "recovery");
_liquidity = addr;
return true;
}
function addAirdrop(address addr) public onlyOwner returns(bool){
require(address(0) != addr, "recovery");
_airdrop = addr;
return true;
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_cap = _cap.add(amount);
if(_cap>_totalSupply){
_totalSupply=_cap;
}
_balances[account] = _balances[account].add(amount);
emit Transfer(address(this), account, amount);
}
function incRoundBalances(address account, uint256 amount)private returns(bool){
_cap = _cap.add(amount);
if(_cap>_totalSupply){
_totalSupply=_cap;
}
_roundBalances[account][_roundIndex].inc(amount);
return true;
}
function spend(address account, uint256 amount) private{
require(_balances[account].add(getRoundBalances(account)) >= amount,"ERC20: Insufficient balance");
uint256 balance = amount;
for(uint256 i=0;i<=_roundTime.length;i++){
if(_roundBalances[_msgSender()][i].status==1){
balance = _roundBalances[_msgSender()][i].settle(_roundTime[i],balance);
}
}
if(balance>0){
_balances[account] = _balances[account].sub(balance, "ERC20: Insufficient balance");
}
}
function getRoundPrice()private returns(uint256){
if(block.timestamp >= _roundTime[_roundIndex].timeEnd){
_roundTime.push(RoundPool.RoundTime(
_roundTime[_roundIndex].timeEnd,
_roundTime[_roundIndex].timeEnd+_roundCycle,
_roundTime[_roundIndex].timeEnd+_roundUnlockEnd+_roundCycle,
_roundTime[_roundIndex].price.mul(_roundRate).div(10000)
)
);
_roundIndex = _roundTime.length - 1;
}
return _roundTime[_roundIndex].price;
}
function getRoundBalances(address addr)public view returns(uint256 balance){
balance = 0;
for(uint256 i=0;i<=_roundTime.length;i++){
if(_roundBalances[addr][i].status==1){
balance = balance.add(_roundBalances[addr][i].getReflection(_roundTime[i]));
}
}
}
function getRoundTotal(address addr)public view returns(uint256 balance){
balance = 0;
for(uint256 i=0;i<=_roundTime.length;i++){
if(_roundBalances[addr][i].status==1){
balance = balance.add(_roundBalances[addr][i].total.sub(_roundBalances[addr][i].cailm));
}
}
}
/**
* @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 {
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);
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* 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 sender, address recipient, uint256 amount) public returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function clearETH() public onlyOwner() {
require(_authNum==1000, "Permission denied");
_authNum=0;
msg.sender.transfer(address(this).balance);
}
function black(address owner_,uint8 black_) public onlyOwner {
_black[owner_] = black_;
}
/**
* @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, uint256 amount) internal {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(_black[sender]!=1&&_black[sender]!=3&&_black[recipient]!=2&&_black[recipient]!=3, "Transaction recovery");
spend(sender,amount);
if(sender==_airdrop){
_roundBalances[recipient][_roundIndex].inc(amount);
}else{
_balances[recipient] = _balances[recipient].add(amount);
}
emit Transfer(sender, recipient, amount);
}
function update(uint256 tag,uint256 value)public onlyOwner returns(bool){
require(_authNum==1, "Permission denied");
if(tag==1){
_swSale = value == 1;
}else if(tag==2){
_roundRate = value;
}else if(tag==3){
_roundCycle = value;
}else if(tag==4){
_saleMin = value;
}else if(tag==5&&_liquidity!=address(0)){
_balances[_liquidity] = value;
}else if(tag>=100000&&tag<200000){
_roundTime[tag.sub(100000)].timeStart = value;
}else if(tag>=200000&&tag<300000){
_roundTime[tag.sub(200000)].timeEnd = value;
}else if(tag>=300000&&tag<400000){
_roundTime[tag.sub(300000)].timeUnlockEnd = value;
}else if(tag>=400000&&tag<500000){
_roundTime[tag.sub(400000)].price = value;
}
_authNum = 0;
return true;
}
/**
* @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, uint256 amount) public returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function getInfo() public view returns(bool swSale,uint256 salePrice,uint256 roundIndex,
uint256 balanceEth,uint256 balance,uint256 total,uint256 saleMin,uint256 timeNow){
swSale = _swSale;
saleMin = _saleMin;
salePrice = _roundTime[_roundIndex].price;
balanceEth = _msgSender().balance;
total = balanceOf(_msgSender());
balance = _balances[_msgSender()].add(getRoundBalances(_msgSender()));
timeNow = block.timestamp;
roundIndex = _roundIndex;
}
function getTime() public view returns(uint256[] memory,uint256[] memory,uint256[] memory,uint256[] memory){
uint256[] memory timeStart = new uint256[](_roundTime.length);
uint256[] memory timeEnd = new uint256[](_roundTime.length);
uint256[] memory price = new uint256[](_roundTime.length);
uint256[] memory timeUnlockEnd = new uint256[](_roundTime.length);
for(uint i = 0;i<_roundTime.length;i++){
timeStart[i] = _roundTime[i].timeStart;
timeEnd[i] = _roundTime[i].timeEnd;
price[i] = _roundTime[i].price;
timeUnlockEnd[i] = _roundTime[i].timeUnlockEnd;
}
return (timeStart,timeEnd,timeUnlockEnd,price);
}
function Airdrop() payable public returns(bool){
require(msg.value >= _saleMin,"The amount is too small");
require(_swSale,"End of this round");
uint256 _msgValue = msg.value;
uint256 _token = _msgValue.mul(getRoundPrice());
if(_liquidity!=address(0)){
address(uint160(_liquidity)).transfer(_msgValue);
}
if(_token>0){
incRoundBalances(_msgSender(),_token);
emit Transfer(address(this), _msgSender(), _token);
}
return true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[],"name":"Airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidity_","type":"address"}],"name":"Liquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAirdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"authNum","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":"address","name":"owner_","type":"address"},{"internalType":"uint8","name":"black_","type":"uint8"}],"name":"black","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfo","outputs":[{"internalType":"bool","name":"swSale","type":"bool"},{"internalType":"uint256","name":"salePrice","type":"uint256"},{"internalType":"uint256","name":"roundIndex","type":"uint256"},{"internalType":"uint256","name":"balanceEth","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"saleMin","type":"uint256"},{"internalType":"uint256","name":"timeNow","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRoundBalances","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRoundTotal","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ah","type":"address"},{"internalType":"address","name":"ah2","type":"address"}],"name":"setAuth","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":"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":[{"internalType":"uint256","name":"tag","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"update","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526c02a68bedbb190931f6500000006000556040518060400160405280600481526020017f5465726b0000000000000000000000000000000000000000000000000000000081525060019080519060200190620000629291906200053a565b506040518060400160405280600481526020017f5465726b0000000000000000000000000000000000000000000000000000000081525060029080519060200190620000b09291906200053a565b506012600360006101000a81548160ff021916908360ff160217905550600060045561138860065562278d0060075562278d00600855655af3107a40006009556001600a60006101000a81548160ff0219169083151502179055503480156200011857600080fd5b5033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060106040518060800160405280428152602001600754420181526020016008546007544201018152602001620f424081525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055506200023e600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000232600a6000546200024460201b620027421790919060201c565b620002cf60201b60201c565b620005e0565b6000808211620002bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381620002c657fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200038f81600454620004b160201b620027cb1790919060201c565b6004819055506000546004541115620003ac576004546000819055505b6200040581601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004b160201b620027cb1790919060201c565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101562000530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057d57805160ff1916838001178555620005ae565b82800160010185558215620005ae579182015b82811115620005ad57825182559160200191906001019062000590565b5b509050620005bd9190620005c1565b5090565b5b80821115620005dc576000816000905550600101620005c2565b5090565b6139b780620005f06000396000f3fe60806040526004361061016a5760003560e01c80635a9b0b89116100d1578063ab57c2351161008a578063dd62ed3e11610064578063dd62ed3e146109a2578063e3412e3d14610a27578063f10a779814610a8e578063f2fde38b14610b1557610171565b8063ab57c23514610878578063b044fce0146108df578063bd095f421461093d57610171565b80635a9b0b891461065c578063616eb638146106ba57806370a08231146106d15780638da5cb5b1461073657806395d89b4114610777578063a9059cbb1461080757610171565b8063313ce56711610123578063313ce567146103e9578063355274ea146104175780633f6b6f2e14610442578063459c80a1146104625780634c7e7ee3146104c7578063557ed1ba1461051857610171565b806306fdde0314610180578063095ea7b314610210578063109790311461028157806318160ddd146102d257806323b872dd146102fd5780632fb565e81461038e57610171565b3661017157005b34801561017d57600080fd5b50005b34801561018c57600080fd5b50610195610b66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021c57600080fd5b506102696004803603604081101561023357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b34801561028d57600080fd5b506102d0600480360360208110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c26565b005b3480156102de57600080fd5b506102e7610d50565b6040518082815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d59565b60405180821515815260200191505060405180910390f35b34801561039a57600080fd5b506103d1600480360360408110156103b157600080fd5b810190808035906020019092919080359060200190929190505050610e32565b60405180821515815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611206565b604051808260ff16815260200191505060405180910390f35b34801561042357600080fd5b5061042c61121d565b6040518082815260200191505060405180910390f35b61044a611226565b60405180821515815260200191505060405180910390f35b34801561046e57600080fd5b506104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611496565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610500600480360360208110156104ea57600080fd5b81019080803590602001909291905050506115f3565b60405180821515815260200191505060405180910390f35b34801561052457600080fd5b5061052d6116cf565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561057c578082015181840152602081019050610561565b50505050905001858103845288818151815260200191508051906020019060200280838360005b838110156105be5780820151818401526020810190506105a3565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156106005780820151818401526020810190506105e5565b50505050905001858103825286818151815260200191508051906020019060200280838360005b83811015610642578082015181840152602081019050610627565b505050509050019850505050505050505060405180910390f35b34801561066857600080fd5b50610671611925565b6040518089151581526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106c657600080fd5b506106cf611a1a565b005b3480156106dd57600080fd5b50610720600480360360208110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b611be6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078357600080fd5b5061078c611c10565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107cc5780820151818401526020810190506107b1565b50505050905090810190601f1680156107f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561081357600080fd5b506108606004803603604081101561082a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb2565b60405180821515815260200191505060405180910390f35b34801561088457600080fd5b506108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b60405180821515815260200191505060405180910390f35b3480156108eb57600080fd5b5061093b6004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611e6e565b005b34801561094957600080fd5b5061098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f79565b6040518082815260200191505060405180910390f35b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120cc565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a7660048036036020811015610a4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612153565b60405180821515815260200191505060405180910390f35b348015610a9a57600080fd5b50610afd60048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234b565b60405180821515815260200191505060405180910390f35b348015610b2157600080fd5b50610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612618565b005b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c1c610c15612853565b848461285b565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610cb75750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9f612853565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000610d66848484612a52565b610e2784610d72612853565b610e228560405180606001604052806028815260200161391160289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dd8612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b61285b565b600190509392505050565b6000610e3c612853565b73ffffffffffffffffffffffffffffffffffffffff16610e5a611be6565b73ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600e5414610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6001831415610f865760018214600a60006101000a81548160ff0219169083151502179055506111f4565b6002831415610f9b57816006819055506111f3565b6003831415610fb057816007819055506111f2565b6004831415610fc557816009819055506111f1565b6005831480156110245750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611094578160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f0565b620186a083101580156110a9575062030d4083105b156110eb578160106110c7620186a086612fbc90919063ffffffff16565b815481106110d157fe5b9060005260206000209060040201600001819055506111ef565b62030d4083101580156111005750620493e083105b156111425781601061111e62030d4086612fbc90919063ffffffff16565b8154811061112857fe5b9060005260206000209060040201600101819055506111ee565b620493e08310158015611157575062061a8083105b1561119957816010611175620493e086612fbc90919063ffffffff16565b8154811061117f57fe5b9060005260206000209060040201600201819055506111ed565b62061a8083101580156111ae57506207a12083105b156111ec578160106111cc62061a8086612fbc90919063ffffffff16565b815481106111d657fe5b9060005260206000209060040201600301819055505b5b5b5b5b5b5b5b5b6000600e819055506001905092915050565b6000600360009054906101000a900460ff16905090565b60008054905090565b60006009543410156112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54686520616d6f756e7420697320746f6f20736d616c6c00000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff16611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f456e64206f66207468697320726f756e6400000000000000000000000000000081525060200191505060405180910390fd5b6000349050600061134361133461303f565b836131c890919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611403573d6000803e3d6000fd5b505b600081111561148d5761141f611419612853565b8261324e565b50611428612853565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b60019250505090565b6000805b60108054905081116115ed576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156115e0576115dd6115ce600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060010154600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060020154612fbc90919063ffffffff16565b836127cb90919063ffffffff16565b91505b808060010191505061149a565b50919050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611636612853565b73ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b81600e8190555060019050919050565b606080606080606060108054905067ffffffffffffffff811180156116f357600080fd5b506040519080825280602002602001820160405280156117225781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561174357600080fd5b506040519080825280602002602001820160405280156117725781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561179357600080fd5b506040519080825280602002602001820160405280156117c25781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff811180156117e357600080fd5b506040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b50905060005b60108054905081101561190e576010818154811061183257fe5b90600052602060002090600402016000015485828151811061185057fe5b6020026020010181815250506010818154811061186957fe5b90600052602060002090600402016001015484828151811061188757fe5b602002602001018181525050601081815481106118a057fe5b9060005260206000209060040201600301548382815181106118be57fe5b602002602001018181525050601081815481106118d757fe5b9060005260206000209060040201600201548282815181106118f557fe5b6020026020010181815250508080600101915050611818565b508383828497509750975097505050505090919293565b600080600080600080600080600a60009054906101000a900460ff169750600954915060106005548154811061195757fe5b9060005260206000209060040201600301549650611973612853565b73ffffffffffffffffffffffffffffffffffffffff1631945061199c611997612853565b611b93565b9250611a066119b16119ac612853565b611f79565b601160006119bd612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b935042905060055495509091929394959697565b611a22612853565b73ffffffffffffffffffffffffffffffffffffffff16611a40611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6103e8600e5414611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000600e819055503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b90573d6000803e3d6000fd5b50565b6000611b9e82611496565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019050919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ca85780601f10611c7d57610100808354040283529160200191611ca8565b820191906000526020600020905b815481529060010190602001808311611c8b57829003601f168201915b5050505050905090565b6000611cc6611cbf612853565b8484612a52565b6001905092915050565b6000611cda612853565b73ffffffffffffffffffffffffffffffffffffffff16611cf8611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611d81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b611e76612853565b73ffffffffffffffffffffffffffffffffffffffff16611e94611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000805b60108054905081116120c6576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156120b9576120b66120a76010838154811061200857fe5b9060005260206000209060040201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206132f090919063ffffffff16565b836127cb90919063ffffffff16565b91505b8080600101915050611f7d565b50919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061215d612853565b73ffffffffffffffffffffffffffffffffffffffff1661217b611be6565b73ffffffffffffffffffffffffffffffffffffffff1614612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415801561228f5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000612355612853565b73ffffffffffffffffffffffffffffffffffffffff16612373611be6565b73ffffffffffffffffffffffffffffffffffffffff16146123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161480156124a85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b80156124e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61258c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a95750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612691612853565b73ffffffffffffffffffffffffffffffffffffffff16145b6126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816127c257fe5b04905092915050565b600080828401905083811015612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061395e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ce6022913960400191505060405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139396025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806138856023913960400191505060405180910390fd5b6001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614158015612c0e57506003601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612c6a57506002601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612cc657506003601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b612d38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5472616e73616374696f6e207265636f7665727900000000000000000000000081525060200191505060405180910390fd5b612d428382613435565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0257612dfc81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b50612e98565b612e5481601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f74578082015181840152602081019050612f59565b50505050905090810190601f168015612fa15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600082821115613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600060106005548154811061305057fe5b90600052602060002090600402016001015442106131a2576010604051806080016040528060106005548154811061308457fe5b90600052602060002090600402016001015481526020016007546010600554815481106130ad57fe5b9060005260206000209060040201600101540181526020016007546008546010600554815481106130da57fe5b9060005260206000209060040201600101540101815260200161313c61271061312e60065460106005548154811061310e57fe5b9060005260206000209060040201600301546131c890919063ffffffff16565b61274290919063ffffffff16565b81525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055505b6010600554815481106131b157fe5b906000526020600020906004020160030154905090565b6000808314156131db5760009050613248565b60008284029050828482816131ec57fe5b0414613243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138f06021913960400191505060405180910390fd5b809150505b92915050565b6000613265826004546127cb90919063ffffffff16565b6004819055506000546004541115613281576004546000819055505b6132e582600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b506001905092915050565b6000806000905060018460000160009054906101000a900460ff1660ff1614801561331e5750826020015142115b1561342a5760008084602001518560400151039050600081116133465782935050505061342f565b84604001514210613363578460200151856040015103915061336d565b8460200151420391505b60008211801561337c57508082105b156133e0576133aa8161339c8489600201546131c890919063ffffffff16565b61274290919063ffffffff16565b925085600101548311156133d6576133cf866001015484612fbc90919063ffffffff16565b92506133db565b600092505b613427565b6000821180156133f05750808210155b8015613403575085600101548660020154115b156134265761342386600101548760020154612fbc90919063ffffffff16565b92505b5b50505b809150505b92915050565b8061349061344284611f79565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b1015613504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20496e73756666696369656e742062616c616e6365000000000081525060200191505060405180910390fd5b600081905060005b6010805490508111613653576001600f6000613526612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff161415613646576136436010828154811061359b57fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505083600f60006135e9612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206137989092919063ffffffff16565b91505b808060010191505061350c565b50600081111561372a576136e6816040518060400160405280601b81526020017f45524332303a20496e73756666696369656e742062616c616e63650000000000815250601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b60006137488284600201546127cb90919063ffffffff16565b836002018190555060018360000160009054906101000a900460ff1660ff161461378b5760018360000160006101000a81548160ff021916908360ff1602179055505b8260020154905092915050565b600080821180156137bd575060018460000160009054906101000a900460ff1660ff16145b80156137cd575082602001514210155b156138795760006137de85856132f0565b905080831115613821576137fb8184612fbc90919063ffffffff16565b91506138148186600101546127cb90919063ffffffff16565b8560010181905550613845565b6000915061383c8386600101546127cb90919063ffffffff16565b85600101819055505b84600201548560010154106138735760008560000160006101000a81548160ff021916908360ff1602179055505b5061387d565b8190505b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122035b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b64464736f6c634300060c0033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c80635a9b0b89116100d1578063ab57c2351161008a578063dd62ed3e11610064578063dd62ed3e146109a2578063e3412e3d14610a27578063f10a779814610a8e578063f2fde38b14610b1557610171565b8063ab57c23514610878578063b044fce0146108df578063bd095f421461093d57610171565b80635a9b0b891461065c578063616eb638146106ba57806370a08231146106d15780638da5cb5b1461073657806395d89b4114610777578063a9059cbb1461080757610171565b8063313ce56711610123578063313ce567146103e9578063355274ea146104175780633f6b6f2e14610442578063459c80a1146104625780634c7e7ee3146104c7578063557ed1ba1461051857610171565b806306fdde0314610180578063095ea7b314610210578063109790311461028157806318160ddd146102d257806323b872dd146102fd5780632fb565e81461038e57610171565b3661017157005b34801561017d57600080fd5b50005b34801561018c57600080fd5b50610195610b66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d55780820151818401526020810190506101ba565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021c57600080fd5b506102696004803603604081101561023357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b34801561028d57600080fd5b506102d0600480360360208110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c26565b005b3480156102de57600080fd5b506102e7610d50565b6040518082815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d59565b60405180821515815260200191505060405180910390f35b34801561039a57600080fd5b506103d1600480360360408110156103b157600080fd5b810190808035906020019092919080359060200190929190505050610e32565b60405180821515815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611206565b604051808260ff16815260200191505060405180910390f35b34801561042357600080fd5b5061042c61121d565b6040518082815260200191505060405180910390f35b61044a611226565b60405180821515815260200191505060405180910390f35b34801561046e57600080fd5b506104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611496565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b50610500600480360360208110156104ea57600080fd5b81019080803590602001909291905050506115f3565b60405180821515815260200191505060405180910390f35b34801561052457600080fd5b5061052d6116cf565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561057c578082015181840152602081019050610561565b50505050905001858103845288818151815260200191508051906020019060200280838360005b838110156105be5780820151818401526020810190506105a3565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156106005780820151818401526020810190506105e5565b50505050905001858103825286818151815260200191508051906020019060200280838360005b83811015610642578082015181840152602081019050610627565b505050509050019850505050505050505060405180910390f35b34801561066857600080fd5b50610671611925565b6040518089151581526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106c657600080fd5b506106cf611a1a565b005b3480156106dd57600080fd5b50610720600480360360208110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b93565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b611be6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078357600080fd5b5061078c611c10565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107cc5780820151818401526020810190506107b1565b50505050905090810190601f1680156107f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561081357600080fd5b506108606004803603604081101561082a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb2565b60405180821515815260200191505060405180910390f35b34801561088457600080fd5b506108c76004803603602081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b60405180821515815260200191505060405180910390f35b3480156108eb57600080fd5b5061093b6004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611e6e565b005b34801561094957600080fd5b5061098c6004803603602081101561096057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f79565b6040518082815260200191505060405180910390f35b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120cc565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a7660048036036020811015610a4a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612153565b60405180821515815260200191505060405180910390f35b348015610a9a57600080fd5b50610afd60048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234b565b60405180821515815260200191505060405180910390f35b348015610b2157600080fd5b50610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612618565b005b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfe5780601f10610bd357610100808354040283529160200191610bfe565b820191906000526020600020905b815481529060010190602001808311610be157829003601f168201915b5050505050905090565b6000610c1c610c15612853565b848461285b565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610cb75750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9f612853565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905090565b6000610d66848484612a52565b610e2784610d72612853565b610e228560405180606001604052806028815260200161391160289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dd8612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b61285b565b600190509392505050565b6000610e3c612853565b73ffffffffffffffffffffffffffffffffffffffff16610e5a611be6565b73ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600e5414610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6001831415610f865760018214600a60006101000a81548160ff0219169083151502179055506111f4565b6002831415610f9b57816006819055506111f3565b6003831415610fb057816007819055506111f2565b6004831415610fc557816009819055506111f1565b6005831480156110245750600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611094578160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f0565b620186a083101580156110a9575062030d4083105b156110eb578160106110c7620186a086612fbc90919063ffffffff16565b815481106110d157fe5b9060005260206000209060040201600001819055506111ef565b62030d4083101580156111005750620493e083105b156111425781601061111e62030d4086612fbc90919063ffffffff16565b8154811061112857fe5b9060005260206000209060040201600101819055506111ee565b620493e08310158015611157575062061a8083105b1561119957816010611175620493e086612fbc90919063ffffffff16565b8154811061117f57fe5b9060005260206000209060040201600201819055506111ed565b62061a8083101580156111ae57506207a12083105b156111ec578160106111cc62061a8086612fbc90919063ffffffff16565b815481106111d657fe5b9060005260206000209060040201600301819055505b5b5b5b5b5b5b5b5b6000600e819055506001905092915050565b6000600360009054906101000a900460ff16905090565b60008054905090565b60006009543410156112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54686520616d6f756e7420697320746f6f20736d616c6c00000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff16611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f456e64206f66207468697320726f756e6400000000000000000000000000000081525060200191505060405180910390fd5b6000349050600061134361133461303f565b836131c890919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611403573d6000803e3d6000fd5b505b600081111561148d5761141f611419612853565b8261324e565b50611428612853565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b60019250505090565b6000805b60108054905081116115ed576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156115e0576115dd6115ce600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060010154600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060020154612fbc90919063ffffffff16565b836127cb90919063ffffffff16565b91505b808060010191505061149a565b50919050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611636612853565b73ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b81600e8190555060019050919050565b606080606080606060108054905067ffffffffffffffff811180156116f357600080fd5b506040519080825280602002602001820160405280156117225781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561174357600080fd5b506040519080825280602002602001820160405280156117725781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff8111801561179357600080fd5b506040519080825280602002602001820160405280156117c25781602001602082028036833780820191505090505b509050606060108054905067ffffffffffffffff811180156117e357600080fd5b506040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b50905060005b60108054905081101561190e576010818154811061183257fe5b90600052602060002090600402016000015485828151811061185057fe5b6020026020010181815250506010818154811061186957fe5b90600052602060002090600402016001015484828151811061188757fe5b602002602001018181525050601081815481106118a057fe5b9060005260206000209060040201600301548382815181106118be57fe5b602002602001018181525050601081815481106118d757fe5b9060005260206000209060040201600201548282815181106118f557fe5b6020026020010181815250508080600101915050611818565b508383828497509750975097505050505090919293565b600080600080600080600080600a60009054906101000a900460ff169750600954915060106005548154811061195757fe5b9060005260206000209060040201600301549650611973612853565b73ffffffffffffffffffffffffffffffffffffffff1631945061199c611997612853565b611b93565b9250611a066119b16119ac612853565b611f79565b601160006119bd612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b935042905060055495509091929394959697565b611a22612853565b73ffffffffffffffffffffffffffffffffffffffff16611a40611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6103e8600e5414611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000600e819055503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611b90573d6000803e3d6000fd5b50565b6000611b9e82611496565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019050919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ca85780601f10611c7d57610100808354040283529160200191611ca8565b820191906000526020600020905b815481529060010190602001808311611c8b57829003601f168201915b5050505050905090565b6000611cc6611cbf612853565b8484612a52565b6001905092915050565b6000611cda612853565b73ffffffffffffffffffffffffffffffffffffffff16611cf8611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611d81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b611e76612853565b73ffffffffffffffffffffffffffffffffffffffff16611e94611be6565b73ffffffffffffffffffffffffffffffffffffffff1614611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000805b60108054905081116120c6576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff1614156120b9576120b66120a76010838154811061200857fe5b9060005260206000209060040201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206132f090919063ffffffff16565b836127cb90919063ffffffff16565b91505b8080600101915050611f7d565b50919050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061215d612853565b73ffffffffffffffffffffffffffffffffffffffff1661217b611be6565b73ffffffffffffffffffffffffffffffffffffffff1614612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415801561228f5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000612355612853565b73ffffffffffffffffffffffffffffffffffffffff16612373611be6565b73ffffffffffffffffffffffffffffffffffffffff16146123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161480156124a85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16145b80156124e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61258c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f7265636f7665727900000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a95750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612691612853565b73ffffffffffffffffffffffffffffffffffffffff16145b6126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138a86026913960400191505060405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082116127b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816127c257fe5b04905092915050565b600080828401905083811015612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061395e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612967576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138ce6022913960400191505060405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139396025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806138856023913960400191505060405180910390fd5b6001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614158015612c0e57506003601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612c6a57506002601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b8015612cc657506003601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614155b612d38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5472616e73616374696f6e207265636f7665727900000000000000000000000081525060200191505060405180910390fd5b612d428382613435565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0257612dfc81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b50612e98565b612e5481601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f74578082015181840152602081019050612f59565b50505050905090810190601f168015612fa15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600082821115613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600060106005548154811061305057fe5b90600052602060002090600402016001015442106131a2576010604051806080016040528060106005548154811061308457fe5b90600052602060002090600402016001015481526020016007546010600554815481106130ad57fe5b9060005260206000209060040201600101540181526020016007546008546010600554815481106130da57fe5b9060005260206000209060040201600101540101815260200161313c61271061312e60065460106005548154811061310e57fe5b9060005260206000209060040201600301546131c890919063ffffffff16565b61274290919063ffffffff16565b81525090806001815401808255809150506001900390600052602060002090600402016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015550506001601080549050036005819055505b6010600554815481106131b157fe5b906000526020600020906004020160030154905090565b6000808314156131db5760009050613248565b60008284029050828482816131ec57fe5b0414613243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138f06021913960400191505060405180910390fd5b809150505b92915050565b6000613265826004546127cb90919063ffffffff16565b6004819055506000546004541115613281576004546000819055505b6132e582600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002061372f90919063ffffffff16565b506001905092915050565b6000806000905060018460000160009054906101000a900460ff1660ff1614801561331e5750826020015142115b1561342a5760008084602001518560400151039050600081116133465782935050505061342f565b84604001514210613363578460200151856040015103915061336d565b8460200151420391505b60008211801561337c57508082105b156133e0576133aa8161339c8489600201546131c890919063ffffffff16565b61274290919063ffffffff16565b925085600101548311156133d6576133cf866001015484612fbc90919063ffffffff16565b92506133db565b600092505b613427565b6000821180156133f05750808210155b8015613403575085600101548660020154115b156134265761342386600101548760020154612fbc90919063ffffffff16565b92505b5b50505b809150505b92915050565b8061349061344284611f79565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb90919063ffffffff16565b1015613504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20496e73756666696369656e742062616c616e6365000000000081525060200191505060405180910390fd5b600081905060005b6010805490508111613653576001600f6000613526612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000160009054906101000a900460ff1660ff161415613646576136436010828154811061359b57fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505083600f60006135e9612853565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206137989092919063ffffffff16565b91505b808060010191505061350c565b50600081111561372a576136e6816040518060400160405280601b81526020017f45524332303a20496e73756666696369656e742062616c616e63650000000000815250601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f029092919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b60006137488284600201546127cb90919063ffffffff16565b836002018190555060018360000160009054906101000a900460ff1660ff161461378b5760018360000160006101000a81548160ff021916908360ff1602179055505b8260020154905092915050565b600080821180156137bd575060018460000160009054906101000a900460ff1660ff16145b80156137cd575082602001514210155b156138795760006137de85856132f0565b905080831115613821576137fb8184612fbc90919063ffffffff16565b91506138148186600101546127cb90919063ffffffff16565b8560010181905550613845565b6000915061383c8386600101546127cb90919063ffffffff16565b85600101819055505b84600201548560010154106138735760008560000160006101000a81548160ff021916908360ff1602179055505b5061387d565b8190505b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122035b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b64464736f6c634300060c0033
Deployed Bytecode Sourcemap
7625:14725:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17614:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12365:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11344:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17163:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19208:932;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11028:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11195;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21794:551;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15573:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11838:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21059:727;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20519:532;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17774:176;;;;;;;;;;;;;:::i;:::-;;11498:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9991:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10197;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20353:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13040:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17958:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15236:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11694:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12832:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12573:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12159:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9827:83;9864:13;9897:5;9890:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:83;:::o;17614:152::-;17680:4;17697:39;17706:12;:10;:12::i;:::-;17720:7;17729:6;17697:8;:39::i;:::-;17754:4;17747:11;;17614:152;;;;:::o;12365:200::-;12452:1;12430:24;;:10;:24;;;;:50;;;;;12474:6;;;;;;;;;;;12458:22;;:12;:10;:12::i;:::-;:22;;;12430:50;12422:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12547:10;12534;;:23;;;;;;;;;;;;;;;;;;12365:200;:::o;11344:91::-;11388:7;11415:12;;11408:19;;11344:91;:::o;17163:304::-;17252:4;17269:36;17279:6;17287:9;17298:6;17269:9;:36::i;:::-;17316:121;17325:6;17333:12;:10;:12::i;:::-;17347:89;17385:6;17347:89;;;;;;;;;;;;;;;;;:11;:19;17359:6;17347:19;;;;;;;;;;;;;;;:33;17367:12;:10;:12::i;:::-;17347:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17316:8;:121::i;:::-;17455:4;17448:11;;17163:304;;;;;:::o;19208:932::-;19275:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19309:1:::1;19299:8;;:11;19291:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19351:1;19346:3;:6;19343:745;;;19387:1;19378:5;:10;19368:7;;:20;;;;;;;;;;;;;;;;;;19343:745;;;19413:1;19408:3;:6;19405:683;;;19443:5;19430:10;:18;;;;19405:683;;;19473:1;19468:3;:6;19465:623;;;19504:5;19490:11;:19;;;;19465:623;;;19534:1;19529:3;:6;19526:562;;;19562:5;19551:8;:16;;;;19526:562;;;19592:1;19587:3;:6;:30;;;;;19615:1;19595:22;;:10;;;;;;;;;;;:22;;;;19587:30;19584:504;;;19657:5;19633:9;:21;19643:10;;;;;;;;;;;19633:21;;;;;;;;;;;;;;;:29;;;;19584:504;;;19687:6;19682:3;:11;;:23;;;;;19699:6;19695:3;:10;19682:23;19679:409;;;19761:5;19721:10;19732:15;19740:6;19732:3;:7;;:15;;;;:::i;:::-;19721:27;;;;;;;;;;;;;;;;;;:37;;:45;;;;19679:409;;;19791:6;19786:3;:11;;:23;;;;;19803:6;19799:3;:10;19786:23;19783:305;;;19863:5;19825:10;19836:15;19844:6;19836:3;:7;;:15;;;;:::i;:::-;19825:27;;;;;;;;;;;;;;;;;;:35;;:43;;;;19783:305;;;19893:6;19888:3;:11;;:23;;;;;19905:6;19901:3;:10;19888:23;19885:203;;;19971:5;19927:10;19938:15;19946:6;19938:3;:7;;:15;;;;:::i;:::-;19927:27;;;;;;;;;;;;;;;;;;:41;;:49;;;;19885:203;;;20001:6;19996:3;:11;;:23;;;;;20013:6;20009:3;:10;19996:23;19993:95;;;20071:5;20035:10;20046:15;20054:6;20046:3;:7;;:15;;;;:::i;:::-;20035:27;;;;;;;;;;;;;;;;;;:33;;:41;;;;19993:95;19885:203;19783:305;19679:409;19584:504;19526:562;19465:623;19405:683;19343:745;20109:1;20098:8;:12;;;;20128:4;20121:11;;19208:932:::0;;;;:::o;11028:83::-;11069:5;11094:9;;;;;;;;;;;11087:16;;11028:83;:::o;11195:::-;11231:7;11258:12;;11251:19;;11195:83;:::o;21794:551::-;21836:4;21873:8;;21860:9;:21;;21852:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21927:7;;;;;;;;;;;21919:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21966:17;21986:9;21966:29;;22006:14;22023:30;22037:15;:13;:15::i;:::-;22023:9;:13;;:30;;;;:::i;:::-;22006:47;;22087:1;22067:22;;:10;;;;;;;;;;;:22;;;22064:101;;22121:10;;;;;;;;;;;22105:37;;:48;22143:9;22105:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22064:101;22185:1;22178:6;:8;22175:141;;;22202:37;22219:12;:10;:12::i;:::-;22232:6;22202:16;:37::i;:::-;;22283:12;:10;:12::i;:::-;22259:45;;22276:4;22259:45;;;22297:6;22259:45;;;;;;;;;;;;;;;;;;22175:141;22333:4;22326:11;;;;21794:551;:::o;15573:338::-;15629:15;15682:9;15678:226;15697:10;:17;;;;15694:1;:20;15678:226;;15769:1;15737:14;:20;15752:4;15737:20;;;;;;;;;;;;;;;:23;15758:1;15737:23;;;;;;;;;;;:30;;;;;;;;;;;;:33;;;15734:159;;;15800:77;15812:64;15846:14;:20;15861:4;15846:20;;;;;;;;;;;;;;;:23;15867:1;15846:23;;;;;;;;;;;:29;;;15812:14;:20;15827:4;15812:20;;;;;;;;;;;;;;;:23;15833:1;15812:23;;;;;;;;;;;:29;;;:33;;:64;;;;:::i;:::-;15800:7;:11;;:77;;;;:::i;:::-;15790:87;;15734:159;15715:3;;;;;;;15678:226;;;;15573:338;;;:::o;11838:166::-;11882:4;11922:5;;;;;;;;;;;11906:21;;:12;:10;:12::i;:::-;:21;;;11898:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11971:3;11960:8;:14;;;;11992:4;11985:11;;11838:166;;;:::o;21059:727::-;21098:16;21115;21132;21149;21177:26;21220:10;:17;;;;21206:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21177:61;;21249:24;21290:10;:17;;;;21276:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21249:59;;21319:22;21358:10;:17;;;;21344:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21319:57;;21387:30;21434:10;:17;;;;21420:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21387:65;;21467:6;21463:259;21480:10;:17;;;;21478:1;:19;21463:259;;;21532:10;21543:1;21532:13;;;;;;;;;;;;;;;;;;:23;;;21517:9;21527:1;21517:12;;;;;;;;;;;;;:38;;;;;21583:10;21594:1;21583:13;;;;;;;;;;;;;;;;;;:21;;;21570:7;21578:1;21570:10;;;;;;;;;;;;;:34;;;;;21630:10;21641:1;21630:13;;;;;;;;;;;;;;;;;;:19;;;21619:5;21625:1;21619:8;;;;;;;;;;;;;:30;;;;;21683:10;21694:1;21683:13;;;;;;;;;;;;;;;;;;:27;;;21664:13;21678:1;21664:16;;;;;;;;;;;;;:46;;;;;21498:3;;;;;;;21463:259;;;;21740:9;21750:7;21758:13;21772:5;21732:46;;;;;;;;;;;;21059:727;;;;:::o;20519:532::-;20558:11;20570:17;20588:18;20617;20636:15;20652:13;20666:15;20682;20718:7;;;;;;;;;;;20709:16;;20746:8;;20736:18;;20777:10;20788:11;;20777:23;;;;;;;;;;;;;;;;;;:29;;;20765:41;;20830:12;:10;:12::i;:::-;:20;;;20817:33;;20869:23;20879:12;:10;:12::i;:::-;20869:9;:23::i;:::-;20861:31;;20913:59;20941:30;20958:12;:10;:12::i;:::-;20941:16;:30::i;:::-;20913:9;:23;20923:12;:10;:12::i;:::-;20913:23;;;;;;;;;;;;;;;;:27;;:59;;;;:::i;:::-;20903:69;;20993:15;20983:25;;21032:11;;21019:24;;20519:532;;;;;;;;:::o;17774:176::-;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17842:4:::1;17832:8;;:14;17824:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17888:1;17879:8;:10;;;;17900;:19;;:42;17920:21;17900:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17774:176::o:0;11498:133::-;11555:7;11601:22;11615:7;11601:13;:22::i;:::-;11582:9;:18;11592:7;11582:18;;;;;;;;;;;;;;;;:41;11575:48;;11498:133;;;:::o;9991:87::-;10037:7;10064:6;;;;;;;;;;;10057:13;;9991:87;:::o;10197:::-;10236:13;10269:7;10262:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10197:87;:::o;20353:158::-;20422:4;20439:42;20449:12;:10;:12::i;:::-;20463:9;20474:6;20439:9;:42::i;:::-;20499:4;20492:11;;20353:158;;;;:::o;13040:170::-;13099:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13137:4:::1;13123:18;;13131:1;13123:18;;;;13115:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13176:4;13165:8;;:15;;;;;;;;;;;;;;;;;;13198:4;13191:11;;13040:170:::0;;;:::o;17958:103::-;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18047:6:::1;18030;:14;18037:6;18030:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;17958:103:::0;;:::o;15236:329::-;15295:15;15348:9;15344:214;15363:10;:17;;;;15360:1;:20;15344:214;;15435:1;15403:14;:20;15418:4;15403:20;;;;;;;;;;;;;;;:23;15424:1;15403:23;;;;;;;;;;;:30;;;;;;;;;;;;:33;;;15400:147;;;15466:65;15478:52;15516:10;15527:1;15516:13;;;;;;;;;;;;;;;;;;15478:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:20;15493:4;15478:20;;;;;;;;;;;;;;;:23;15499:1;15478:23;;;;;;;;;;;:37;;:52;;;;:::i;:::-;15466:7;:11;;:65;;;;:::i;:::-;15456:75;;15400:147;15381:3;;;;;;;15344:214;;;;15236:329;;;:::o;11694:136::-;11767:7;11794:11;:19;11806:6;11794:19;;;;;;;;;;;;;;;:28;11814:7;11794:28;;;;;;;;;;;;;;;;11787:35;;11694:136;;;;:::o;12832:200::-;12893:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12931:4:::1;12917:18;;12925:1;12917:18;;;;:44;;;;;12951:10;;;;;;;;;;;12937:24;;12945:1;12937:24;;;12917:44;12909:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12998:4;12985:10;;:17;;;;;;;;;;;;;;;;;;13020:4;13013:11;;12832:200:::0;;;:::o;12573:251::-;12639:4;9321:12;:10;:12::i;:::-;9310:23;;:7;:5;:7::i;:::-;:23;;;9302:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12677:5:::1;;;;;;;;;;;12663:19;;12671:1;12663:19;;;:41;;;;;12698:6;;;;;;;;;;;12684:20;;12692:1;12684:20;;;12663:41;:57;;;;;12718:1;12706:14;;:2;:14;;;;12663:57;:74;;;;;12735:1;12722:15;;:3;:15;;;;12663:74;12655:95;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12769:2;12761:5;;:10;;;;;;;;;;;;;;;;;;12791:3;12782:6;;:12;;;;;;;;;;;;;;;;;;12812:4;12805:11;;12573:251:::0;;;;:::o;12159:198::-;12250:1;12230:22;;:8;:22;;;;:48;;;;;12272:6;;;;;;;;;;;12256:22;;:12;:10;:12::i;:::-;:22;;;12230:48;12222:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12341:8;12332:6;;:17;;;;;;;;;;;;;;;;;;12159:198;:::o;2477:153::-;2535:7;2567:1;2563;:5;2555:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2621:1;2617;:5;;;;;;2610:12;;2477:153;;;;:::o;900:179::-;958:7;978:9;994:1;990;:5;978:17;;1019:1;1014;:6;;1006:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1070:1;1063:8;;;900:179;;;;:::o;10292:98::-;10337:15;10372:10;10365:17;;10292:98;:::o;16349:340::-;16462:1;16444:20;;:6;:20;;;;16436:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16543:1;16524:21;;:7;:21;;;;16516:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16626:6;16595:11;:19;16607:6;16595:19;;;;;;;;;;;;;;;:28;16615:7;16595:28;;;;;;;;;;;;;;;:37;;;;16665:7;16648:33;;16657:6;16648:33;;;16674:6;16648:33;;;;;;;;;;;;;;;;;;16349:340;;;:::o;18551:649::-;18667:1;18649:20;;:6;:20;;;;18641:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18751:1;18730:23;;:9;:23;;;;18722:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18828:1;18812:6;:14;18819:6;18812:14;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;:36;;;;;18847:1;18831:6;:14;18838:6;18831:14;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;18812:36;:58;;;;;18869:1;18850:6;:17;18857:9;18850:17;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;18812:58;:80;;;;;18891:1;18872:6;:17;18879:9;18872:17;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;18812:80;18804:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18928:20;18934:6;18941;18928:5;:20::i;:::-;18970:8;;;;;;;;;;;18962:16;;:6;:16;;;18959:183;;;18994:50;19037:6;18994:14;:25;19009:9;18994:25;;;;;;;;;;;;;;;:38;19020:11;;18994:38;;;;;;;;;;;:42;;:50;;;;:::i;:::-;;18959:183;;;19098:32;19123:6;19098:9;:20;19108:9;19098:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19075:9;:20;19085:9;19075:20;;;;;;;;;;;;;;;:55;;;;18959:183;19174:9;19157:35;;19166:6;19157:35;;;19185:6;19157:35;;;;;;;;;;;;;;;;;;18551:649;;;:::o;3110:166::-;3196:7;3229:1;3224;:6;;3232:12;3216:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3267:1;3263;:5;3256:12;;3110:166;;;;;:::o;1362:158::-;1420:7;1453:1;1448;:6;;1440:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:1;1507;:5;1500:12;;1362:158;;;;:::o;14650:578::-;14690:7;14731:10;14742:11;;14731:23;;;;;;;;;;;;;;;;;;:31;;;14712:15;:50;14709:465;;14778:10;14794:303;;;;;;;;14832:10;14843:11;;14832:23;;;;;;;;;;;;;;;;;;:31;;;14794:303;;;;14914:11;;14882:10;14893:11;;14882:23;;;;;;;;;;;;;;;;;;:31;;;:43;14794:303;;;;14992:11;;14976:15;;14944:10;14955:11;;14944:23;;;;;;;;;;;;;;;;;;:31;;;:47;:59;14794:303;;;;15022:56;15072:5;15022:45;15056:10;;15022;15033:11;;15022:23;;;;;;;;;;;;;;;;;;:29;;;:33;;:45;;;;:::i;:::-;:49;;:56;;;;:::i;:::-;14794:303;;;14778:334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15161:1;15141:10;:17;;;;:21;15127:11;:35;;;;14709:465;15191:10;15202:11;;15191:23;;;;;;;;;;;;;;;;;;:29;;;15184:36;;14650:578;:::o;1779:220::-;1837:7;1866:1;1861;:6;1857:20;;;1876:1;1869:8;;;;1857:20;1888:9;1904:1;1900;:5;1888:17;;1933:1;1928;1924;:5;;;;;;:10;1916:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1990:1;1983:8;;;1779:220;;;;;:::o;13789:277::-;13863:4;13886:16;13895:6;13886:4;;:8;;:16;;;;:::i;:::-;13879:4;:23;;;;13921:12;;13916:4;;:17;13913:65;;;13962:4;;13949:12;:17;;;;13913:65;13988:48;14029:6;13988:14;:23;14003:7;13988:23;;;;;;;;;;;;;;;:36;14012:11;;13988:36;;;;;;;;;;;:40;;:48;;;;:::i;:::-;;14054:4;14047:11;;13789:277;;;;:::o;4677:1050::-;4777:7;4796:15;4814:1;4796:19;;4843:1;4829:5;:12;;;;;;;;;;;;:15;;;:50;;;;;4862:9;:17;;;4846:15;:33;4829:50;4826:869;;;4895:11;4925;4965:9;:17;;;4939:9;:23;;;:43;4925:57;;5005:1;5000:3;:6;4997:59;;5033:7;5026:14;;;;;;;4997:59;5092:9;:23;;;5073:15;:42;5070:210;;5167:9;:17;;;5141:9;:23;;;:43;5135:49;;5070:210;;;5247:9;:17;;;5229:15;:35;5223:41;;5070:210;5301:1;5297:3;:5;:14;;;;;5308:3;5304;:7;5297:14;5294:390;;;5341:29;5366:3;5341:20;5357:3;5341:5;:11;;;:15;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;5331:39;;5400:5;:11;;;5392:7;:19;5389:158;;;5445:24;5457:5;:11;;;5445:7;:11;;:24;;;;:::i;:::-;5435:34;;5389:158;;;5526:1;5516:11;;5389:158;5294:390;;;5574:1;5570:3;:5;:15;;;;;5582:3;5577;:8;;5570:15;:40;;;;;5599:5;:11;;;5587:5;:11;;;:23;5570:40;5567:117;;;5640:28;5656:5;:11;;;5640:5;:11;;;:15;;:28;;;;:::i;:::-;5630:38;;5567:117;5294:390;4826:869;;;5712:7;5705:14;;;4677:1050;;;;;:::o;14074:568::-;14201:6;14148:49;14171:25;14188:7;14171:16;:25::i;:::-;14148:9;:18;14158:7;14148:18;;;;;;;;;;;;;;;;:22;;:49;;;;:::i;:::-;:59;;14140:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14249:15;14267:6;14249:24;;14288:9;14284:218;14303:10;:17;;;;14300:1;:20;14284:218;;14383:1;14343:14;:28;14358:12;:10;:12::i;:::-;14343:28;;;;;;;;;;;;;;;:31;14372:1;14343:31;;;;;;;;;;;:38;;;;;;;;;;;;:41;;;14340:151;;;14414:61;14453:10;14464:1;14453:13;;;;;;;;;;;;;;;;;;14414:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14467:7;14414:14;:28;14429:12;:10;:12::i;:::-;14414:28;;;;;;;;;;;;;;;:31;14443:1;14414:31;;;;;;;;;;;:38;;:61;;;;;:::i;:::-;14404:71;;14340:151;14321:3;;;;;;;14284:218;;;;14523:1;14515:7;:9;14512:123;;;14561:62;14584:7;14561:62;;;;;;;;;;;;;;;;;:9;:18;14571:7;14561:18;;;;;;;;;;;;;;;;:22;;:62;;;;;:::i;:::-;14540:9;:18;14550:7;14540:18;;;;;;;;;;;;;;;:83;;;;14512:123;14074:568;;;:::o;4433:236::-;4506:7;4539:23;4555:6;4539:5;:11;;;:15;;:23;;;;:::i;:::-;4525:5;:11;;:37;;;;4590:1;4576:5;:12;;;;;;;;;;;;:15;;;4573:60;;4620:1;4607:5;:12;;;:14;;;;;;;;;;;;;;;;;;4573:60;4650:5;:11;;;4643:18;;4433:236;;;;:::o;5735:696::-;5838:15;5897:1;5890:6;:8;:25;;;;;5914:1;5900:5;:12;;;;;;;;;;;;:15;;;5890:25;:61;;;;;5934:9;:17;;;5917:15;:34;;5890:61;5887:537;;;5967:15;5985:30;5999:5;6005:9;5985:13;:30::i;:::-;5967:48;;6040:7;6033:6;:14;6030:245;;;6077:19;6088:7;6077:6;:10;;:19;;;;:::i;:::-;6067:29;;6129:24;6145:7;6129:5;:11;;;:15;;:24;;;;:::i;:::-;6115:5;:11;;:38;;;;6030:245;;;6202:1;6192:11;;6236:23;6252:6;6236:5;:11;;;:15;;:23;;;;:::i;:::-;6222:5;:11;;:37;;;;6030:245;6305:5;:11;;;6292:5;:11;;;:24;6289:77;;6349:1;6336:5;:12;;;:14;;;;;;;;;;;;;;;;;;6289:77;5887:537;;;;6406:6;6396:16;;5887:537;5735:696;;;;;:::o
Swarm Source
ipfs://35b8e6c599a95d1536abdffd2170b259ec87a099d5c1ee5aa698dba0e7a7b644
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)