ERC-20
Source Code
Overview
Max Total Supply
100,000,000 AURK
Holders
1,844
Transfers
-
0
Market
Price
$0.00 @ 0.000001 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
$89,230.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
AURK
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-12-13
*/
// SPDX-License-Identifier: MIT
/*
_____ ____ _____________ ____ __.
/ _ \ | | \______ \ |/ _|
/ /_\ \| | /| _/ <
/ | \ | / | | \ | \
\____|__ /______/ |____|_ /____|__ \
Website: https://aurk.org/
X: https://x.com/aiaurk
Telegram: https://t.me/aurkai
Docs: https://aurk.gitbook.io/aurk-whitepaper
*/
pragma solidity 0.8.20;
interface IERC20 {
event Transfer(
address indexed sender,
address indexed recipient,
uint256 amount
);
event Approval(
address indexed owner,
address indexed spender,
uint256 amount
);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
contract Ownable is Context {
address private _contractOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* Constructor sets the deployer as the initial owner of the contract.
*/
constructor() {
address msgSender = _msgSender();
_contractOwner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _contractOwner;
}
modifier onlyOwner() {
require(
_contractOwner == _msgSender(),
"Ownable: caller is not the owner"
);
_;
}
/**
* Transfers ownership to a new address.
* newOwner cannot be a zero address.
*/
function transferOwnership(address newOwner) public onlyOwner {
_updateOwnership(newOwner);
}
function _updateOwnership(address newOwner) internal {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_contractOwner, newOwner);
_contractOwner = newOwner;
}
/**
* Renounces ownership, making the contract ownerless.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_contractOwner, address(0));
_contractOwner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 tokenAmount,
uint256 minETHAmount,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 tokenDesired,
uint256 tokenMin,
uint256 ethMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 tokenAmount,
uint256 ethAmount,
uint256 liquidity
);
}
contract AURK is Context, IERC20, Ownable {
string private constant _tokenName = "Aurk AI";
string private constant _tokenSymbol = "AURK";
uint8 private constant _tokenDecimals = 18;
uint256 private constant _totalSupply = 100000000 * 10**_tokenDecimals;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => uint256) private _excludedAccounts;
uint256 private constant _minSwapTokens = 10000 * 10**_tokenDecimals; // Min. tokens to swap
uint256 private _maxSwapTokens = 50000 * 10**_tokenDecimals; // Max tokens to swap
uint256 private _lastSwapBlock;
uint256 private _swapCount;
uint256 public maxTxValue = 1500000 * 10**_tokenDecimals; // Max tx value
uint256 public maxWalletHoldings = 1500000 * 10**_tokenDecimals; // Max wallet value
uint256 private _launchBlock;
uint256 buyFeeRate = 30; // Buy fee
uint256 sellFeeRate = 30; // Sell fee
IUniswapV2Router02 private _uniswapV2Router;
address public uniswapV2Pair;
address ProjectWallet; //Primary Fee Wallet
address DevOps;
address EcoWallet;
address BDWallet;
address CreatorWallet;
address UserWallet;
address TeamWallet;
bool private _isTradingActive = false;
//** Begin Constructor
constructor() {
// Define wallet addresses
ProjectWallet = 0x1eA8f412DD2f17BE2048880c18f5Ee5C1d6DcA95;
EcoWallet = 0xFDf7Ad778F7Bdf8F8e1B49F2067dC54523a0abC8;
BDWallet = 0x23545ecDC9EACe9F93BB4006047c00cE047b91fE;
CreatorWallet = 0x921b6bb12a25275A03fEA22e419c82f2b56F9a51;
UserWallet = 0x9Ab15eb4665Ae4bE78BCB04FF09D30d6269838ce;
TeamWallet = 0x4c6ae48AEcC3251e2De83b1098B7b866BF6b6DfB;
DevOps = 0x81A19e3bC368F67cdEE79B48cD78B82c7AAE43AE;
// Calculate token allocations
uint256 dexLiquidityTokens = (_totalSupply * 65) / 100;
uint256 projectTokens = (_totalSupply * 2) / 100;
uint256 ecosystemTokens = (_totalSupply * 10) / 100;
uint256 businessDevTokens = (_totalSupply * 5) / 100;
uint256 creatorTokens = (_totalSupply * 5) / 100;
uint256 userTokens = (_totalSupply * 8) / 100;
uint256 teamTokens = (_totalSupply * 5) / 100;
// Distribute tokens
_balances[address(this)] = dexLiquidityTokens; // DEX Liquidity
_balances[ProjectWallet] = projectTokens; // Project Reserve
_balances[EcoWallet] = ecosystemTokens; // Listings & Ecosystem
_balances[BDWallet] = businessDevTokens; // Partnerships & Business Development
_balances[CreatorWallet] = creatorTokens; // Creator Incentives
_balances[UserWallet] = userTokens; // User Incentives
_balances[TeamWallet] = teamTokens; // Team & Advisors
// Apply exclusions
_excludedAccounts[msg.sender] = 1;
_excludedAccounts[address(this)] = 1;
_excludedAccounts[ProjectWallet] = 1;
_excludedAccounts[EcoWallet] = 1;
_excludedAccounts[BDWallet] = 1;
_excludedAccounts[CreatorWallet] = 1;
_excludedAccounts[UserWallet] = 1;
_excludedAccounts[TeamWallet] = 1;
// Initialize swap-related state variables
_lastSwapBlock = 0;
_swapCount = 0;
// Emit transfer events
emit Transfer(address(0), address(this), dexLiquidityTokens);
emit Transfer(address(0), ProjectWallet, projectTokens);
emit Transfer(address(0), EcoWallet, ecosystemTokens);
emit Transfer(address(0), BDWallet, businessDevTokens);
emit Transfer(address(0), CreatorWallet, creatorTokens);
emit Transfer(address(0), UserWallet, userTokens);
emit Transfer(address(0), TeamWallet, teamTokens);
}
function name() public pure returns (string memory) {
return _tokenName;
}
function symbol() public pure returns (string memory) {
return _tokenSymbol;
}
function decimals() public pure returns (uint8) {
return _tokenDecimals;
}
function totalSupply() public pure override returns (uint256) {
return _totalSupply;
}
//Return fee rate values
function getFeeRates()
external
view
returns (uint256 buyTax, uint256 sellTax)
{
buyTax = buyFeeRate;
sellTax = sellFeeRate;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_executeTransfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_setAllowance(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_executeTransfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
if (currentAllowance != type(uint256).max) {
require(
currentAllowance >= amount,
"ERC20: transfer amount exceeds allowance"
);
unchecked {
_setAllowance(sender, _msgSender(), currentAllowance - amount);
}
}
return true;
}
function _setAllowance(
address owner,
address spender,
uint256 amount
) private {
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);
}
//Enables trading and adds liquidity at once
function startTrading() external onlyOwner {
require(!_isTradingActive, "Trading is already enabled");
_uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
_setAllowance(address(this), address(_uniswapV2Router), _totalSupply);
_uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp
);
IERC20(uniswapV2Pair).approve(
address(_uniswapV2Router),
type(uint256).max
);
_isTradingActive = true;
_launchBlock = block.number;
}
//Include or Exclude from fees
function setExcludedAccount(address account, uint256 value)
external
onlyOwner
{
_excludedAccounts[account] = value;
}
//Remove limits when stable
function disableLimits() external onlyOwner {
maxTxValue = _totalSupply;
maxWalletHoldings = _totalSupply;
}
// Adjust tax rates
function adjustTaxRates(uint256 newBuyTaxRate, uint256 newSellTaxRate)
external
onlyOwner
{
require(newBuyTaxRate <= 100, "Buy tax rate cannot exceed 100%");
require(newSellTaxRate <= 100, "Sell tax rate cannot exceed 100%");
buyFeeRate = newBuyTaxRate;
sellFeeRate = newSellTaxRate;
}
// Handles transfer and applies tax
function _executeTokenTransfer(
address from,
address to,
uint256 amount,
uint256 taxRate
) private {
uint256 taxAmount = (amount * taxRate) / 100;
uint256 transferAmount = amount - taxAmount;
_balances[from] -= amount;
_balances[to] += transferAmount;
_balances[address(this)] += taxAmount;
emit Transfer(from, to, transferAmount);
}
//Transfer function
function _executeTransfer(
address from,
address to,
uint256 amount
) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(amount > 0, "ERC20: transfer amount must be greater than zero");
uint256 taxRate = 0;
if (_excludedAccounts[from] == 0 && _excludedAccounts[to] == 0) {
require(_isTradingActive, "Trading is not enabled yet");
require(
amount <= maxTxValue,
"Transaction amount exceeds the maximum limit"
);
if (to != uniswapV2Pair && to != address(0xdead)) {
require(
balanceOf(to) + amount <= maxWalletHoldings,
"Recipient wallet exceeds the maximum limit"
);
}
if (block.number < _launchBlock + 3) {
taxRate = (from == uniswapV2Pair) ? 30 : 30;
} else {
if (from == uniswapV2Pair) {
taxRate = buyFeeRate;
} else if (to == uniswapV2Pair) {
uint256 contractTokenBalance = balanceOf(address(this));
if (contractTokenBalance > _minSwapTokens) {
uint256 swapAmount = _maxSwapTokens;
if (contractTokenBalance > amount)
contractTokenBalance = amount;
if (contractTokenBalance > swapAmount)
contractTokenBalance = swapAmount;
_exchangeTokensForEth(contractTokenBalance);
}
taxRate = sellFeeRate;
}
}
}
_executeTokenTransfer(from, to, amount, taxRate);
}
//Recovers stuck ETH
function withdrawEth() external onlyOwner {
(bool success, ) = owner().call{value: address(this).balance}("");
require(success, "Rescue ETH failed");
}
//Recovers stuck tokens
function recoverTokens() external onlyOwner {
uint256 contractTokenBalance = balanceOf(address(this));
require(contractTokenBalance > 0, "No tokens to rescue");
_executeTokenTransfer(address(this), owner(), contractTokenBalance, 0);
}
//Force swapback
function executeManualSwap(uint256 percent) external onlyOwner {
uint256 contractTokenBalance = balanceOf(address(this));
uint256 swapAmount = (percent * contractTokenBalance) / 100;
_exchangeTokensForEth(swapAmount);
}
//Swapback logic
function _exchangeTokensForEth(uint256 tokenAmount) private {
// Check if it's the current block
if (block.number == _lastSwapBlock) {
// Allow a maximum of 2 swaps in the same block
require(_swapCount < 2, "Maximum swaps per block reached");
_swapCount++;
} else {
// Reset for a new block
_lastSwapBlock = block.number;
_swapCount = 1;
}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _uniswapV2Router.WETH();
_setAllowance(address(this), address(_uniswapV2Router), tokenAmount);
_uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
uint256 contractEthBalance = address(this).balance;
// Calculate balances
uint256 devOpsShare = (contractEthBalance * 10) / 100;
uint256 projectShare = (contractEthBalance * 90) / 100;
// Transfer to DevOps wallet
(bool successDevOps, ) = DevOps.call{value: devOpsShare}("");
require(successDevOps, "Transfer to DevOps failed");
// Transfer to ProjectWallet
(bool successProject, ) = ProjectWallet.call{value: projectShare}("");
require(successProject, "Transfer to ProjectWallet failed");
}
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":"amount","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":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyTaxRate","type":"uint256"},{"internalType":"uint256","name":"newSellTaxRate","type":"uint256"}],"name":"adjustTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"executeManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeeRates","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setExcludedAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052620000126012600a6200068d565b620000209061c350620006a4565b600455620000316012600a6200068d565b62000040906216e360620006a4565b600755620000516012600a6200068d565b62000060906216e360620006a4565b600855601e600a819055600b556014805460ff60a01b1916905534801562000086575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b0319908116731ea8f412dd2f17be2048880c18f5ee5c1d6dca951790915560108054821673fdf7ad778f7bdf8f8e1b49f2067dc54523a0abc81790556011805482167323545ecdc9eace9f93bb4006047c00ce047b91fe17905560128054821673921b6bb12a25275a03fea22e419c82f2b56f9a51178155601380548316739ab15eb4665ae4be78bcb04ff09d30d6269838ce179055601480548316734c6ae48aecc3251e2de83b1098b7b866bf6b6dfb179055600f80549092167381a19e3bc368f67cdee79b48cd78b82c7aae43ae179091555f90606490620001b890600a6200068d565b620001c8906305f5e100620006a4565b620001d5906041620006a4565b620001e19190620006be565b90505f6064620001f46012600a6200068d565b62000204906305f5e100620006a4565b62000211906002620006a4565b6200021d9190620006be565b90505f6064620002306012600a6200068d565b62000240906305f5e100620006a4565b6200024d90600a620006a4565b620002599190620006be565b90505f60646200026c6012600a6200068d565b6200027c906305f5e100620006a4565b62000289906005620006a4565b620002959190620006be565b90505f6064620002a86012600a6200068d565b620002b8906305f5e100620006a4565b620002c5906005620006a4565b620002d19190620006be565b90505f6064620002e46012600a6200068d565b620002f4906305f5e100620006a4565b62000301906008620006a4565b6200030d9190620006be565b90505f6064620003206012600a6200068d565b62000330906305f5e100620006a4565b6200033d906005620006a4565b620003499190620006be565b305f8181526001602081815260408084208d9055600e80546001600160a01b0390811686528286208e905560108054821687528387208e905560118054831688528488208e905560128054841689528589208e90556013805485168a52868a208e90556014805486168b52878b208d9055338b5260038952878b208a90558b8b52878b208a9055955485168a52868a20899055925484168952858920889055905483168852848820879055548216875283872086905554811686528286208590559054168452808420929092556005839055600683905590518b8152939450919290915f805160206200216a833981519152910160405180910390a3600e546040518781526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36010546040518681526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36011546040518581526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36012546040518481526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36013546040518381526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36014546040518281526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a350505050505050620006de565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d257815f1904821115620005b657620005b66200057e565b80851615620005c457918102915b93841c939080029062000597565b509250929050565b5f82620005ea5750600162000687565b81620005f857505f62000687565b81600181146200061157600281146200061c576200063c565b600191505062000687565b60ff8411156200063057620006306200057e565b50506001821b62000687565b5060208310610133831016604e8410600b841016171562000661575081810a62000687565b6200066d838362000592565b805f19048211156200068357620006836200057e565b0290505b92915050565b5f6200069d60ff841683620005da565b9392505050565b80820281158282048414176200068757620006876200057e565b5f82620006d957634e487b7160e01b5f52601260045260245ffd5b500490565b611a7e80620006ec5f395ff3fe60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063b7ea78b51161006d578063b7ea78b514610397578063d6e7a55e146103ac578063dd62ed3e146103d3578063e8eecf4c14610417578063f2fde38b1461042c578063f928364c1461044b575f80fd5b80638da5cb5b146102e957806395d89b4114610305578063a0ef91df14610331578063a9059cbb14610345578063aabc60d614610364578063b77f39fe14610383575f80fd5b8063301c3d5c11610104578063301c3d5c14610211578063313ce56714610230578063477ce99b1461024b57806349bd5a5e1461026a57806370a08231146102a1578063715018a6146102d5575f80fd5b806306fdde031461014a578063095ea7b31461018b57806318160ddd146101ba57806323b872dd146101dc578063293230b8146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260078152664175726b20414960c81b60208201525b604051610182919061165e565b60405180910390f35b348015610196575f80fd5b506101aa6101a53660046116bd565b61045f565b6040519015158152602001610182565b3480156101c5575f80fd5b506101ce610475565b604051908152602001610182565b3480156101e7575f80fd5b506101aa6101f63660046116e7565b610495565b348015610206575f80fd5b5061020f61054a565b005b34801561021c575f80fd5b5061020f61022b3660046116bd565b6108eb565b34801561023b575f80fd5b5060405160128152602001610182565b348015610256575f80fd5b5061020f610265366004611725565b61092f565b348015610275575f80fd5b50600d54610289906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156102ac575f80fd5b506101ce6102bb36600461173c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b5061020f61098e565b3480156102f4575f80fd5b505f546001600160a01b0316610289565b348015610310575f80fd5b506040805180820190915260048152634155524b60e01b6020820152610175565b34801561033c575f80fd5b5061020f6109ff565b348015610350575f80fd5b506101aa61035f3660046116bd565b610abf565b34801561036f575f80fd5b5061020f61037e36600461175e565b610acb565b34801561038e575f80fd5b5061020f610ba1565b3480156103a2575f80fd5b506101ce60085481565b3480156103b7575f80fd5b50600a54600b5460408051928352602083019190915201610182565b3480156103de575f80fd5b506101ce6103ed36600461177e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101ce60075481565b348015610437575f80fd5b5061020f61044636600461173c565b610c38565b348015610456575f80fd5b5061020f610c6a565b5f61046b338484610ccf565b5060015b92915050565b5f6104826012600a6118a9565b610490906305f5e1006118b7565b905090565b5f6104a1848484610df2565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053f57828110156105325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053f8533858403610ccf565b506001949350505050565b5f546001600160a01b031633146105735760405162461bcd60e51b8152600401610529906118ce565b601454600160a01b900460ff16156105cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610529565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561062f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106539190611903565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d69190611903565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611903565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610789913091166107766012600a6118a9565b610784906305f5e1006118b7565b610ccf565b600c546001600160a01b031663f305d71947306107ba816001600160a01b03165f9081526001602052604090205490565b5f806107cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610833573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610858919061191e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190611949565b506014805460ff60a01b1916600160a01b17905543600955565b5f546001600160a01b031633146109145760405162461bcd60e51b8152600401610529906118ce565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b031633146109585760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604081205490606461097483856118b7565b61097e9190611968565b905061098981611157565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a285760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610a72576040519150601f19603f3d011682016040523d82523d5f602084013e610a77565b606091505b5050905080610abc5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610529565b50565b5f61046b338484610df2565b5f546001600160a01b03163314610af45760405162461bcd60e51b8152600401610529906118ce565b6064821115610b455760405162461bcd60e51b815260206004820152601f60248201527f4275792074617820726174652063616e6e6f74206578636565642031303025006044820152606401610529565b6064811115610b965760405162461bcd60e51b815260206004820181905260248201527f53656c6c2074617820726174652063616e6e6f742065786365656420313030256044820152606401610529565b600a91909155600b55565b5f546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604090205480610c1c5760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610529565b610abc30610c315f546001600160a01b031690565b835f6114a5565b5f546001600160a01b03163314610c615760405162461bcd60e51b8152600401610529906118ce565b610abc816115a0565b5f546001600160a01b03163314610c935760405162461bcd60e51b8152600401610529906118ce565b610c9f6012600a6118a9565b610cad906305f5e1006118b7565b600755610cbc6012600a6118a9565b610cca906305f5e1006118b7565b600855565b6001600160a01b038316610d315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610529565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610529565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610529565b5f8111610ebe5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610529565b6001600160a01b0383165f90815260036020526040812054158015610ef857506001600160a01b0383165f90815260036020526040902054155b1561114557601454600160a01b900460ff16610f565760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610529565b600754821115610fbd5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610529565b600d546001600160a01b03848116911614801590610fe657506001600160a01b03831661dead14155b15611078576008548261100d856001600160a01b03165f9081526001602052604090205490565b6110179190611987565b11156110785760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610529565b600954611086906003611987565b4310156110b657600d546001600160a01b038581169116146110a957601e6110ac565b601e5b60ff169050611145565b600d546001600160a01b03908116908516036110d55750600a54611145565b600d546001600160a01b039081169084160361114557305f908152600160205260409020546111066012600a6118a9565b611112906127106118b7565b81111561113f5760045483821115611128578391505b80821115611134578091505b61113d82611157565b505b5050600b545b611151848484846114a5565b50505050565b60055443036111cb576002600654106111b25760405162461bcd60e51b815260206004820152601f60248201527f4d6178696d756d2073776170732070657220626c6f636b2072656163686564006044820152606401610529565b60068054905f6111c18361199a565b91905055506111d5565b4360055560016006555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611208576112086119b2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190611903565b81600181518110611296576112966119b2565b6001600160a01b039283166020918202929092010152600c546112bc9130911684610ccf565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f49085905f908690309042906004016119c6565b5f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b504792505f91506064905061133383600a6118b7565b61133d9190611968565b90505f606461134d84605a6118b7565b6113579190611968565b600f546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113a6576040519150601f19603f3d011682016040523d82523d5f602084013e6113ab565b606091505b50509050806113fc5760405162461bcd60e51b815260206004820152601960248201527f5472616e7366657220746f204465764f7073206661696c6564000000000000006044820152606401610529565b600e546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611446576040519150601f19603f3d011682016040523d82523d5f602084013e61144b565b606091505b505090508061149c5760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657220746f2050726f6a65637457616c6c6574206661696c65646044820152606401610529565b50505050505050565b5f60646114b283856118b7565b6114bc9190611968565b90505f6114c98285611a35565b6001600160a01b0387165f908152600160205260408120805492935086929091906114f5908490611a35565b90915550506001600160a01b0385165f9081526001602052604081208054839290611521908490611987565b9091555050305f9081526001602052604081208054849290611544908490611987565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159091815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610529565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116895785810183015185820160400152820161166d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610abc575f80fd5b5f80604083850312156116ce575f80fd5b82356116d9816116a9565b946020939093013593505050565b5f805f606084860312156116f9575f80fd5b8335611704816116a9565b92506020840135611714816116a9565b929592945050506040919091013590565b5f60208284031215611735575f80fd5b5035919050565b5f6020828403121561174c575f80fd5b8135611757816116a9565b9392505050565b5f806040838503121561176f575f80fd5b50508035926020909101359150565b5f806040838503121561178f575f80fd5b823561179a816116a9565b915060208301356117aa816116a9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180357815f19048211156117e9576117e96117b5565b808516156117f657918102915b93841c93908002906117ce565b509250929050565b5f826118195750600161046f565b8161182557505f61046f565b816001811461183b576002811461184557611861565b600191505061046f565b60ff841115611856576118566117b5565b50506001821b61046f565b5060208310610133831016604e8410600b8410161715611884575081810a61046f565b61188e83836117c9565b805f19048211156118a1576118a16117b5565b029392505050565b5f61175760ff84168361180b565b808202811582820484141761046f5761046f6117b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611913575f80fd5b8151611757816116a9565b5f805f60608486031215611930575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611959575f80fd5b81518015158114611757575f80fd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046f5761046f6117b5565b5f600182016119ab576119ab6117b5565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a145784516001600160a01b0316835293830193918301916001016119ef565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046f5761046f6117b556fea26469706673582212208dbbb6f6aeccb38be53e5c89c46fde4f80b97b6a514e154b8d91822b75898a0d64736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063b7ea78b51161006d578063b7ea78b514610397578063d6e7a55e146103ac578063dd62ed3e146103d3578063e8eecf4c14610417578063f2fde38b1461042c578063f928364c1461044b575f80fd5b80638da5cb5b146102e957806395d89b4114610305578063a0ef91df14610331578063a9059cbb14610345578063aabc60d614610364578063b77f39fe14610383575f80fd5b8063301c3d5c11610104578063301c3d5c14610211578063313ce56714610230578063477ce99b1461024b57806349bd5a5e1461026a57806370a08231146102a1578063715018a6146102d5575f80fd5b806306fdde031461014a578063095ea7b31461018b57806318160ddd146101ba57806323b872dd146101dc578063293230b8146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260078152664175726b20414960c81b60208201525b604051610182919061165e565b60405180910390f35b348015610196575f80fd5b506101aa6101a53660046116bd565b61045f565b6040519015158152602001610182565b3480156101c5575f80fd5b506101ce610475565b604051908152602001610182565b3480156101e7575f80fd5b506101aa6101f63660046116e7565b610495565b348015610206575f80fd5b5061020f61054a565b005b34801561021c575f80fd5b5061020f61022b3660046116bd565b6108eb565b34801561023b575f80fd5b5060405160128152602001610182565b348015610256575f80fd5b5061020f610265366004611725565b61092f565b348015610275575f80fd5b50600d54610289906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156102ac575f80fd5b506101ce6102bb36600461173c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b5061020f61098e565b3480156102f4575f80fd5b505f546001600160a01b0316610289565b348015610310575f80fd5b506040805180820190915260048152634155524b60e01b6020820152610175565b34801561033c575f80fd5b5061020f6109ff565b348015610350575f80fd5b506101aa61035f3660046116bd565b610abf565b34801561036f575f80fd5b5061020f61037e36600461175e565b610acb565b34801561038e575f80fd5b5061020f610ba1565b3480156103a2575f80fd5b506101ce60085481565b3480156103b7575f80fd5b50600a54600b5460408051928352602083019190915201610182565b3480156103de575f80fd5b506101ce6103ed36600461177e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101ce60075481565b348015610437575f80fd5b5061020f61044636600461173c565b610c38565b348015610456575f80fd5b5061020f610c6a565b5f61046b338484610ccf565b5060015b92915050565b5f6104826012600a6118a9565b610490906305f5e1006118b7565b905090565b5f6104a1848484610df2565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053f57828110156105325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053f8533858403610ccf565b506001949350505050565b5f546001600160a01b031633146105735760405162461bcd60e51b8152600401610529906118ce565b601454600160a01b900460ff16156105cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610529565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561062f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106539190611903565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d69190611903565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611903565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610789913091166107766012600a6118a9565b610784906305f5e1006118b7565b610ccf565b600c546001600160a01b031663f305d71947306107ba816001600160a01b03165f9081526001602052604090205490565b5f806107cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610833573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610858919061191e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190611949565b506014805460ff60a01b1916600160a01b17905543600955565b5f546001600160a01b031633146109145760405162461bcd60e51b8152600401610529906118ce565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b031633146109585760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604081205490606461097483856118b7565b61097e9190611968565b905061098981611157565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a285760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610a72576040519150601f19603f3d011682016040523d82523d5f602084013e610a77565b606091505b5050905080610abc5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610529565b50565b5f61046b338484610df2565b5f546001600160a01b03163314610af45760405162461bcd60e51b8152600401610529906118ce565b6064821115610b455760405162461bcd60e51b815260206004820152601f60248201527f4275792074617820726174652063616e6e6f74206578636565642031303025006044820152606401610529565b6064811115610b965760405162461bcd60e51b815260206004820181905260248201527f53656c6c2074617820726174652063616e6e6f742065786365656420313030256044820152606401610529565b600a91909155600b55565b5f546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604090205480610c1c5760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610529565b610abc30610c315f546001600160a01b031690565b835f6114a5565b5f546001600160a01b03163314610c615760405162461bcd60e51b8152600401610529906118ce565b610abc816115a0565b5f546001600160a01b03163314610c935760405162461bcd60e51b8152600401610529906118ce565b610c9f6012600a6118a9565b610cad906305f5e1006118b7565b600755610cbc6012600a6118a9565b610cca906305f5e1006118b7565b600855565b6001600160a01b038316610d315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610529565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610529565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610529565b5f8111610ebe5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610529565b6001600160a01b0383165f90815260036020526040812054158015610ef857506001600160a01b0383165f90815260036020526040902054155b1561114557601454600160a01b900460ff16610f565760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610529565b600754821115610fbd5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610529565b600d546001600160a01b03848116911614801590610fe657506001600160a01b03831661dead14155b15611078576008548261100d856001600160a01b03165f9081526001602052604090205490565b6110179190611987565b11156110785760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610529565b600954611086906003611987565b4310156110b657600d546001600160a01b038581169116146110a957601e6110ac565b601e5b60ff169050611145565b600d546001600160a01b03908116908516036110d55750600a54611145565b600d546001600160a01b039081169084160361114557305f908152600160205260409020546111066012600a6118a9565b611112906127106118b7565b81111561113f5760045483821115611128578391505b80821115611134578091505b61113d82611157565b505b5050600b545b611151848484846114a5565b50505050565b60055443036111cb576002600654106111b25760405162461bcd60e51b815260206004820152601f60248201527f4d6178696d756d2073776170732070657220626c6f636b2072656163686564006044820152606401610529565b60068054905f6111c18361199a565b91905055506111d5565b4360055560016006555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611208576112086119b2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190611903565b81600181518110611296576112966119b2565b6001600160a01b039283166020918202929092010152600c546112bc9130911684610ccf565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f49085905f908690309042906004016119c6565b5f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b504792505f91506064905061133383600a6118b7565b61133d9190611968565b90505f606461134d84605a6118b7565b6113579190611968565b600f546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113a6576040519150601f19603f3d011682016040523d82523d5f602084013e6113ab565b606091505b50509050806113fc5760405162461bcd60e51b815260206004820152601960248201527f5472616e7366657220746f204465764f7073206661696c6564000000000000006044820152606401610529565b600e546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611446576040519150601f19603f3d011682016040523d82523d5f602084013e61144b565b606091505b505090508061149c5760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657220746f2050726f6a65637457616c6c6574206661696c65646044820152606401610529565b50505050505050565b5f60646114b283856118b7565b6114bc9190611968565b90505f6114c98285611a35565b6001600160a01b0387165f908152600160205260408120805492935086929091906114f5908490611a35565b90915550506001600160a01b0385165f9081526001602052604081208054839290611521908490611987565b9091555050305f9081526001602052604081208054849290611544908490611987565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159091815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610529565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116895785810183015185820160400152820161166d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610abc575f80fd5b5f80604083850312156116ce575f80fd5b82356116d9816116a9565b946020939093013593505050565b5f805f606084860312156116f9575f80fd5b8335611704816116a9565b92506020840135611714816116a9565b929592945050506040919091013590565b5f60208284031215611735575f80fd5b5035919050565b5f6020828403121561174c575f80fd5b8135611757816116a9565b9392505050565b5f806040838503121561176f575f80fd5b50508035926020909101359150565b5f806040838503121561178f575f80fd5b823561179a816116a9565b915060208301356117aa816116a9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180357815f19048211156117e9576117e96117b5565b808516156117f657918102915b93841c93908002906117ce565b509250929050565b5f826118195750600161046f565b8161182557505f61046f565b816001811461183b576002811461184557611861565b600191505061046f565b60ff841115611856576118566117b5565b50506001821b61046f565b5060208310610133831016604e8410600b8410161715611884575081810a61046f565b61188e83836117c9565b805f19048211156118a1576118a16117b5565b029392505050565b5f61175760ff84168361180b565b808202811582820484141761046f5761046f6117b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611913575f80fd5b8151611757816116a9565b5f805f60608486031215611930575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611959575f80fd5b81518015158114611757575f80fd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046f5761046f6117b5565b5f600182016119ab576119ab6117b5565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a145784516001600160a01b0316835293830193918301916001016119ef565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046f5761046f6117b556fea26469706673582212208dbbb6f6aeccb38be53e5c89c46fde4f80b97b6a514e154b8d91822b75898a0d64736f6c63430008140033
Deployed Bytecode Sourcemap
3767:12644:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7658:88;;;;;;;;;;-1:-1:-1;7728:10:0;;;;;;;;;;;;-1:-1:-1;;;7728:10:0;;;;7658:88;;;;;;;:::i;:::-;;;;;;;;8810:198;;;;;;;;;;-1:-1:-1;8810:198:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8810:198:0;1023:187:1;7950:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7950:100:0;1215:177:1;9016:624:0;;;;;;;;;;-1:-1:-1;9016:624:0;;;;;:::i;:::-;;:::i;10080:887::-;;;;;;;;;;;;;:::i;:::-;;11011:155;;;;;;;;;;-1:-1:-1;11011:155:0;;;;;:::i;:::-;;:::i;7854:88::-;;;;;;;;;;-1:-1:-1;7854:88:0;;3961:2;2000:36:1;;1988:2;1973:18;7854:88:0;1858:184:1;14619:251:0;;;;;;;;;;-1:-1:-1;14619:251:0;;;;;:::i;:::-;;:::i;4837:28::-;;;;;;;;;;-1:-1:-1;4837:28:0;;;;-1:-1:-1;;;;;4837:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;4837:28:0;2232:203:1;8277:119:0;;;;;;;;;;-1:-1:-1;8277:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;2718:164;;;;;;;;;;;;;:::i;1863:87::-;;;;;;;;;;-1:-1:-1;1901:7:0;1928:14;-1:-1:-1;;;;;1928:14:0;1863:87;;7754:92;;;;;;;;;;-1:-1:-1;7826:12:0;;;;;;;;;;;;-1:-1:-1;;;7826:12:0;;;;7754:92;;14110:174;;;;;;;;;;;;;:::i;8404:206::-;;;;;;;;;;-1:-1:-1;8404:206:0;;;;;:::i;:::-;;:::i;11371:351::-;;;;;;;;;;-1:-1:-1;11371:351:0;;;;;:::i;:::-;;:::i;14321:268::-;;;;;;;;;;;;;:::i;4574:63::-;;;;;;;;;;;;;;;;8088:181;;;;;;;;;;-1:-1:-1;8219:10:0;;8250:11;;8088:181;;;3119:25:1;;;3175:2;3160:18;;3153:34;;;;3092:18;8088:181:0;2945:248:1;8618:184:0;;;;;;;;;;-1:-1:-1;8618:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8767:18:0;;;8735:7;8767:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8618:184;4495:56;;;;;;;;;;;;;;;;2237:107;;;;;;;;;;-1:-1:-1;2237:107:0;;;;;:::i;:::-;;:::i;11207:131::-;;;;;;;;;;;;;:::i;8810:198::-;8912:4;8934:44;1386:10;8962:7;8971:6;8934:13;:44::i;:::-;-1:-1:-1;8996:4:0;8810:198;;;;;:::o;7950:100::-;8003:7;4022:18;3961:2;4022;:18;:::i;:::-;4010:30;;:9;:30;:::i;:::-;8023:19;;7950:100;:::o;9016:624::-;9148:4;9165:43;9182:6;9190:9;9201:6;9165:16;:43::i;:::-;-1:-1:-1;;;;;9248:19:0;;9221:24;9248:19;;;:11;:19;;;;;;;;1386:10;9248:33;;;;;;;;-1:-1:-1;;9296:37:0;;9292:319;;9396:6;9376:16;:26;;9350:128;;;;-1:-1:-1;;;9350:128:0;;5481:2:1;9350:128:0;;;5463:21:1;5520:2;5500:18;;;5493:30;5559:34;5539:18;;;5532:62;-1:-1:-1;;;5610:18:1;;;5603:38;5658:19;;9350:128:0;;;;;;;;;9522:62;9536:6;1386:10;9577:6;9558:16;:25;9522:13;:62::i;:::-;-1:-1:-1;9628:4:0;;9016:624;-1:-1:-1;;;;9016:624:0:o;10080:887::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;10143:16:::1;::::0;-1:-1:-1;;;10143:16:0;::::1;;;10142:17;10134:56;;;::::0;-1:-1:-1;;;10134:56:0;;6251:2:1;10134:56:0::1;::::0;::::1;6233:21:1::0;6290:2;6270:18;;;6263:30;6329:28;6309:18;;;6302:56;6375:18;;10134:56:0::1;6049:350:1::0;10134:56:0::1;10201:16;:105:::0;;-1:-1:-1;;;;;;10201:105:0::1;10253:42;10201:105:::0;;::::1;::::0;;;10353:26:::1;::::0;;-1:-1:-1;;;10353:26:0;;;;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;10253:42;10353:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10335:70:0::1;;10414:4;10421:16;;;;;;;;;-1:-1:-1::0;;;;;10421:16:0::1;-1:-1:-1::0;;;;;10421:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10335:110;::::0;-1:-1:-1;;;;;;10335:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6890:15:1;;;10335:110:0::1;::::0;::::1;6872:34:1::0;6942:15;;6922:18;;;6915:43;6807:18;;10335:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10319:13;:126:::0;;-1:-1:-1;;;;;;10319:126:0::1;-1:-1:-1::0;;;;;10319:126:0;;::::1;;::::0;;10493:16:::1;::::0;10456:69:::1;::::0;10478:4:::1;::::0;10493:16:::1;4022:18;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;10456:13;:69::i;:::-;10538:16;::::0;-1:-1:-1;;;;;10538:16:0::1;:32;10578:21;10623:4;10643:24;10623:4:::0;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;10643:24:::1;10682:1;10698::::0;10714:7:::1;1901::::0;1928:14;-1:-1:-1;;;;;1928:14:0;;1863:87;10714:7:::1;10538:224;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10538:224:0;;;-1:-1:-1;;;;;7328:15:1;;;10538:224:0::1;::::0;::::1;7310:34:1::0;7360:18;;;7353:34;;;;7403:18;;;7396:34;;;;7446:18;;;7439:34;7510:15;;;7489:19;;;7482:44;10736:15:0::1;7542:19:1::0;;;7535:35;7244:19;;10538:224:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10782:13:0::1;::::0;10827:16:::1;::::0;10775:112:::1;::::0;-1:-1:-1;;;10775:112:0;;-1:-1:-1;;;;;10827:16:0;;::::1;10775:112;::::0;::::1;8066:51:1::0;-1:-1:-1;;8133:18:1;;;8126:34;10782:13:0;::::1;::::0;-1:-1:-1;10775:29:0::1;::::0;8039:18:1;;10775:112:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10898:16:0::1;:23:::0;;-1:-1:-1;;;;10898:23:0::1;-1:-1:-1::0;;;10898:23:0::1;::::0;;10947:12:::1;10932;:27:::0;10080:887::o;11011:155::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11124:26:0;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;11011:155::o;14619:251::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14742:4:::1;14693:28;8370:18:::0;;;:9;:18;;;;;;;14815:3:::1;14781:30;8370:18:::0;14781:7;:30:::1;:::i;:::-;14780:38;;;;:::i;:::-;14759:59;;14829:33;14851:10;14829:21;:33::i;:::-;14682:188;;14619:251:::0;:::o;2718:164::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;2833:1:::1;2809:14:::0;;2788:48:::1;::::0;-1:-1:-1;;;;;2809:14:0;;::::1;::::0;2788:48:::1;::::0;2833:1;;2788:48:::1;2872:1;2847:27:::0;;-1:-1:-1;;;;;;2847:27:0::1;::::0;;2718:164::o;14110:174::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14164:12:::1;1928:14:::0;;14182:46:::1;::::0;-1:-1:-1;;;;;1928:14:0;;;;14202:21:::1;::::0;14164:12;14182:46;14164:12;14182:46;14202:21;1928:14;14182:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14163:65;;;14247:7;14239:37;;;::::0;-1:-1:-1;;;14239:37:0;;9087:2:1;14239:37:0::1;::::0;::::1;9069:21:1::0;9126:2;9106:18;;;9099:30;-1:-1:-1;;;9145:18:1;;;9138:47;9202:18;;14239:37:0::1;8885:341:1::0;14239:37:0::1;14152:132;14110:174::o:0;8404:206::-;8509:4;8531:49;1386:10;8562:9;8573:6;8531:16;:49::i;11371:351::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;11520:3:::1;11503:13;:20;;11495:64;;;::::0;-1:-1:-1;;;11495:64:0;;9433:2:1;11495:64:0::1;::::0;::::1;9415:21:1::0;9472:2;9452:18;;;9445:30;9511:33;9491:18;;;9484:61;9562:18;;11495:64:0::1;9231:355:1::0;11495:64:0::1;11596:3;11578:14;:21;;11570:66;;;::::0;-1:-1:-1;;;11570:66:0;;9793:2:1;11570:66:0::1;::::0;::::1;9775:21:1::0;;;9812:18;;;9805:30;9871:34;9851:18;;;9844:62;9923:18;;11570:66:0::1;9591:356:1::0;11570:66:0::1;11649:10;:26:::0;;;;11686:11:::1;:28:::0;11371:351::o;14321:268::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14425:4:::1;14376:28;8370:18:::0;;;:9;:18;;;;;;14450:24;14442:56:::1;;;::::0;-1:-1:-1;;;14442:56:0;;10154:2:1;14442:56:0::1;::::0;::::1;10136:21:1::0;10193:2;10173:18;;;10166:30;-1:-1:-1;;;10212:18:1;;;10205:49;10271:18;;14442:56:0::1;9952:343:1::0;14442:56:0::1;14511:70;14541:4;14548:7;1901::::0;1928:14;-1:-1:-1;;;;;1928:14:0;;1863:87;14548:7:::1;14557:20;14579:1;14511:21;:70::i;2237:107::-:0;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;2310:26:::1;2327:8;2310:16;:26::i;11207:131::-:0;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;4022:18:::1;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;11262:10;:25:::0;4022:18:::1;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;11298:17;:32:::0;11207:131::o;9648:374::-;-1:-1:-1;;;;;9780:19:0;;9772:68;;;;-1:-1:-1;;;9772:68:0;;10502:2:1;9772:68:0;;;10484:21:1;10541:2;10521:18;;;10514:30;10580:34;10560:18;;;10553:62;-1:-1:-1;;;10631:18:1;;;10624:34;10675:19;;9772:68:0;10300:400:1;9772:68:0;-1:-1:-1;;;;;9859:21:0;;9851:68;;;;-1:-1:-1;;;9851:68:0;;10907:2:1;9851:68:0;;;10889:21:1;10946:2;10926:18;;;10919:30;10985:34;10965:18;;;10958:62;-1:-1:-1;;;11036:18:1;;;11029:32;11078:19;;9851:68:0;10705:398:1;9851:68:0;-1:-1:-1;;;;;9930:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9982:32;;1361:25:1;;;9982:32:0;;1334:18:1;9982:32:0;;;;;;;9648:374;;;:::o;12244:1832::-;-1:-1:-1;;;;;12373:18:0;;12365:68;;;;-1:-1:-1;;;12365:68:0;;11310:2:1;12365:68:0;;;11292:21:1;11349:2;11329:18;;;11322:30;11388:34;11368:18;;;11361:62;-1:-1:-1;;;11439:18:1;;;11432:35;11484:19;;12365:68:0;11108:401:1;12365:68:0;12461:1;12452:6;:10;12444:71;;;;-1:-1:-1;;;12444:71:0;;11716:2:1;12444:71:0;;;11698:21:1;11755:2;11735:18;;;11728:30;11794:34;11774:18;;;11767:62;-1:-1:-1;;;11845:18:1;;;11838:46;11901:19;;12444:71:0;11514:412:1;12444:71:0;-1:-1:-1;;;;;12564:23:0;;12528:15;12564:23;;;:17;:23;;;;;;:28;:58;;;;-1:-1:-1;;;;;;12596:21:0;;;;;;:17;:21;;;;;;:26;12564:58;12560:1450;;;12647:16;;-1:-1:-1;;;12647:16:0;;;;12639:55;;;;-1:-1:-1;;;12639:55:0;;12133:2:1;12639:55:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:28;12191:18;;;12184:56;12257:18;;12639:55:0;11931:350:1;12639:55:0;12745:10;;12735:6;:20;;12709:126;;;;-1:-1:-1;;;12709:126:0;;12488:2:1;12709:126:0;;;12470:21:1;12527:2;12507:18;;;12500:30;12566:34;12546:18;;;12539:62;-1:-1:-1;;;12617:18:1;;;12610:42;12669:19;;12709:126:0;12286:408:1;12709:126:0;12862:13;;-1:-1:-1;;;;;12856:19:0;;;12862:13;;12856:19;;;;:44;;-1:-1:-1;;;;;;12879:21:0;;12893:6;12879:21;;12856:44;12852:244;;;12977:17;;12967:6;12951:13;12961:2;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;12951:13;:22;;;;:::i;:::-;:43;;12921:159;;;;-1:-1:-1;;;12921:159:0;;13031:2:1;12921:159:0;;;13013:21:1;13070:2;13050:18;;;13043:30;13109:34;13089:18;;;13082:62;-1:-1:-1;;;13160:18:1;;;13153:40;13210:19;;12921:159:0;12829:406:1;12921:159:0;13131:12;;:16;;13146:1;13131:16;:::i;:::-;13116:12;:31;13112:887;;;13187:13;;-1:-1:-1;;;;;13179:21:0;;;13187:13;;13179:21;13178:33;;13209:2;13178:33;;;13204:2;13178:33;13168:43;;;;13112:887;;;13264:13;;-1:-1:-1;;;;;13264:13:0;;;13256:21;;;;13252:732;;-1:-1:-1;13312:10:0;;13252:732;;;13358:13;;-1:-1:-1;;;;;13358:13:0;;;13352:19;;;;13348:636;;13445:4;13396:28;8370:18;;;:9;:18;;;;;;4287;3961:2;4287;:18;:::i;:::-;4279:26;;:5;:26;:::i;:::-;13478:20;:37;13474:447;;;13565:14;;13610:29;;;13606:93;;;13693:6;13670:29;;13606:93;13753:10;13730:20;:33;13726:101;;;13817:10;13794:33;;13726:101;13854:43;13876:20;13854:21;:43::i;:::-;13517:404;13474:447;-1:-1:-1;;13953:11:0;;13348:636;14020:48;14042:4;14048:2;14052:6;14060:7;14020:21;:48::i;:::-;12354:1722;12244:1832;;;:::o;14900:1471::-;15035:14;;15019:12;:30;15015:338;;15148:1;15135:10;;:14;15127:58;;;;-1:-1:-1;;;15127:58:0;;13442:2:1;15127:58:0;;;13424:21:1;13481:2;13461:18;;;13454:30;13520:33;13500:18;;;13493:61;13571:18;;15127:58:0;13240:355:1;15127:58:0;15200:10;:12;;;:10;:12;;;:::i;:::-;;;;;;15015:338;;;15300:12;15283:14;:29;15340:1;15327:10;:14;15015:338;15389:16;;;15403:1;15389:16;;;;;;;;15365:21;;15389:16;;;;;;;;;;-1:-1:-1;15389:16:0;15365:40;;15434:4;15416;15421:1;15416:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15416:23:0;;;:7;;;;;;;;;;:23;;;;15460:16;;:23;;;-1:-1:-1;;;15460:23:0;;;;:16;;;;;:21;;:23;;;;;15416:7;;15460:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15450:4;15455:1;15450:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15450:33:0;;;:7;;;;;;;;;:33;15533:16;;15496:68;;15518:4;;15533:16;15552:11;15496:13;:68::i;:::-;15577:16;;:197;;-1:-1:-1;;;15577:197:0;;-1:-1:-1;;;;;15577:16:0;;;;:67;;:197;;15659:11;;15577:16;;15701:4;;15728;;15748:15;;15577:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15816:21:0;;-1:-1:-1;15787:26:0;;-1:-1:-1;15931:3:0;;-1:-1:-1;15904:23:0;15816:21;15925:2;15904:23;:::i;:::-;15903:31;;;;:::i;:::-;15881:53;-1:-1:-1;15946:20:0;15997:3;15970:23;:18;15991:2;15970:23;:::i;:::-;15969:31;;;;:::i;:::-;16076:6;;:35;;15946:54;;-1:-1:-1;16052:18:0;;-1:-1:-1;;;;;16076:6:0;;;;16095:11;;16052:18;16076:35;16052:18;16076:35;16095:11;16076:6;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16051:60;;;16130:13;16122:51;;;;-1:-1:-1;;;16122:51:0;;15191:2:1;16122:51:0;;;15173:21:1;15230:2;15210:18;;;15203:30;15269:27;15249:18;;;15242:55;15314:18;;16122:51:0;14989:349:1;16122:51:0;16250:13;;:43;;16225:19;;-1:-1:-1;;;;;16250:13:0;;16276:12;;16225:19;16250:43;16225:19;16250:43;16276:12;16250:13;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16224:69;;;16312:14;16304:59;;;;-1:-1:-1;;;16304:59:0;;15545:2:1;16304:59:0;;;15527:21:1;;;15564:18;;;15557:30;15623:34;15603:18;;;15596:62;15675:18;;16304:59:0;15343:356:1;16304:59:0;14960:1411;;;;;;14900:1471;:::o;11773:438::-;11925:17;11966:3;11946:16;11955:7;11946:6;:16;:::i;:::-;11945:24;;;;:::i;:::-;11925:44;-1:-1:-1;11980:22:0;12005:18;11925:44;12005:6;:18;:::i;:::-;-1:-1:-1;;;;;12036:15:0;;;;;;:9;:15;;;;;:25;;11980:43;;-1:-1:-1;12055:6:0;;12036:15;;;:25;;12055:6;;12036:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12072:13:0;;;;;;:9;:13;;;;;:31;;12089:14;;12072:13;:31;;12089:14;;12072:31;:::i;:::-;;;;-1:-1:-1;;12132:4:0;12114:24;;;;:9;:24;;;;;:37;;12142:9;;12114:24;:37;;12142:9;;12114:37;:::i;:::-;;;;;;;;12184:2;-1:-1:-1;;;;;12169:34:0;12178:4;-1:-1:-1;;;;;12169:34:0;;12188:14;12169:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;12169:34:0;;;;;;;;11914:297;;11773:438;;;;:::o;2352:280::-;-1:-1:-1;;;;;2438:22:0;;2416:110;;;;-1:-1:-1;;;2416:110:0;;16039:2:1;2416:110:0;;;16021:21:1;16078:2;16058:18;;;16051:30;16117:34;16097:18;;;16090:62;-1:-1:-1;;;16168:18:1;;;16161:36;16214:19;;2416:110:0;15837:402:1;2416:110:0;2563:14;;;2542:46;;-1:-1:-1;;;;;2542:46:0;;;;2563:14;;;2542:46;;;2599:14;:25;;-1:-1:-1;;;;;;2599:25:0;-1:-1:-1;;;;;2599:25:0;;;;;;;;;;2352:280::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;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3198:388::-;3266:6;3274;3327:2;3315:9;3306:7;3302:23;3298:32;3295:52;;;3343:1;3340;3333:12;3295:52;3382:9;3369:23;3401:31;3426:5;3401:31;:::i;:::-;3451:5;-1:-1:-1;3508:2:1;3493:18;;3480:32;3521:33;3480:32;3521:33;:::i;:::-;3573:7;3563:17;;;3198:388;;;;;:::o;3591:127::-;3652:10;3647:3;3643:20;3640:1;3633:31;3683:4;3680:1;3673:15;3707:4;3704:1;3697:15;3723:422;3812:1;3855:5;3812:1;3869:270;3890:7;3880:8;3877:21;3869:270;;;3949:4;3945:1;3941:6;3937:17;3931:4;3928:27;3925:53;;;3958:18;;:::i;:::-;4008:7;3998:8;3994:22;3991:55;;;4028:16;;;;3991:55;4107:22;;;;4067:15;;;;3869:270;;;3873:3;3723:422;;;;;:::o;4150:806::-;4199:5;4229:8;4219:80;;-1:-1:-1;4270:1:1;4284:5;;4219:80;4318:4;4308:76;;-1:-1:-1;4355:1:1;4369:5;;4308:76;4400:4;4418:1;4413:59;;;;4486:1;4481:130;;;;4393:218;;4413:59;4443:1;4434:10;;4457:5;;;4481:130;4518:3;4508:8;4505:17;4502:43;;;4525:18;;:::i;:::-;-1:-1:-1;;4581:1:1;4567:16;;4596:5;;4393:218;;4695:2;4685:8;4682:16;4676:3;4670:4;4667:13;4663:36;4657:2;4647:8;4644:16;4639:2;4633:4;4630:12;4626:35;4623:77;4620:159;;;-1:-1:-1;4732:19:1;;;4764:5;;4620:159;4811:34;4836:8;4830:4;4811:34;:::i;:::-;4881:6;4877:1;4873:6;4869:19;4860:7;4857:32;4854:58;;;4892:18;;:::i;:::-;4930:20;;4150:806;-1:-1:-1;;;4150:806:1:o;4961:140::-;5019:5;5048:47;5089:4;5079:8;5075:19;5069:4;5048:47;:::i;5106:168::-;5179:9;;;5210;;5227:15;;;5221:22;;5207:37;5197:71;;5248:18;;:::i;5688:356::-;5890:2;5872:21;;;5909:18;;;5902:30;5968:34;5963:2;5948:18;;5941:62;6035:2;6020:18;;5688:356::o;6404:251::-;6474:6;6527:2;6515:9;6506:7;6502:23;6498:32;6495:52;;;6543:1;6540;6533:12;6495:52;6575:9;6569:16;6594:31;6619:5;6594:31;:::i;7581:306::-;7669:6;7677;7685;7738:2;7726:9;7717:7;7713:23;7709:32;7706:52;;;7754:1;7751;7744:12;7706:52;7783:9;7777:16;7767:26;;7833:2;7822:9;7818:18;7812:25;7802:35;;7877:2;7866:9;7862:18;7856:25;7846:35;;7581:306;;;;;:::o;8171:277::-;8238:6;8291:2;8279:9;8270:7;8266:23;8262:32;8259:52;;;8307:1;8304;8297:12;8259:52;8339:9;8333:16;8392:5;8385:13;8378:21;8371:5;8368:32;8358:60;;8414:1;8411;8404:12;8453:217;8493:1;8519;8509:132;;8563:10;8558:3;8554:20;8551:1;8544:31;8598:4;8595:1;8588:15;8626:4;8623:1;8616:15;8509:132;-1:-1:-1;8655:9:1;;8453:217::o;12699:125::-;12764:9;;;12785:10;;;12782:36;;;12798:18;;:::i;13600:135::-;13639:3;13660:17;;;13657:43;;13680:18;;:::i;:::-;-1:-1:-1;13727:1:1;13716:13;;13600:135::o;13872:127::-;13933:10;13928:3;13924:20;13921:1;13914:31;13964:4;13961:1;13954:15;13988:4;13985:1;13978:15;14004:980;14266:4;14314:3;14303:9;14299:19;14345:6;14334:9;14327:25;14371:2;14409:6;14404:2;14393:9;14389:18;14382:34;14452:3;14447:2;14436:9;14432:18;14425:31;14476:6;14511;14505:13;14542:6;14534;14527:22;14580:3;14569:9;14565:19;14558:26;;14619:2;14611:6;14607:15;14593:29;;14640:1;14650:195;14664:6;14661:1;14658:13;14650:195;;;14729:13;;-1:-1:-1;;;;;14725:39:1;14713:52;;14820:15;;;;14785:12;;;;14761:1;14679:9;14650:195;;;-1:-1:-1;;;;;;;14901:32:1;;;;14896:2;14881:18;;14874:60;-1:-1:-1;;;14965:3:1;14950:19;14943:35;14862:3;14004:980;-1:-1:-1;;;14004:980:1:o;15704:128::-;15771:9;;;15792:11;;;15789:37;;;15806:18;;:::i
Swarm Source
ipfs://8dbbb6f6aeccb38be53e5c89c46fde4f80b97b6a514e154b8d91822b75898a0d
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)