ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 PLAB
Holders
398
Transfers
-
0
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Pornlab
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2023-02-28
*/
// SPDX-License-Identifier: MIT
pragma solidity >= 0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
uint256 private _lockTime;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IFactoryV2 {
event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
function getPair(address tokenA, address tokenB) external view returns (address lpPair);
function createPair(address tokenA, address tokenB) external returns (address lpPair);
}
interface IV2Pair {
function factory() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function sync() external;
}
interface IRouter01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function swapExactETHForTokens(
uint amountOutMin,
address[] calldata path,
address to, uint deadline
) external payable returns (uint[] memory amounts);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IRouter02 is IRouter01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
}
contract Pornlab is IERC20, Ownable {
uint256 private constant _totalTokens = 1_000_000_000 * 10**DECIMALS;
string private constant NAME = "PornLab";
string private constant SYMBOL = "PLAB";
uint8 private constant DECIMALS = 18;
struct feeProfile{ uint8 _liquidity; uint8 _marketing; uint8 _dev; uint8 _totalFee; }
feeProfile public _buyProfile;
feeProfile public _sellProfile;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => uint256) private _balances;
mapping (address => bool) public _addressesExcludedFromFees;
bool public _isSwapEnabled;
bool public _isFeeEnabled;
bool public _isBuyingAllowed; //The contract will be activated once liquidity is added.
uint256 public _tokenSwapThreshold = _totalTokens / 1000 * 1; //0.1%
// UNISWAP INTERFACES (For swaps)
IRouter02 internal V2Router;
address private V2Pair;
address public _marketingWallet;
address public _devWallet;
uint256 private blockPenalty;
uint256 public tradingActiveBlock = 0; // 0 means trading is not active
event _changeFees(uint256 _liq, uint256 _marketing, uint256 _dev, bool _isBuy);
event _updateWallets(address _marketing, address _dev);
event _setRouter(address _routerAddress);
event _setThreshold(uint256 _threshold);
event _clear(uint256 _tokenAmount);
event _claimDust(uint256 _amount);
event _launch(uint256 _start);
event _swapAndLiquify(uint256 _amount);
// BSC TESTNET: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
constructor () {
_balances[_msgSender()] = totalSupply();
_marketingWallet = address(0xA51e4ca53f6e7722922B6B18ce1F5E058C15198c);
_devWallet = address(0xB7E041809B7B026b97f03Bd6dbC28E74cCECa08E);
// Initialize V2 router
setSwapRouter(address(0x863e9610E9E0C3986DCc6fb2cD335e11D88f7D5f));
// Exclude contract from fees
setExcludedFromFees(address(this), true);
setExcludedFromFees(_msgSender(), true);
setExcludedFromFees(_marketingWallet, true);
setExcludedFromFees(_devWallet, true);
// buy
setFeeProfile(1,1,1,true);
// sell
setFeeProfile(1,1,1,false);
emit Transfer(address(0), _msgSender(), totalSupply());
}
function Launch(uint256 _blockPenalty) external onlyOwner {
require(!_isBuyingAllowed, "trading is already active");
setSwapEnabled(true);
setFeeEnabled(true);
_isBuyingAllowed = true;
tradingActiveBlock = block.number;
blockPenalty = _blockPenalty;
emit _launch(tradingActiveBlock);
}
function setWallets(address _marketing, address _dev) external onlyOwner() {
_marketingWallet = _marketing;
_devWallet = _dev;
emit _updateWallets(_marketing, _dev);
}
function setFeeProfile(uint8 _liquidity, uint8 _marketing, uint8 _dev, bool _updateBuy) public onlyOwner() {
uint8 _totalFee = _liquidity + _marketing + _dev;
require(_totalFee <= 20, "tax to high");
if(_updateBuy) { _buyProfile._liquidity = _liquidity; _buyProfile._marketing = _marketing; _buyProfile._dev = _dev; _buyProfile._totalFee = _totalFee; }
else{ _sellProfile._liquidity = _liquidity; _sellProfile._marketing = _marketing; _sellProfile._dev = _dev; _sellProfile._totalFee = _totalFee;}
emit _changeFees(_liquidity,_marketing,_dev,_updateBuy);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
doTransfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
doTransfer(sender, recipient, amount);
doApprove(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); // Will fail when there is not enough allowance
return true;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function approve(address spender, uint256 amount) public override returns (bool) {
doApprove(_msgSender(), spender, amount);
return true;
}
function doTransfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "zero address transfer is not allowed");
require(recipient != address(0), "zero address transfer is not allowed");
require(amount > 0, "amount must be greater than zero");
if(!_isBuyingAllowed) { require(_addressesExcludedFromFees[sender], "cant transfer"); }
if(_isSwapEnabled){ executeSwapCheck(sender, recipient); }
uint256 feeRate = calculateFeeRate(sender, recipient);
uint256 feeAmount = amount * feeRate / 100;
uint256 transferAmount = amount - feeAmount;
updateBalances(sender, recipient, amount, feeAmount);
emit Transfer(sender, recipient, transferAmount);
}
function executeSwapCheck(address sender, address recipient) private {
if (!isMarketTransfer(sender, recipient)) {
return;
}
uint256 tokensAvailableForSwap = balanceOf(address(this));
if (tokensAvailableForSwap >= _tokenSwapThreshold) {
tokensAvailableForSwap = _tokenSwapThreshold;
bool isSelling = isPancakeswapPair(recipient);
if (isSelling) {
executeSwap(tokensAvailableForSwap);
}
}
}
// if buildup becomes to large in contract
function clearSwap(uint256 _tokenAmount) external onlyOwner(){
executeSwap(_tokenAmount);
emit _clear(_tokenAmount);
}
function executeSwap(uint256 amount) private {
// Allow pancakeswap to spend the tokens of the address
doApprove(address(this), address(V2Router), amount);
uint256 total = _sellProfile._totalFee;
uint256 tokensReservedForLiquidity = amount * _sellProfile._liquidity / total;
uint256 tokensReservedForDev = amount * _sellProfile._dev / total ;
uint256 tokensReservedForMarketing = amount - tokensReservedForLiquidity - tokensReservedForDev;
uint256 tokensToSwapForLiquidity = tokensReservedForLiquidity / 2;
uint256 tokensToAddAsLiquidity = tokensToSwapForLiquidity;
uint256 tokensToSwap = tokensToSwapForLiquidity + tokensReservedForMarketing + tokensReservedForDev;
uint256 ethSwapped = swapTokensForBNB(tokensToSwap);
uint256 bnbToBeAddedToLiquidity = ethSwapped * tokensToSwapForLiquidity / tokensToSwap;
uint256 bnbToBeSentToDevelopment = ethSwapped * tokensReservedForDev / tokensToSwap;
uint256 bnbToBeSentToMarketing = ethSwapped - bnbToBeAddedToLiquidity- bnbToBeSentToDevelopment;
payable(_marketingWallet).transfer(bnbToBeSentToMarketing);
payable(_devWallet).transfer(bnbToBeSentToDevelopment);
try V2Router.addLiquidityETH{value: bnbToBeAddedToLiquidity}(address(this), tokensToAddAsLiquidity, 0, 0, _devWallet, block.timestamp){} catch {}
emit _swapAndLiquify(ethSwapped);
}
function updateBalances(address sender, address recipient, uint256 sentAmount, uint256 feeAmount) private {
// Calculate amount to be received by recipient
uint256 receivedAmount = sentAmount - feeAmount;
// Update balances
_balances[sender] -= sentAmount;
_balances[recipient] += receivedAmount;
// Add fees to contract
_balances[address(this)] += feeAmount;
// hides bloat emits
if(feeAmount > 0 ){
emit Transfer(sender, address(this), feeAmount);
}
}
function doApprove(address owner, address spender, uint256 amount) private {
require(owner != address(0), "Cannot approve from the zero address");
require(spender != address(0), "Cannot approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function calculateFeeRate(address sender, address recipient) private view returns(uint256) {
bool applyFees = _isFeeEnabled && !_addressesExcludedFromFees[sender] && !_addressesExcludedFromFees[recipient];
if (applyFees) {
if (isPancakeswapPair(recipient)) {
return _sellProfile._totalFee;
}else{
if(isPenaltyActive()){
return 75;
}else{
return _buyProfile._totalFee;
}
}
}
return 0;
}
function swapTokensForBNB(uint256 tokenAmount) internal returns(uint256) {
uint256 initialBalance = address(this).balance;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = V2Router.WETH();
V2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
return address(this).balance - initialBalance;
}
function isSwapTransfer(address sender, address recipient) private view returns(bool) {
bool isContractSelling = sender == address(this) && isPancakeswapPair(recipient);
return isContractSelling;
}
function isMarketTransfer(address sender, address recipient) internal virtual view returns(bool) {
return !isSwapTransfer(sender, recipient);
}
function amountUntilSwap() external view returns (uint256) {
uint256 balance = balanceOf(address(this));
if (balance > _tokenSwapThreshold) {
return 0;
}
return _tokenSwapThreshold - balance;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
doApprove(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
doApprove(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
return true;
}
function setSwapRouter(address routerAddress) public onlyOwner {
require(routerAddress != address(0), "Cannot use the zero address as router address");
V2Router = IRouter02(routerAddress);
V2Pair = IFactoryV2(V2Router.factory()).createPair(address(this), V2Router.WETH());
emit _setRouter(routerAddress);
}
function isPancakeswapPair(address addr) internal view returns(bool) {
return V2Pair == addr;
}
function setTokenSwapThreshold(uint256 threshold) external onlyOwner {
require(threshold > 0, "Threshold must be greater than 0");
_tokenSwapThreshold = threshold;
emit _setThreshold(threshold);
}
// dust can build up by failure of adding liq
function clearDust() external onlyOwner{
payable(_devWallet).transfer(address(this).balance);
emit _claimDust(address(this).balance);
}
function totalSupply() public override pure returns (uint256) { return _totalTokens; }
function allowance(address user, address spender) public view override returns (uint256) { return _allowances[user][spender]; }
function pairAddress() public view returns (address) { return V2Pair; }
function setSwapEnabled(bool isEnabled) public onlyOwner { _isSwapEnabled = isEnabled; }
function setFeeEnabled(bool isEnabled) public onlyOwner { _isFeeEnabled = isEnabled; }
function setExcludedFromFees(address addr, bool value) public onlyOwner { _addressesExcludedFromFees[addr] = value; }
function isPenaltyActive() public view returns (bool) { return tradingActiveBlock >= block.number - blockPenalty; }
function decimals() external pure override returns (uint8) { if (totalSupply() == 0) { revert(); } return DECIMALS; }
function symbol() external pure override returns (string memory) { return SYMBOL; }
function name() external pure override returns (string memory) { return NAME; }
function getOwner() external view override returns (address) { return owner(); }
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_liq","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_dev","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_isBuy","type":"bool"}],"name":"_changeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_claimDust","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_clear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_start","type":"uint256"}],"name":"_launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_routerAddress","type":"address"}],"name":"_setRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"_setThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_swapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketing","type":"address"},{"indexed":false,"internalType":"address","name":"_dev","type":"address"}],"name":"_updateWallets","type":"event"},{"inputs":[{"internalType":"uint256","name":"_blockPenalty","type":"uint256"}],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_addressesExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isBuyingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountUntilSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"clearSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isPenaltyActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"bool","name":"_updateBuy","type":"bool"}],"name":"setFeeProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setTokenSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526103e8620000156012600a62000796565b6200002590633b9aca00620007ae565b620000319190620007c8565b6200003e906001620007ae565b6009556000600f553480156200005357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009f620001c6565b33600090815260066020526040902055600c80546001600160a01b031990811673a51e4ca53f6e7722922b6b18ce1f5e058c15198c17909155600d805490911673b7e041809b7b026b97f03bd6dbc28e74cceca08e1790556200011673863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f620001eb565b6200012330600162000479565b6200013033600162000479565b600c5462000149906001600160a01b0316600162000479565b600d5462000162906001600160a01b0316600162000479565b620001716001808080620004ef565b62000181600180806000620004ef565b3360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001af620001c6565b60405190815260200160405180910390a362000832565b6000620001d66012600a62000796565b620001e690633b9aca00620007ae565b905090565b6000546001600160a01b031633146200023a5760405162461bcd60e51b815260206004820181905260248201526000805160206200269083398151915260448201526064015b60405180910390fd5b6001600160a01b038116620002a85760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b606482015260840162000231565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003289190620007eb565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620007eb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004259190620007eb565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd4151642619060200160405180910390a150565b6000546001600160a01b03163314620004c45760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200053a5760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b60008262000549858762000816565b62000555919062000816565b905060148160ff1611156200059b5760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b604482015260640162000231565b8115620005ea576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790556200062d565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d8578160001904821115620006bc57620006bc62000681565b80851615620006ca57918102915b93841c93908002906200069c565b509250929050565b600082620006f15750600162000790565b81620007005750600062000790565b8160018114620007195760028114620007245762000744565b600191505062000790565b60ff84111562000738576200073862000681565b50506001821b62000790565b5060208310610133831016604e8410600b841016171562000769575081810a62000790565b62000775838362000697565b80600019048211156200078c576200078c62000681565b0290505b92915050565b6000620007a760ff841683620006e0565b9392505050565b808202811582820484141762000790576200079062000681565b600082620007e657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007fe57600080fd5b81516001600160a01b0381168114620007a757600080fd5b60ff818116838216019081111562000790576200079062000681565b611e4e80620008426000396000f3fe6080604052600436106102135760003560e01c8063893d20e811610118578063d3f6a157116100a0578063e6f2306b1161006f578063e6f2306b14610695578063ee40166e146106cb578063f0977357146106e1578063f16f07ae14610701578063fb96a95f1461071757600080fd5b8063d3f6a157146105f0578063d3ff209d14610610578063dd62ed3e1461062f578063e01af92c1461067557600080fd5b8063962dfc75116100e7578063962dfc7514610552578063a457c2d714610572578063a72e5e1514610592578063a8b08982146105b2578063a9059cbb146105d057600080fd5b8063893d20e8146104e75780638da5cb5b146104e757806391f24c091461050557806395d89b411461052557600080fd5b80633e0bf7161161019b57806359ecf39e1161016a57806359ecf39e146104425780635a264ca71461046257806370a08231146104825780637d584aa1146104b85780637f7fcecc146104cd57600080fd5b80633e0bf7161461038a57806341273657146103ed57806358b69bc31461040d578063590ffdce1461042257600080fd5b806318160ddd116101e257806318160ddd146102eb57806323b872dd1461030e5780633094375d1461032e578063313ce56714610343578063395093511461036a57600080fd5b806306fdde031461021f578063095ea7b3146102615780630db474fa1461029157806311a63e17146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152662837b9372630b160c91b60208201525b6040516102589190611939565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461199f565b610747565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac3660046119e0565b61075e565b005b3480156102bf57600080fd5b50600d546102d3906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f757600080fd5b506103006107ab565b604051908152602001610258565b34801561031a57600080fd5b50610281610329366004611a02565b6107cc565b34801561033a57600080fd5b5061030061081e565b34801561034f57600080fd5b50610358610854565b60405160ff9091168152602001610258565b34801561037657600080fd5b5061028161038536600461199f565b610870565b34801561039657600080fd5b506003546103c09060ff808216916101008104821691620100008204811691630100000090041684565b6040805160ff95861681529385166020850152918416918301919091529091166060820152608001610258565b3480156103f957600080fd5b506102b1610408366004611a43565b6108a7565b34801561041957600080fd5b50610281610b06565b34801561042e57600080fd5b506102b161043d366004611a60565b610b20565b34801561044e57600080fd5b506102b161045d366004611a95565b610b75565b34801561046e57600080fd5b506008546102819062010000900460ff1681565b34801561048e57600080fd5b5061030061049d366004611a43565b6001600160a01b031660009081526006602052604090205490565b3480156104c457600080fd5b506102b1610c24565b3480156104d957600080fd5b506008546102819060ff1681565b3480156104f357600080fd5b506000546001600160a01b03166102d3565b34801561051157600080fd5b506102b1610520366004611abf565b610cbd565b34801561053157600080fd5b50604080518082019091526004815263282620a160e11b602082015261024b565b34801561055e57600080fd5b50600c546102d3906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461199f565b610e26565b34801561059e57600080fd5b506102b16105ad366004611a95565b610e5d565b3480156105be57600080fd5b50600b546001600160a01b03166102d3565b3480156105dc57600080fd5b506102816105eb36600461199f565b610f42565b3480156105fc57600080fd5b506102b161060b366004611b13565b610f4f565b34801561061c57600080fd5b5060085461028190610100900460ff1681565b34801561063b57600080fd5b5061030061064a366004611b13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068157600080fd5b506102b16106903660046119e0565b610fe7565b3480156106a157600080fd5b506004546103c09060ff808216916101008104821691620100008204811691630100000090041684565b3480156106d757600080fd5b50610300600f5481565b3480156106ed57600080fd5b506102b16106fc366004611a95565b611024565b34801561070d57600080fd5b5061030060095481565b34801561072357600080fd5b50610281610732366004611a43565b60076020526000908152604090205460ff1681565b6000610754338484611087565b5060015b92915050565b6000546001600160a01b031633146107915760405162461bcd60e51b815260040161078890611b4c565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b60006107b96012600a611c7b565b6107c790633b9aca00611c8a565b905090565b60006107d98484846111ab565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461081491869161080f908690611ca1565b611087565b5060019392505050565b3060009081526006602052604081205460095481111561084057600091505090565b8060095461084e9190611ca1565b91505090565b600061085e6107ab565b60000361086a57600080fd5b50601290565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611cb4565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03811661093d5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b6064820152608401610788565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611cc7565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190611cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab19190611cc7565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd415164261906020015b60405180910390a150565b6000600e5443610b169190611ca1565b600f541015905090565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078890611b4c565b60008111610bef5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610788565b60098190556040518181527f3d5472e45a39af360c106b99aa48f7356cd3b609ea581b5deb38a4b1270e898590602001610afb565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161078890611b4c565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c87573d6000803e3d6000fd5b506040514781527fd1c23667321cc2db9d1de3db7f4dcf0eb5ade4f87e163713d3667eec1e92facb9060200160405180910390a1565b6000546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078890611b4c565b600082610cf48587611ce4565b610cfe9190611ce4565b905060148160ff161115610d425760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b6044820152606401610788565b8115610d8f576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff000000191617630100000091841691909102179055610dd2565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611ca1565b6000546001600160a01b03163314610e875760405162461bcd60e51b815260040161078890611b4c565b60085462010000900460ff1615610ee05760405162461bcd60e51b815260206004820152601960248201527f74726164696e6720697320616c726561647920616374697665000000000000006044820152606401610788565b610eea6001610fe7565b610ef4600161075e565b6008805462ff000019166201000017905543600f819055600e8290556040517f6600f6005863f92891b8c04d901a1f5d14860257428eba2058e9f3f9175b563391610afb9190815260200190565b60006107543384846111ab565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040161078890611b4c565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d80549185169190921681179091556040805192835260208301919091527fe67d5d4d7e74d0ccbdf30dbd83729da0b6a8405bfb83b5f35038638e19a4ea13910160405180910390a15050565b6000546001600160a01b031633146110115760405162461bcd60e51b815260040161078890611b4c565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161078890611b4c565b6110578161135b565b6040518181527f8d9f39d10957a4e556f944f249fcdc7cc1263cc4e31368fe3056895f85d4599d90602001610afb565b6001600160a01b0383166110e95760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610788565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610788565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111d15760405162461bcd60e51b815260040161078890611cfd565b6001600160a01b0382166111f75760405162461bcd60e51b815260040161078890611cfd565b600081116112475760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610788565b60085462010000900460ff166112af576001600160a01b03831660009081526007602052604090205460ff166112af5760405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606401610788565b60085460ff16156112c4576112c483836115ac565b60006112d08484611602565b9050600060646112e08385611c8a565b6112ea9190611d41565b905060006112f88285611ca1565b9050611306868686856116c2565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b91815260200190565b60405180910390a3505050505050565b600a546113739030906001600160a01b031683611087565b60045460ff630100000082048116916000918391611392911685611c8a565b61139c9190611d41565b60045490915060009083906113ba9062010000900460ff1686611c8a565b6113c49190611d41565b90506000816113d38487611ca1565b6113dd9190611ca1565b905060006113ec600285611d41565b9050806000846113fc8584611cb4565b6114069190611cb4565b905060006114138261179f565b90506000826114228684611c8a565b61142c9190611d41565b905060008361143b8985611c8a565b6114459190611d41565b90506000816114548486611ca1565b61145e9190611ca1565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156114d4573d6000803e3d6000fd5b50600a54600d5460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af193505050508015611562575060408051601f3d908101601f1916820190925261155f91810190611d63565b60015b1561156b575050505b6040518481527f7bf54cb9a865e8dabf744f65dfac5fe865060b1d1b8172c512d88fe90815cf2a9060200160405180910390a1505050505050505050505050565b6115b682826118f6565b6115be575050565b3060009081526006602052604090205460095481106115fd5750600954600b546001600160a01b0383811691161480156115fb576115fb8261135b565b505b505050565b6008546000908190610100900460ff16801561163757506001600160a01b03841660009081526007602052604090205460ff16155b801561165c57506001600160a01b03831660009081526007602052604090205460ff16155b905080156116b857600b546001600160a01b0380851691160361168d5750506004546301000000900460ff16610758565b611695610b06565b156116a457604b915050610758565b50506003546301000000900460ff16610758565b5060009392505050565b60006116ce8284611ca1565b6001600160a01b0386166000908152600660205260408120805492935085929091906116fb908490611ca1565b90915550506001600160a01b03841660009081526006602052604081208054839290611728908490611cb4565b9091555050306000908152600660205260408120805484929061174c908490611cb4565b909155505081156117985760405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106117da576117da611d91565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611cc7565b8160018151811061186a5761186a611d91565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906118b0908790600090869030904290600401611da7565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b5050505081476118ee9190611ca1565b949350505050565b6000611902838361190a565b159392505050565b6000806001600160a01b038416301480156118ee5750600b546001600160a01b03808516911614949350505050565b600060208083528351808285015260005b818110156119665785810183015185820160400152820161194a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461199c57600080fd5b50565b600080604083850312156119b257600080fd5b82356119bd81611987565b946020939093013593505050565b803580151581146119db57600080fd5b919050565b6000602082840312156119f257600080fd5b6119fb826119cb565b9392505050565b600080600060608486031215611a1757600080fd5b8335611a2281611987565b92506020840135611a3281611987565b929592945050506040919091013590565b600060208284031215611a5557600080fd5b81356119fb81611987565b60008060408385031215611a7357600080fd5b8235611a7e81611987565b9150611a8c602084016119cb565b90509250929050565b600060208284031215611aa757600080fd5b5035919050565b803560ff811681146119db57600080fd5b60008060008060808587031215611ad557600080fd5b611ade85611aae565b9350611aec60208601611aae565b9250611afa60408601611aae565b9150611b08606086016119cb565b905092959194509250565b60008060408385031215611b2657600080fd5b8235611b3181611987565b91506020830135611b4181611987565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bd2578160001904821115611bb857611bb8611b81565b80851615611bc557918102915b93841c9390800290611b9c565b509250929050565b600082611be957506001610758565b81611bf657506000610758565b8160018114611c0c5760028114611c1657611c32565b6001915050610758565b60ff841115611c2757611c27611b81565b50506001821b610758565b5060208310610133831016604e8410600b8410161715611c55575081810a610758565b611c5f8383611b97565b8060001904821115611c7357611c73611b81565b029392505050565b60006119fb60ff841683611bda565b808202811582820484141761075857610758611b81565b8181038181111561075857610758611b81565b8082018082111561075857610758611b81565b600060208284031215611cd957600080fd5b81516119fb81611987565b60ff818116838216019081111561075857610758611b81565b60208082526024908201527f7a65726f2061646472657373207472616e73666572206973206e6f7420616c6c6040820152631bddd95960e21b606082015260800190565b600082611d5e57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611d7857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611df75784516001600160a01b031683529383019391830191600101611dd2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e23764736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063893d20e811610118578063d3f6a157116100a0578063e6f2306b1161006f578063e6f2306b14610695578063ee40166e146106cb578063f0977357146106e1578063f16f07ae14610701578063fb96a95f1461071757600080fd5b8063d3f6a157146105f0578063d3ff209d14610610578063dd62ed3e1461062f578063e01af92c1461067557600080fd5b8063962dfc75116100e7578063962dfc7514610552578063a457c2d714610572578063a72e5e1514610592578063a8b08982146105b2578063a9059cbb146105d057600080fd5b8063893d20e8146104e75780638da5cb5b146104e757806391f24c091461050557806395d89b411461052557600080fd5b80633e0bf7161161019b57806359ecf39e1161016a57806359ecf39e146104425780635a264ca71461046257806370a08231146104825780637d584aa1146104b85780637f7fcecc146104cd57600080fd5b80633e0bf7161461038a57806341273657146103ed57806358b69bc31461040d578063590ffdce1461042257600080fd5b806318160ddd116101e257806318160ddd146102eb57806323b872dd1461030e5780633094375d1461032e578063313ce56714610343578063395093511461036a57600080fd5b806306fdde031461021f578063095ea7b3146102615780630db474fa1461029157806311a63e17146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152662837b9372630b160c91b60208201525b6040516102589190611939565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461199f565b610747565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac3660046119e0565b61075e565b005b3480156102bf57600080fd5b50600d546102d3906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f757600080fd5b506103006107ab565b604051908152602001610258565b34801561031a57600080fd5b50610281610329366004611a02565b6107cc565b34801561033a57600080fd5b5061030061081e565b34801561034f57600080fd5b50610358610854565b60405160ff9091168152602001610258565b34801561037657600080fd5b5061028161038536600461199f565b610870565b34801561039657600080fd5b506003546103c09060ff808216916101008104821691620100008204811691630100000090041684565b6040805160ff95861681529385166020850152918416918301919091529091166060820152608001610258565b3480156103f957600080fd5b506102b1610408366004611a43565b6108a7565b34801561041957600080fd5b50610281610b06565b34801561042e57600080fd5b506102b161043d366004611a60565b610b20565b34801561044e57600080fd5b506102b161045d366004611a95565b610b75565b34801561046e57600080fd5b506008546102819062010000900460ff1681565b34801561048e57600080fd5b5061030061049d366004611a43565b6001600160a01b031660009081526006602052604090205490565b3480156104c457600080fd5b506102b1610c24565b3480156104d957600080fd5b506008546102819060ff1681565b3480156104f357600080fd5b506000546001600160a01b03166102d3565b34801561051157600080fd5b506102b1610520366004611abf565b610cbd565b34801561053157600080fd5b50604080518082019091526004815263282620a160e11b602082015261024b565b34801561055e57600080fd5b50600c546102d3906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461199f565b610e26565b34801561059e57600080fd5b506102b16105ad366004611a95565b610e5d565b3480156105be57600080fd5b50600b546001600160a01b03166102d3565b3480156105dc57600080fd5b506102816105eb36600461199f565b610f42565b3480156105fc57600080fd5b506102b161060b366004611b13565b610f4f565b34801561061c57600080fd5b5060085461028190610100900460ff1681565b34801561063b57600080fd5b5061030061064a366004611b13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068157600080fd5b506102b16106903660046119e0565b610fe7565b3480156106a157600080fd5b506004546103c09060ff808216916101008104821691620100008204811691630100000090041684565b3480156106d757600080fd5b50610300600f5481565b3480156106ed57600080fd5b506102b16106fc366004611a95565b611024565b34801561070d57600080fd5b5061030060095481565b34801561072357600080fd5b50610281610732366004611a43565b60076020526000908152604090205460ff1681565b6000610754338484611087565b5060015b92915050565b6000546001600160a01b031633146107915760405162461bcd60e51b815260040161078890611b4c565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b60006107b96012600a611c7b565b6107c790633b9aca00611c8a565b905090565b60006107d98484846111ab565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461081491869161080f908690611ca1565b611087565b5060019392505050565b3060009081526006602052604081205460095481111561084057600091505090565b8060095461084e9190611ca1565b91505090565b600061085e6107ab565b60000361086a57600080fd5b50601290565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611cb4565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03811661093d5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b6064820152608401610788565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611cc7565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190611cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab19190611cc7565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd415164261906020015b60405180910390a150565b6000600e5443610b169190611ca1565b600f541015905090565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078890611b4c565b60008111610bef5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610788565b60098190556040518181527f3d5472e45a39af360c106b99aa48f7356cd3b609ea581b5deb38a4b1270e898590602001610afb565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161078890611b4c565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c87573d6000803e3d6000fd5b506040514781527fd1c23667321cc2db9d1de3db7f4dcf0eb5ade4f87e163713d3667eec1e92facb9060200160405180910390a1565b6000546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078890611b4c565b600082610cf48587611ce4565b610cfe9190611ce4565b905060148160ff161115610d425760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b6044820152606401610788565b8115610d8f576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff000000191617630100000091841691909102179055610dd2565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611ca1565b6000546001600160a01b03163314610e875760405162461bcd60e51b815260040161078890611b4c565b60085462010000900460ff1615610ee05760405162461bcd60e51b815260206004820152601960248201527f74726164696e6720697320616c726561647920616374697665000000000000006044820152606401610788565b610eea6001610fe7565b610ef4600161075e565b6008805462ff000019166201000017905543600f819055600e8290556040517f6600f6005863f92891b8c04d901a1f5d14860257428eba2058e9f3f9175b563391610afb9190815260200190565b60006107543384846111ab565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040161078890611b4c565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d80549185169190921681179091556040805192835260208301919091527fe67d5d4d7e74d0ccbdf30dbd83729da0b6a8405bfb83b5f35038638e19a4ea13910160405180910390a15050565b6000546001600160a01b031633146110115760405162461bcd60e51b815260040161078890611b4c565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161078890611b4c565b6110578161135b565b6040518181527f8d9f39d10957a4e556f944f249fcdc7cc1263cc4e31368fe3056895f85d4599d90602001610afb565b6001600160a01b0383166110e95760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610788565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610788565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111d15760405162461bcd60e51b815260040161078890611cfd565b6001600160a01b0382166111f75760405162461bcd60e51b815260040161078890611cfd565b600081116112475760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610788565b60085462010000900460ff166112af576001600160a01b03831660009081526007602052604090205460ff166112af5760405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606401610788565b60085460ff16156112c4576112c483836115ac565b60006112d08484611602565b9050600060646112e08385611c8a565b6112ea9190611d41565b905060006112f88285611ca1565b9050611306868686856116c2565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b91815260200190565b60405180910390a3505050505050565b600a546113739030906001600160a01b031683611087565b60045460ff630100000082048116916000918391611392911685611c8a565b61139c9190611d41565b60045490915060009083906113ba9062010000900460ff1686611c8a565b6113c49190611d41565b90506000816113d38487611ca1565b6113dd9190611ca1565b905060006113ec600285611d41565b9050806000846113fc8584611cb4565b6114069190611cb4565b905060006114138261179f565b90506000826114228684611c8a565b61142c9190611d41565b905060008361143b8985611c8a565b6114459190611d41565b90506000816114548486611ca1565b61145e9190611ca1565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156114d4573d6000803e3d6000fd5b50600a54600d5460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af193505050508015611562575060408051601f3d908101601f1916820190925261155f91810190611d63565b60015b1561156b575050505b6040518481527f7bf54cb9a865e8dabf744f65dfac5fe865060b1d1b8172c512d88fe90815cf2a9060200160405180910390a1505050505050505050505050565b6115b682826118f6565b6115be575050565b3060009081526006602052604090205460095481106115fd5750600954600b546001600160a01b0383811691161480156115fb576115fb8261135b565b505b505050565b6008546000908190610100900460ff16801561163757506001600160a01b03841660009081526007602052604090205460ff16155b801561165c57506001600160a01b03831660009081526007602052604090205460ff16155b905080156116b857600b546001600160a01b0380851691160361168d5750506004546301000000900460ff16610758565b611695610b06565b156116a457604b915050610758565b50506003546301000000900460ff16610758565b5060009392505050565b60006116ce8284611ca1565b6001600160a01b0386166000908152600660205260408120805492935085929091906116fb908490611ca1565b90915550506001600160a01b03841660009081526006602052604081208054839290611728908490611cb4565b9091555050306000908152600660205260408120805484929061174c908490611cb4565b909155505081156117985760405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106117da576117da611d91565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611cc7565b8160018151811061186a5761186a611d91565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906118b0908790600090869030904290600401611da7565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b5050505081476118ee9190611ca1565b949350505050565b6000611902838361190a565b159392505050565b6000806001600160a01b038416301480156118ee5750600b546001600160a01b03808516911614949350505050565b600060208083528351808285015260005b818110156119665785810183015185820160400152820161194a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461199c57600080fd5b50565b600080604083850312156119b257600080fd5b82356119bd81611987565b946020939093013593505050565b803580151581146119db57600080fd5b919050565b6000602082840312156119f257600080fd5b6119fb826119cb565b9392505050565b600080600060608486031215611a1757600080fd5b8335611a2281611987565b92506020840135611a3281611987565b929592945050506040919091013590565b600060208284031215611a5557600080fd5b81356119fb81611987565b60008060408385031215611a7357600080fd5b8235611a7e81611987565b9150611a8c602084016119cb565b90509250929050565b600060208284031215611aa757600080fd5b5035919050565b803560ff811681146119db57600080fd5b60008060008060808587031215611ad557600080fd5b611ade85611aae565b9350611aec60208601611aae565b9250611afa60408601611aae565b9150611b08606086016119cb565b905092959194509250565b60008060408385031215611b2657600080fd5b8235611b3181611987565b91506020830135611b4181611987565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bd2578160001904821115611bb857611bb8611b81565b80851615611bc557918102915b93841c9390800290611b9c565b509250929050565b600082611be957506001610758565b81611bf657506000610758565b8160018114611c0c5760028114611c1657611c32565b6001915050610758565b60ff841115611c2757611c27611b81565b50506001821b610758565b5060208310610133831016604e8410600b8410161715611c55575081810a610758565b611c5f8383611b97565b8060001904821115611c7357611c73611b81565b029392505050565b60006119fb60ff841683611bda565b808202811582820484141761075857610758611b81565b8181038181111561075857610758611b81565b8082018082111561075857610758611b81565b600060208284031215611cd957600080fd5b81516119fb81611987565b60ff818116838216019081111561075857610758611b81565b60208082526024908201527f7a65726f2061646472657373207472616e73666572206973206e6f7420616c6c6040820152631bddd95960e21b606082015260800190565b600082611d5e57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611d7857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611df75784516001600160a01b031683529383019391830191600101611dd2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e23764736f6c63430008130033
Deployed Bytecode Sourcemap
4556:11876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16229:79;;;;;;;;;;-1:-1:-1;16301:4:0;;;;;;;;;;;;-1:-1:-1;;;16301:4:0;;;;16229:79;;;;;;;:::i;:::-;;;;;;;;8578:152;;;;;;;;;;-1:-1:-1;8578:152:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8578:152:0;1023:187:1;15680:86:0;;;;;;;;;;-1:-1:-1;15680:86:0;;;;;:::i;:::-;;:::i;:::-;;5532:25;;;;;;;;;;-1:-1:-1;5532:25:0;;;;-1:-1:-1;;;;;5532:25:0;;;;;;-1:-1:-1;;;;;1729:32:1;;;1711:51;;1699:2;1684:18;5532:25:0;1565:203:1;15284:86:0;;;;;;;;;;;;;:::i;:::-;;;1919:25:1;;;1907:2;1892:18;15284:86:0;1773:177:1;8149:302:0;;;;;;;;;;-1:-1:-1;8149:302:0;;;;;:::i;:::-;;:::i;13744:224::-;;;;;;;;;;;;;:::i;16017:117::-;;;;;;;;;;;;;:::i;:::-;;;2588:4:1;2576:17;;;2558:36;;2546:2;2531:18;16017:117:0;2416:184:1;13974:206:0;;;;;;;;;;-1:-1:-1;13974:206:0;;;;;:::i;:::-;;:::i;4896:29::-;;;;;;;;;;-1:-1:-1;4896:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:4:1;2838:17;;;2820:36;;2892:17;;;2887:2;2872:18;;2865:45;2946:17;;;2926:18;;;2919:45;;;;3000:17;;;2995:2;2980:18;;2973:45;2807:3;2792:19;4896:29:0;2605:419:1;14408:329:0;;;;;;;;;;-1:-1:-1;14408:329:0;;;;;:::i;:::-;;:::i;15895:115::-;;;;;;;;;;;;;:::i;15772:117::-;;;;;;;;;;-1:-1:-1;15772:117:0;;;;;:::i;:::-;;:::i;14852:215::-;;;;;;;;;;-1:-1:-1;14852:215:0;;;;;:::i;:::-;;:::i;5231:28::-;;;;;;;;;;-1:-1:-1;5231:28:0;;;;;;;;;;;8459:113;;;;;;;;;;-1:-1:-1;8459:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;8548:18:0;8525:7;8548:18;;;:9;:18;;;;;;;8459:113;15123:153;;;;;;;;;;;;;:::i;5168:26::-;;;;;;;;;;-1:-1:-1;5168:26:0;;;;;;;;16314:80;;;;;;;;;;-1:-1:-1;16366:7:0;936:6;-1:-1:-1;;;;;936:6:0;16314:80;15284:86;7375:600;;;;;;;;;;-1:-1:-1;7375:600:0;;;;;:::i;:::-;;:::i;16140:83::-;;;;;;;;;;-1:-1:-1;16214:6:0;;;;;;;;;;;;-1:-1:-1;;;16214:6:0;;;;16140:83;;5496:31;;;;;;;;;;-1:-1:-1;5496:31:0;;;;-1:-1:-1;;;;;5496:31:0;;;14186:216;;;;;;;;;;-1:-1:-1;14186:216:0;;;;;:::i;:::-;;:::i;6833:331::-;;;;;;;;;;-1:-1:-1;6833:331:0;;;;;:::i;:::-;;:::i;15509:71::-;;;;;;;;;;-1:-1:-1;15571:6:0;;-1:-1:-1;;;;;15571:6:0;15509:71;;7985:158;;;;;;;;;;-1:-1:-1;7985:158:0;;;;;:::i;:::-;;:::i;7170:199::-;;;;;;;;;;-1:-1:-1;7170:199:0;;;;;:::i;:::-;;:::i;5200:25::-;;;;;;;;;;-1:-1:-1;5200:25:0;;;;;;;;;;;15376:127;;;;;;;;;;-1:-1:-1;15376:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;15474:17:0;;;15456:7;15474:17;;;:11;:17;;;;;;;;:26;;;;;;;;;;;;;15376:127;15586:88;;;;;;;;;;-1:-1:-1;15586:88:0;;;;;:::i;:::-;;:::i;4930:30::-;;;;;;;;;;-1:-1:-1;4930:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5597:37;;;;;;;;;;;;;;;;10014:131;;;;;;;;;;-1:-1:-1;10014:131:0;;;;;:::i;:::-;;:::i;5324:60::-;;;;;;;;;;;;;;;;5101:59;;;;;;;;;;-1:-1:-1;5101:59:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8578:152;8653:4;8666:40;193:10;8690:7;8699:6;8666:9;:40::i;:::-;-1:-1:-1;8720:4:0;8578:152;;;;;:::o;15680:86::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;;;;;;;;;15738:13:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;15738:25:0;;::::1;::::0;;;::::1;::::0;;15680:86::o;15284:::-;15337:7;4655:12;4796:2;4655;:12;:::i;:::-;4639:28;;:13;:28;:::i;:::-;15348:19;;15284:86;:::o;8149:302::-;8247:4;8260:37;8271:6;8279:9;8290:6;8260:10;:37::i;:::-;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;193:10;8336:33;;;;;;;;;8304:75;;8314:6;;8336:42;;8372:6;;8336:42;:::i;:::-;8304:9;:75::i;:::-;-1:-1:-1;8441:4:0;8149:302;;;;;:::o;13744:224::-;13847:4;13795:7;8548:18;;;:9;:18;;;;;;13874:19;;13864:7;:29;13860:60;;;13911:1;13904:8;;;13744:224;:::o;13860:60::-;13955:7;13933:19;;:29;;;;:::i;:::-;13926:36;;;13744:224;:::o;16017:117::-;16069:5;16082:13;:11;:13::i;:::-;16099:1;16082:18;16078:37;;16104:8;;;16078:37;-1:-1:-1;4796:2:0;;16017:117::o;13974:206::-;193:10;14062:4;14108:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14108:34:0;;;;;;;;;;14062:4;;14075:81;;14099:7;;14108:47;;14145:10;;14108:47;:::i;14408:329::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14486:27:0;::::1;14478:85;;;::::0;-1:-1:-1;;;14478:85:0;;7250:2:1;14478:85:0::1;::::0;::::1;7232:21:1::0;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:43;7432:19;;14478:85:0::1;7048:409:1::0;14478:85:0::1;14570:8;:35:::0;;-1:-1:-1;;;;;;14570:35:0::1;-1:-1:-1::0;;;;;14570:35:0;::::1;::::0;;::::1;::::0;;;14632:18:::1;::::0;;-1:-1:-1;;;14632:18:0;;;;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;14570:35;14632:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14621:41:0::1;;14671:4;14678:8;;;;;;;;;-1:-1:-1::0;;;;;14678:8:0::1;-1:-1:-1::0;;;;;14678:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14621:73;::::0;-1:-1:-1;;;;;;14621:73:0::1;::::0;;;;;;-1:-1:-1;;;;;7948:15:1;;;14621:73:0::1;::::0;::::1;7930:34:1::0;8000:15;;7980:18;;;7973:43;7865:18;;14621:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14612:6;:82:::0;;-1:-1:-1;;;;;;14612:82:0::1;-1:-1:-1::0;;;;;14612:82:0;;::::1;;::::0;;14706:25:::1;::::0;1729:32:1;;;1711:51;;14706:25:0::1;::::0;1699:2:1;1684:18;14706:25:0::1;;;;;;;;14408:329:::0;:::o;15895:115::-;15943:4;15995:12;;15980;:27;;;;:::i;:::-;15958:18;;:49;;15951:56;;15895:115;:::o;15772:117::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15846:32:0;;;::::1;;::::0;;;:26:::1;:32;::::0;;;;:40;;-1:-1:-1;;15846:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15772:117::o;14852:215::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;14949:1:::1;14937:9;:13;14929:58;;;::::0;-1:-1:-1;;;14929:58:0;;8229:2:1;14929:58:0::1;::::0;::::1;8211:21:1::0;;;8248:18;;;8241:30;8307:34;8287:18;;;8280:62;8359:18;;14929:58:0::1;8027:356:1::0;14929:58:0::1;14994:19;:31:::0;;;15037:24:::1;::::0;1919:25:1;;;15037:24:0::1;::::0;1907:2:1;1892:18;15037:24:0::1;1773:177:1::0;15123:153:0;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15180:10:::1;::::0;15172:51:::1;::::0;-1:-1:-1;;;;;15180:10:0;;::::1;::::0;15201:21:::1;15172:51:::0;::::1;;;::::0;15180:10:::1;15172:51:::0;15180:10;15172:51;15201:21;15180:10;15172:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15237:33:0::1;::::0;15248:21:::1;1919:25:1::0;;15237:33:0::1;::::0;1907:2:1;1892:18;15237:33:0::1;;;;;;;15123:153::o:0;7375:600::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7489:15:::1;7533:4:::0;7507:23:::1;7520:10:::0;7507;:23:::1;:::i;:::-;:30;;;;:::i;:::-;7489:48;;7565:2;7552:9;:15;;;;7544:39;;;::::0;-1:-1:-1;;;7544:39:0;;8743:2:1;7544:39:0::1;::::0;::::1;8725:21:1::0;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:41;8852:18;;7544:39:0::1;8541:335:1::0;7544:39:0::1;7597:10;7594:308;;;7611:11;:35:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7649:35:0;;;;;;;7611::::1;7649::::0;;::::1;;;-1:-1:-1::0;;7712:33:0;7687:23;;;::::1;;-1:-1:-1::0;;7712:33:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;;;7764:12;:36:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7802:36:0;;;;;;;7764::::1;7802::::0;;::::1;;;-1:-1:-1::0;;7866:34:0;7840:24;;;::::1;;-1:-1:-1::0;;7866:34:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;7917:50;::::0;;9130:4:1;9118:17;;;9100:36;;9172:17;;;9167:2;9152:18;;9145:45;9226:17;;9206:18;;;9199:45;9287:14;;9280:22;9275:2;9260:18;;9253:50;7917::0;;::::1;::::0;;;;9087:3:1;7917:50:0;;::::1;7482:493;7375:600:::0;;;;:::o;14186:216::-;193:10;14279:4;14325:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14325:34:0;;;;;;;;;;14279:4;;14292:86;;14316:7;;14325:52;;14362:15;;14325:52;:::i;6833:331::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;6907:16:::1;::::0;;;::::1;;;6906:17;6898:55;;;::::0;-1:-1:-1;;;6898:55:0;;9516:2:1;6898:55:0::1;::::0;::::1;9498:21:1::0;9555:2;9535:18;;;9528:30;9594:27;9574:18;;;9567:55;9639:18;;6898:55:0::1;9314:349:1::0;6898:55:0::1;6964:20;6979:4;6964:14;:20::i;:::-;6991:19;7005:4;6991:13;:19::i;:::-;7019:16;:23:::0;;-1:-1:-1;;7019:23:0::1;::::0;::::1;::::0;;7070:12:::1;7049:18;:33:::0;;;7089:12:::1;:28:::0;;;7131:27:::1;::::0;::::1;::::0;::::1;::::0;1919:25:1;;;1907:2;1892:18;;1773:177;7985:158:0;8063:4;8076:43;193:10;8101:9;8112:6;8076:10;:43::i;7170:199::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7256:16:::1;:29:::0;;-1:-1:-1;;;;;7256:29:0;;::::1;-1:-1:-1::0;;;;;;7256:29:0;;::::1;::::0;::::1;::::0;;;7296:10:::1;:17:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;7329:32:::1;::::0;;7930:34:1;;;7995:2;7980:18;;7973:43;;;;7329:32:0::1;::::0;7865:18:1;7329:32:0::1;;;;;;;7170:199:::0;;:::o;15586:88::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15645:14:::1;:26:::0;;-1:-1:-1;;15645:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15586:88::o;10014:131::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;10082:25:::1;10094:12;10082:11;:25::i;:::-;10119:20;::::0;1919:25:1;;;10119:20:0::1;::::0;1907:2:1;1892:18;10119:20:0::1;1773:177:1::0;12090:320:0;-1:-1:-1;;;;;12180:19:0;;12172:68;;;;-1:-1:-1;;;12172:68:0;;9870:2:1;12172:68:0;;;9852:21:1;9909:2;9889:18;;;9882:30;9948:34;9928:18;;;9921:62;-1:-1:-1;;;9999:18:1;;;9992:34;10043:19;;12172:68:0;9668:400:1;12172:68:0;-1:-1:-1;;;;;12255:21:0;;12247:68;;;;-1:-1:-1;;;12247:68:0;;10275:2:1;12247:68:0;;;10257:21:1;10314:2;10294:18;;;10287:30;10353:34;10333:18;;;10326:62;-1:-1:-1;;;10404:18:1;;;10397:32;10446:19;;12247:68:0;10073:398:1;12247:68:0;-1:-1:-1;;;;;12324:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12372:32;;1919:25:1;;;12372:32:0;;1892:18:1;12372:32:0;;;;;;;12090:320;;;:::o;8738:751::-;-1:-1:-1;;;;;8841:20:0;;8833:69;;;;-1:-1:-1;;;8833:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8917:23:0;;8909:72;;;;-1:-1:-1;;;8909:72:0;;;;;;;:::i;:::-;9005:1;8996:6;:10;8988:55;;;;-1:-1:-1;;;8988:55:0;;11083:2:1;8988:55:0;;;11065:21:1;;;11102:18;;;11095:30;11161:34;11141:18;;;11134:62;11213:18;;8988:55:0;10881:356:1;8988:55:0;9056:16;;;;;;;9052:88;;-1:-1:-1;;;;;9085:34:0;;;;;;:26;:34;;;;;;;;9077:60;;;;-1:-1:-1;;;9077:60:0;;11444:2:1;9077:60:0;;;11426:21:1;11483:2;11463:18;;;11456:30;-1:-1:-1;;;11502:18:1;;;11495:43;11555:18;;9077:60:0;11242:337:1;9077:60:0;9149:14;;;;9146:58;;;9166:35;9183:6;9191:9;9166:16;:35::i;:::-;9212:15;9230:35;9247:6;9255:9;9230:16;:35::i;:::-;9212:53;-1:-1:-1;9272:17:0;9311:3;9292:16;9212:53;9292:6;:16;:::i;:::-;:22;;;;:::i;:::-;9272:42;-1:-1:-1;9321:22:0;9346:18;9272:42;9346:6;:18;:::i;:::-;9321:43;;9373:52;9388:6;9396:9;9407:6;9415:9;9373:14;:52::i;:::-;9456:9;-1:-1:-1;;;;;9439:43:0;9448:6;-1:-1:-1;;;;;9439:43:0;;9467:14;9439:43;;;;1919:25:1;;1907:2;1892:18;;1773:177;9439:43:0;;;;;;;;8826:663;;;8738:751;;;:::o;10153:1397::-;10299:8;;10266:51;;10284:4;;-1:-1:-1;;;;;10299:8:0;10310:6;10266:9;:51::i;:::-;10340:12;:22;;;;;;;;10324:13;;10340:22;;10408:32;;10417:23;10408:6;:32;:::i;:::-;:40;;;;:::i;:::-;10495:12;:17;10371:77;;-1:-1:-1;10455:28:0;;10515:5;;10486:26;;10495:17;;;;;10486:6;:26;:::i;:::-;:34;;;;:::i;:::-;10455:65;-1:-1:-1;10528:34:0;10455:65;10565:35;10574:26;10565:6;:35;:::i;:::-;:58;;;;:::i;:::-;10528:95;-1:-1:-1;10632:32:0;10667:30;10696:1;10667:26;:30;:::i;:::-;10632:65;-1:-1:-1;10632:65:0;10704:30;10849:20;10793:53;10820:26;10632:65;10793:53;:::i;:::-;:76;;;;:::i;:::-;10770:99;;10876:18;10897:30;10914:12;10897:16;:30::i;:::-;10876:51;-1:-1:-1;10940:31:0;11014:12;10974:37;10987:24;10876:51;10974:37;:::i;:::-;:52;;;;:::i;:::-;10940:86;-1:-1:-1;11033:32:0;11104:12;11068:33;11081:20;11068:10;:33;:::i;:::-;:48;;;;:::i;:::-;11033:83;-1:-1:-1;11123:30:0;11033:83;11156:36;11169:23;11156:10;:36;:::i;:::-;:62;;;;:::i;:::-;11235:16;;11227:58;;11123:95;;-1:-1:-1;;;;;;11235:16:0;;11227:58;;;;;11123:95;;11235:16;11227:58;11235:16;11227:58;11123:95;11235:16;11227:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11300:10:0;;11292:54;;-1:-1:-1;;;;;11300:10:0;;;;11292:54;;;;;11321:24;;11300:10;11292:54;11300:10;11292:54;11321:24;11300:10;11292:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:8:0;;11461:10;;11359:130;;-1:-1:-1;;;11359:130:0;;11424:4;11359:130;;;12147:34:1;12197:18;;;12190:34;;;11359:8:0;12240:18:1;;;12233:34;;;12283:18;;;12276:34;-1:-1:-1;;;;;11461:10:0;;;12326:19:1;;;12319:44;11473:15:0;12379:19:1;;;12372:35;11359:8:0;;;:24;;11391:23;;12081:19:1;;11359:130:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:130:0;;;;;;;;-1:-1:-1;;11359:130:0;;;;;;;;;;;;:::i;:::-;;;11355:145;;;;;;;11517:27;;1919:25:1;;;11517:27:0;;1907:2:1;1892:18;11517:27:0;;;;;;;10198:1352;;;;;;;;;;;10153:1397;:::o;9497:465::-;9578:35;9595:6;9603:9;9578:16;:35::i;:::-;9573:65;;9497:465;;:::o;9573:65::-;9697:4;9646:30;8548:18;;;:9;:18;;;;;;9740:19;;9714:45;;9710:247;;-1:-1:-1;9795:19:0;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;9879:71;;;;9905:35;9917:22;9905:11;:35::i;:::-;9761:196;9710:247;9566:396;9497:465;;:::o;12416:521::-;12531:13;;12498:7;;;;12531:13;;;;;:52;;;;-1:-1:-1;;;;;;12549:34:0;;;;;;:26;:34;;;;;;;;12548:35;12531:52;:94;;;;-1:-1:-1;;;;;;12588:37:0;;;;;;:26;:37;;;;;;;;12587:38;12531:94;12514:111;;12636:9;12632:285;;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;12656:254;;-1:-1:-1;;12708:12:0;:22;;;;;;12701:29;;12656:254;12762:17;:15;:17::i;:::-;12759:136;;;12806:2;12799:9;;;;;12759:136;-1:-1:-1;;12856:11:0;:21;;;;;;12849:28;;12759:136;-1:-1:-1;12930:1:0;;12416:521;-1:-1:-1;;;12416:521:0:o;11556:528::-;11722:22;11747;11760:9;11747:10;:22;:::i;:::-;-1:-1:-1;;;;;11802:17:0;;;;;;:9;:17;;;;;:31;;11722:47;;-1:-1:-1;11823:10:0;;11802:17;;;:31;;11823:10;;11802:31;:::i;:::-;;;;-1:-1:-1;;;;;;;11840:20:0;;;;;;:9;:20;;;;;:38;;11864:14;;11840:20;:38;;11864:14;;11840:38;:::i;:::-;;;;-1:-1:-1;;11938:4:0;11920:24;;;;:9;:24;;;;;:37;;11948:9;;11920:24;:37;;11948:9;;11920:37;:::i;:::-;;;;-1:-1:-1;;11995:13:0;;11992:83;;12024:42;;1919:25:1;;;12049:4:0;;-1:-1:-1;;;;;12024:42:0;;;;;1907:2:1;1892:18;12024:42:0;;;;;;;11992:83;11662:422;11556:528;;;;:::o;12945:420::-;13106:16;;;13120:1;13106:16;;;;;;;;13009:7;;13050:21;;13009:7;;13106:16;;;;;;;;;;;;-1:-1:-1;13106:16:0;13082:40;;13147:4;13129;13134:1;13129:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13129:23:0;;;:7;;;;;;;;;;:23;;;;13169:8;;:15;;;-1:-1:-1;;;13169:15:0;;;;:8;;;;;:13;;:15;;;;;13129:7;;13169:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13159:4;13164:1;13159:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13159:25:0;;;:7;;;;;;;;;:25;13191:8;;:113;;-1:-1:-1;;;13191:113:0;;:8;;;:59;;:113;;13251:11;;13191:8;;13267:4;;13281;;13288:15;;13191:113;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:14;13321:21;:38;;;;:::i;:::-;13314:45;12945:420;-1:-1:-1;;;;12945:420:0:o;13587:151::-;13678:4;13699:33;13714:6;13722:9;13699:14;:33::i;:::-;13698:34;;13587:151;-1:-1:-1;;;13587:151:0:o;13371:210::-;13451:4;;-1:-1:-1;;;;;13489:23:0;;13507:4;13489:23;:55;;;;-1:-1:-1;14826:6:0;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;13464:80;13371:210;-1:-1:-1;;;;13371:210:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:160::-;1280:20;;1336:13;;1329:21;1319:32;;1309:60;;1365:1;1362;1355:12;1309:60;1215:160;;;:::o;1380:180::-;1436:6;1489:2;1477:9;1468:7;1464:23;1460:32;1457:52;;;1505:1;1502;1495:12;1457:52;1528:26;1544:9;1528:26;:::i;:::-;1518:36;1380:180;-1:-1:-1;;;1380:180:1:o;1955:456::-;2032:6;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2282:2:1;2267:18;;2254:32;2295:33;2254:32;2295:33;:::i;:::-;1955:456;;2347:7;;-1:-1:-1;;;2401:2:1;2386:18;;;;2373:32;;1955:456::o;3029:247::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3196:9;3183:23;3215:31;3240:5;3215:31;:::i;3281:315::-;3346:6;3354;3407:2;3395:9;3386:7;3382:23;3378:32;3375:52;;;3423:1;3420;3413:12;3375:52;3462:9;3449:23;3481:31;3506:5;3481:31;:::i;:::-;3531:5;-1:-1:-1;3555:35:1;3586:2;3571:18;;3555:35;:::i;:::-;3545:45;;3281:315;;;;;:::o;3601:180::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;3752:23:1;;3601:180;-1:-1:-1;3601:180:1:o;3786:156::-;3852:20;;3912:4;3901:16;;3891:27;;3881:55;;3932:1;3929;3922:12;3947:391;4024:6;4032;4040;4048;4101:3;4089:9;4080:7;4076:23;4072:33;4069:53;;;4118:1;4115;4108:12;4069:53;4141:27;4158:9;4141:27;:::i;:::-;4131:37;;4187:36;4219:2;4208:9;4204:18;4187:36;:::i;:::-;4177:46;;4242:36;4274:2;4263:9;4259:18;4242:36;:::i;:::-;4232:46;;4297:35;4328:2;4317:9;4313:18;4297:35;:::i;:::-;4287:45;;3947:391;;;;;;;:::o;4343:388::-;4411:6;4419;4472:2;4460:9;4451:7;4447:23;4443:32;4440:52;;;4488:1;4485;4478:12;4440:52;4527:9;4514:23;4546:31;4571:5;4546:31;:::i;:::-;4596:5;-1:-1:-1;4653:2:1;4638:18;;4625:32;4666:33;4625:32;4666:33;:::i;:::-;4718:7;4708:17;;;4343:388;;;;;:::o;4736:356::-;4938:2;4920:21;;;4957:18;;;4950:30;5016:34;5011:2;4996:18;;4989:62;5083:2;5068:18;;4736:356::o;5097:127::-;5158:10;5153:3;5149:20;5146:1;5139:31;5189:4;5186:1;5179:15;5213:4;5210:1;5203:15;5229:422;5318:1;5361:5;5318:1;5375:270;5396:7;5386:8;5383:21;5375:270;;;5455:4;5451:1;5447:6;5443:17;5437:4;5434:27;5431:53;;;5464:18;;:::i;:::-;5514:7;5504:8;5500:22;5497:55;;;5534:16;;;;5497:55;5613:22;;;;5573:15;;;;5375:270;;;5379:3;5229:422;;;;;:::o;5656:806::-;5705:5;5735:8;5725:80;;-1:-1:-1;5776:1:1;5790:5;;5725:80;5824:4;5814:76;;-1:-1:-1;5861:1:1;5875:5;;5814:76;5906:4;5924:1;5919:59;;;;5992:1;5987:130;;;;5899:218;;5919:59;5949:1;5940:10;;5963:5;;;5987:130;6024:3;6014:8;6011:17;6008:43;;;6031:18;;:::i;:::-;-1:-1:-1;;6087:1:1;6073:16;;6102:5;;5899:218;;6201:2;6191:8;6188:16;6182:3;6176:4;6173:13;6169:36;6163:2;6153:8;6150:16;6145:2;6139:4;6136:12;6132:35;6129:77;6126:159;;;-1:-1:-1;6238:19:1;;;6270:5;;6126:159;6317:34;6342:8;6336:4;6317:34;:::i;:::-;6387:6;6383:1;6379:6;6375:19;6366:7;6363:32;6360:58;;;6398:18;;:::i;:::-;6436:20;;5656:806;-1:-1:-1;;;5656:806:1:o;6467:140::-;6525:5;6554:47;6595:4;6585:8;6581:19;6575:4;6554:47;:::i;6612:168::-;6685:9;;;6716;;6733:15;;;6727:22;;6713:37;6703:71;;6754:18;;:::i;6785:128::-;6852:9;;;6873:11;;;6870:37;;;6887:18;;:::i;6918:125::-;6983:9;;;7004:10;;;7001:36;;;7017:18;;:::i;7462:251::-;7532:6;7585:2;7573:9;7564:7;7560:23;7556:32;7553:52;;;7601:1;7598;7591:12;7553:52;7633:9;7627:16;7652:31;7677:5;7652:31;:::i;8388:148::-;8476:4;8455:12;;;8469;;;8451:31;;8494:13;;8491:39;;;8510:18;;:::i;10476:400::-;10678:2;10660:21;;;10717:2;10697:18;;;10690:30;10756:34;10751:2;10736:18;;10729:62;-1:-1:-1;;;10822:2:1;10807:18;;10800:34;10866:3;10851:19;;10476:400::o;11584:217::-;11624:1;11650;11640:132;;11694:10;11689:3;11685:20;11682:1;11675:31;11729:4;11726:1;11719:15;11757:4;11754:1;11747:15;11640:132;-1:-1:-1;11786:9:1;;11584:217::o;12418:306::-;12506:6;12514;12522;12575:2;12563:9;12554:7;12550:23;12546:32;12543:52;;;12591:1;12588;12581:12;12543:52;12620:9;12614:16;12604:26;;12670:2;12659:9;12655:18;12649:25;12639:35;;12714:2;12703:9;12699:18;12693:25;12683:35;;12418:306;;;;;:::o;12861:127::-;12922:10;12917:3;12913:20;12910:1;12903:31;12953:4;12950:1;12943:15;12977:4;12974:1;12967:15;12993:980;13255:4;13303:3;13292:9;13288:19;13334:6;13323:9;13316:25;13360:2;13398:6;13393:2;13382:9;13378:18;13371:34;13441:3;13436:2;13425:9;13421:18;13414:31;13465:6;13500;13494:13;13531:6;13523;13516:22;13569:3;13558:9;13554:19;13547:26;;13608:2;13600:6;13596:15;13582:29;;13629:1;13639:195;13653:6;13650:1;13647:13;13639:195;;;13718:13;;-1:-1:-1;;;;;13714:39:1;13702:52;;13809:15;;;;13774:12;;;;13750:1;13668:9;13639:195;;;-1:-1:-1;;;;;;;13890:32:1;;;;13885:2;13870:18;;13863:60;-1:-1:-1;;;13954:3:1;13939:19;13932:35;13851:3;12993:980;-1:-1:-1;;;12993:980:1:o
Swarm Source
ipfs://8d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e237
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)