ERC-20
Source Code
Overview
Max Total Supply
100,000,000 MEVS
Holders
35
Transfers
-
0 (0%)
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
MevSniper
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-09-27
*/
// SPDX-License-Identifier: MIT
/*
https://www.mevsniper.com/
https://t.me/mevsniper_channel
https://twitter.com/MevSniperCom
*/
pragma solidity 0.8.9;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
contract ERC20 is Context, IERC20, IERC20Metadata {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account)
public
view
virtual
override
returns (uint256)
{
return _balances[account];
}
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased cannot be below zero"
)
);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract MevSniper is ERC20, Ownable {
using SafeMath for uint256;
struct Fees {
uint8 buyTotalFees;
uint8 buyMarketingFee;
uint8 buyDevFee;
uint8 buyLiquidityFee;
uint8 sellTotalFees;
uint8 sellMarketingFee;
uint8 sellDevFee;
uint8 sellLiquidityFee;
}
Fees public _fees =
Fees({
buyTotalFees: 0,
buyMarketingFee: 0,
buyDevFee: 0,
buyLiquidityFee: 0,
sellTotalFees: 0,
sellMarketingFee: 0,
sellDevFee: 0,
sellLiquidityFee: 0
});
// limits
uint256 private maxBuyAmount;
uint256 private maxSellAmount;
uint256 private maxWalletAmount;
uint256 private thresholdSwapAmount;
uint256 public tokensForMarketing;
uint256 public tokensForLiquidity;
uint256 public tokensForDev;
uint256 private taxTill;
// addresses
IUniswapV2Router02 public immutable router;
address public immutable uniswapV2Pair;
address public teamWallet;
address private marketingWallet;
mapping(address => bool) private _isExcludedFromFees;
mapping(address => bool) public _isExcludedMaxTransactionAmount;
mapping(address => bool) public _isExcludedMaxWalletAmount;
mapping(address => bool) public marketPair;
bool private isTrading = false;
bool public swapEnabled = false;
bool public isSwapping;
event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived);
constructor() ERC20("MevSniper", "MEVS") {
_fees.buyDevFee = 3;
_fees.buyMarketingFee = 1;
_fees.buyLiquidityFee = 0;
_fees.buyTotalFees =
_fees.buyMarketingFee +
_fees.buyLiquidityFee +
_fees.buyDevFee;
_fees.sellDevFee = 3;
_fees.sellMarketingFee = 1;
_fees.sellLiquidityFee = 0;
_fees.sellTotalFees =
_fees.sellMarketingFee +
_fees.sellLiquidityFee +
_fees.sellDevFee;
teamWallet = address(0xD30e44578F7c7891a90069E55237e80764fa8A97);
marketingWallet = address(0xAda97E46D6C0cD5667f0fDa19E14A5A425170558);
router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(
address(this),
router.WETH()
);
marketPair[address(uniswapV2Pair)] = true;
_isExcludedFromFees[owner()] = true;
_isExcludedFromFees[address(this)] = true;
_isExcludedFromFees[teamWallet] = true;
_isExcludedFromFees[marketingWallet] = true;
_isExcludedMaxWalletAmount[owner()] = true;
_isExcludedMaxWalletAmount[address(this)] = true;
_isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true;
_isExcludedMaxWalletAmount[teamWallet] = true;
_isExcludedMaxWalletAmount[marketingWallet] = true;
_isExcludedMaxTransactionAmount[address(router)] = true;
_isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;
_isExcludedMaxTransactionAmount[owner()] = true;
_isExcludedMaxTransactionAmount[address(this)] = true;
_isExcludedMaxTransactionAmount[teamWallet] = true;
uint256 totalSupply = 100000000 * 1e18;
maxBuyAmount = (totalSupply * 2) / 100; // 2% maxTransactionAmountTxn
maxSellAmount = (totalSupply * 2) / 100; // 2% maxTransactionAmountTxn
maxWalletAmount = (totalSupply * 2) / 100; // 2% maxWallet
thresholdSwapAmount = (totalSupply * 1) / 10000; // 0.01% swap wallet
approve(address(router), type(uint256).max);
_mint(msg.sender, totalSupply);
}
receive() external payable {}
function swapTrading() external onlyOwner {
isTrading = true;
swapEnabled = true;
taxTill = block.number + 2;
}
function removeLimits() external onlyOwner {
maxBuyAmount = totalSupply();
maxSellAmount = totalSupply();
maxWalletAmount = totalSupply();
}
// change the minimum amount of tokens to sell from fees
function updateThresholdSwapAmount(uint256 newAmount)
external
onlyOwner
returns (bool)
{
thresholdSwapAmount = newAmount;
return true;
}
function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell)
external
onlyOwner
{
require(
((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100),
"maxBuyAmount must be higher than 1%"
);
require(
((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100),
"maxSellAmount must be higher than 1%"
);
maxBuyAmount = (totalSupply() * newMaxBuy) / 1000;
maxSellAmount = (totalSupply() * newMaxSell) / 1000;
}
function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner {
require(
((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100),
"Cannot set maxWallet lower than 1%"
);
maxWalletAmount = (totalSupply() * newPercentage) / 1000;
}
function updateFees(
uint8 _marketingFeeBuy,
uint8 _liquidityFeeBuy,
uint8 _devFeeBuy,
uint8 _marketingFeeSell,
uint8 _liquidityFeeSell,
uint8 _devFeeSell
) external onlyOwner {
_fees.buyMarketingFee = _marketingFeeBuy;
_fees.buyLiquidityFee = _liquidityFeeBuy;
_fees.buyDevFee = _devFeeBuy;
_fees.buyTotalFees =
_fees.buyMarketingFee +
_fees.buyLiquidityFee +
_fees.buyDevFee;
_fees.sellMarketingFee = _marketingFeeSell;
_fees.sellLiquidityFee = _liquidityFeeSell;
_fees.sellDevFee = _devFeeSell;
_fees.sellTotalFees =
_fees.sellMarketingFee +
_fees.sellLiquidityFee +
_fees.sellDevFee;
require(_fees.buyTotalFees <= 30, "Must keep fees at 30% or less");
require(_fees.sellTotalFees <= 30, "Must keep fees at 30% or less");
}
function swapBack() private {
uint256 contractTokenBalance = balanceOf(address(this));
uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
bool success;
if (contractTokenBalance == 0 || toSwap == 0) {
return;
}
if (contractTokenBalance > thresholdSwapAmount * 20) {
contractTokenBalance = thresholdSwapAmount * 20;
}
// Halve the amount of liquidity tokens
uint256 liquidityTokens = (contractTokenBalance * tokensForLiquidity) /
toSwap /
2;
uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens);
uint256 initialETHBalance = address(this).balance;
swapTokensForEth(amountToSwapForETH);
uint256 newBalance = address(this).balance.sub(initialETHBalance);
uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div(
toSwap
);
uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap);
uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev);
tokensForLiquidity = 0;
tokensForMarketing = 0;
tokensForDev = 0;
if (liquidityTokens > 0 && ethForLiquidity > 0) {
addLiquidity(liquidityTokens, ethForLiquidity);
emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity);
}
(success, ) = address(teamWallet).call{
value: (address(this).balance - ethForMarketing)
}("");
(success, ) = address(marketingWallet).call{
value: address(this).balance
}("");
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
}
function excludeFromWalletLimit(address account, bool excluded)
public
onlyOwner
{
_isExcludedMaxWalletAmount[account] = excluded;
}
function excludeFromMaxTransaction(address updAds, bool isEx)
public
onlyOwner
{
_isExcludedMaxTransactionAmount[updAds] = isEx;
}
function setMarketPair(address pair, bool value) public onlyOwner {
require(pair != uniswapV2Pair, "Must keep uniswapV2Pair");
marketPair[pair] = value;
}
function rescueETH(uint256 weiAmount) external onlyOwner {
payable(owner()).transfer(weiAmount);
}
function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
IERC20(tokenAdd).transfer(owner(), amount);
}
function setWallets(address _marketingWallet, address _teamWallet)
external
onlyOwner
{
marketingWallet = _marketingWallet;
teamWallet = _teamWallet;
}
function isExcludedFromFees(address account) public view returns (bool) {
return _isExcludedFromFees[account];
}
function getMarketLpAddress(
address sender,
address receiver,
uint256 amount
) private view returns (address) {
if (balanceOf(sender) < amount && marketPair[receiver]) {
if (_isExcludedMaxTransactionAmount[sender]) {
return address(0);
}
}
return sender;
}
function swapTokensForEth(uint256 tAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tAmount);
// make the swap
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(router), tAmount);
// add the liquidity
router.addLiquidityETH{value: ethAmount}(
address(this),
tAmount,
0,
0,
address(this),
block.timestamp
);
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
if (amount == 0) {
super._transfer(sender, recipient, 0);
return;
}
if (sender != owner() && recipient != owner() && !isSwapping) {
address marketLpBddress = getMarketLpAddress(
sender,
recipient,
amount
);
if (!isTrading) {
require(
_isExcludedFromFees[sender] ||
_isExcludedFromFees[recipient],
"Trading is not active."
);
}
if (
marketPair[sender] &&
!_isExcludedMaxTransactionAmount[recipient]
) {
require(amount <= maxBuyAmount, "buy transfer over max amount");
} else if (
marketPair[recipient] &&
!_isExcludedMaxTransactionAmount[sender]
) {
require(
amount <= maxSellAmount,
"Sell transfer over max amount"
);
}
if (!_isExcludedMaxWalletAmount[recipient]) {
require(
amount + balanceOf(recipient) <= maxWalletAmount,
"Max wallet exceeded"
);
}
if (marketLpBddress != sender) {
super._transfer(recipient, marketLpBddress, amount);
return;
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= thresholdSwapAmount;
if (
canSwap &&
swapEnabled &&
!isSwapping &&
marketPair[recipient] &&
!_isExcludedFromFees[sender] &&
!_isExcludedFromFees[recipient]
) {
isSwapping = true;
swapBack();
isSwapping = false;
}
bool takeFee = !isSwapping;
if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) {
takeFee = false;
}
if (takeFee) {
uint256 fees = 0;
if (block.number < taxTill) {
fees = amount.mul(99).div(100);
tokensForMarketing += (fees * 94) / 99;
tokensForDev += (fees * 5) / 99;
} else if (marketPair[recipient] && _fees.sellTotalFees > 0) {
fees = amount.mul(_fees.sellTotalFees).div(100);
tokensForLiquidity +=
(fees * _fees.sellLiquidityFee) /
_fees.sellTotalFees;
tokensForMarketing +=
(fees * _fees.sellMarketingFee) /
_fees.sellTotalFees;
uint256 rewardBalance = balanceOf(teamWallet);
if (!marketPair[sender] && rewardBalance > 0) {
return;
}
tokensForDev += (fees * _fees.sellDevFee) / _fees.sellTotalFees;
} else if (marketPair[sender] && _fees.buyTotalFees > 0) {
fees = amount.mul(_fees.buyTotalFees).div(100);
tokensForLiquidity +=
(fees * _fees.buyLiquidityFee) /
_fees.buyTotalFees;
tokensForMarketing +=
(fees * _fees.buyMarketingFee) /
_fees.buyTotalFees;
tokensForDev += (fees * _fees.buyDevFee) / _fees.buyTotalFees;
}
if (fees > 0) {
super._transfer(sender, address(this), fees);
}
amount -= fees;
}
super._transfer(sender, recipient, amount);
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
library SafeMathInt {
int256 private constant MIN_INT256 = int256(1) << 255;
int256 private constant MAX_INT256 = ~(int256(1) << 255);
function mul(int256 a, int256 b) internal pure returns (int256) {
int256 c = a * b;
require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
require((b == 0) || (c / b == a));
return c;
}
function div(int256 a, int256 b) internal pure returns (int256) {
require(b != -1 || a != MIN_INT256);
return a / b;
}
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
function abs(int256 a) internal pure returns (int256) {
require(a != MIN_INT256);
return a < 0 ? -a : a;
}
function toUint256Safe(int256 a) internal pure returns (uint256) {
require(a >= 0);
return uint256(a);
}
}
library SafeMathUint {
function toInt256Safe(uint256 a) internal pure returns (int256) {
int256 b = int256(a);
require(b >= 0);
return b;
}
}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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","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"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6101c0604052600060c081905260e08190526101008190526101208190526101408190526101608190526101808190526101a052600680546001600160401b03191690556015805461ffff191690553480156200005b57600080fd5b50604080518082018252600981526826b2bb29b734b832b960b91b6020808301918252835180850190945260048452634d45565360e01b908401528151919291620000a99160039162000836565b508051620000bf90600490602084019062000836565b5050506000620000d46200064f60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006805463ffffff00191662030100179081905562010000810460ff908116916200015d9163010000008204811691610100900416620008f2565b620001699190620008f2565b600680546501000000000060ff93841666ff0000000000ff199092169190911766030000000000001762ff00ff60281b191681179182905566010000000000008204831692620001ca926701000000000000008104821692900416620008f2565b620001d69190620008f2565b6006805460ff929092166401000000000260ff60201b19909216919091179055600f80546001600160a01b031990811673d30e44578f7c7891a90069e55237e80764fa8a97179091556010805490911673ada97e46d6c0cd5667f0fda19e14a5a425170558179055737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a015591600481810192602092909190829003018186803b1580156200028f57600080fd5b505afa158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca91906200091a565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031557600080fd5b505afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035091906200091a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200039957600080fd5b505af1158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d491906200091a565b6001600160a01b031660a08190526000908152601460205260408120805460ff1916600190811790915590601190620004156005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526011909352818320805485166001908117909155600f54821684528284208054861682179055601054909116835290822080549093168117909255601390620004976005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526013845282812080548616600190811790915560a05183168083528483208054881683179055600f5484168352848320805488168317905560105484168352848320805488168317905560805190931682526012948590528382208054871682179055918152918220805490941681179093556200054e6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526012909352818320805485166001908117909155600f549091168352912080549092161790556a52b7d2dcc80cd2e40000006064620005c082600262000945565b620005cc919062000967565b6007556064620005de82600262000945565b620005ea919062000967565b6008556064620005fc82600262000945565b62000608919062000967565b6009556127106200061b82600162000945565b62000627919062000967565b600a556080516200063b9060001962000653565b506200064833826200066b565b50620009e2565b3390565b6000620006623384846200076b565b50600192915050565b6001600160a01b038216620006c75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620006e381600254620007cc60201b620014091790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200071691839062001409620007cc821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080620007db83856200098a565b9050838110156200082f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620006be565b9392505050565b8280546200084490620009a5565b90600052602060002090601f016020900481019282620008685760008555620008b3565b82601f106200088357805160ff1916838001178555620008b3565b82800160010185558215620008b3579182015b82811115620008b357825182559160200191906001019062000896565b50620008c1929150620008c5565b5090565b5b80821115620008c15760008155600101620008c6565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115620009125762000912620008dc565b019392505050565b6000602082840312156200092d57600080fd5b81516001600160a01b03811681146200082f57600080fd5b6000816000190483118215151615620009625762000962620008dc565b500290565b6000826200098557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620009a057620009a0620008dc565b500190565b600181811c90821680620009ba57607f821691505b60208210811415620009dc57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161286462000a32600039600081816103d101526110e6015260008181610845015281816120f8015281816121c0015281816121fc0152818161226e01526122ca01526128646000f3fe60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461077d578063e16830a8146107c3578063f2fde38b146107e3578063f5b3c3bf14610803578063f887ea401461083357600080fd5b8063c024666814610651578063c16dd4a414610671578063c18bc19514610691578063d212a69a146106b1578063d3f6a1571461075d57600080fd5b80639fccce32116100f25780639fccce32146105c6578063a457c2d7146105dc578063a9059cbb146105fc578063b88631151461061c578063b9e418e71461063c57600080fd5b80638cd4426d146105235780638da5cb5b1461054357806395d89b411461056157806396880b17146105765780639e252f00146105a657600080fd5b806339509351116101bc5780636ddd1713116101805780636ddd17131461048457806370a08231146104a3578063715018a6146104d9578063751039fc146104ee5780637571336a1461050357600080fd5b8063395093511461039f57806349bd5a5e146103bf5780634fbee1931461040b578063555467a114610444578063599270441461046457600080fd5b80631a8145bb116102035780631a8145bb146103175780631f3fed8f1461032d57806323b872dd14610343578063313ce567146103635780633265e8461461037f57600080fd5b806306fdde031461024b578063095ea7b31461027657806310d5de53146102a657806311a582c3146102d657806318160ddd146102f857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610867565b60405161026d9190612385565b60405180910390f35b34801561028257600080fd5b506102966102913660046123f2565b6108f9565b604051901515815260200161026d565b3480156102b257600080fd5b506102966102c136600461241e565b60126020526000908152604090205460ff1681565b3480156102e257600080fd5b506102f66102f136600461243b565b610910565b005b34801561030457600080fd5b506002545b60405190815260200161026d565b34801561032357600080fd5b50610309600c5481565b34801561033957600080fd5b50610309600b5481565b34801561034f57600080fd5b5061029661035e36600461245d565b610aaf565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b506102f661039a3660046124af565b610b19565b3480156103ab57600080fd5b506102966103ba3660046123f2565b610d01565b3480156103cb57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b34801561041757600080fd5b5061029661042636600461241e565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561045057600080fd5b5061029661045f366004612523565b610d37565b34801561047057600080fd5b50600f546103f3906001600160a01b031681565b34801561049057600080fd5b5060155461029690610100900460ff1681565b3480156104af57600080fd5b506103096104be36600461241e565b6001600160a01b031660009081526020819052604090205490565b3480156104e557600080fd5b506102f6610d72565b3480156104fa57600080fd5b506102f6610de6565b34801561050f57600080fd5b506102f661051e36600461254a565b610e24565b34801561052f57600080fd5b506102f661053e3660046123f2565b610e79565b34801561054f57600080fd5b506005546001600160a01b03166103f3565b34801561056d57600080fd5b50610260610f49565b34801561058257600080fd5b5061029661059136600461241e565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b506102f66105c1366004612523565b610f58565b3480156105d257600080fd5b50610309600d5481565b3480156105e857600080fd5b506102966105f73660046123f2565b610fc0565b34801561060857600080fd5b506102966106173660046123f2565b61100f565b34801561062857600080fd5b506015546102969062010000900460ff1681565b34801561064857600080fd5b506102f661101c565b34801561065d57600080fd5b506102f661066c36600461254a565b611065565b34801561067d57600080fd5b506102f661068c36600461254a565b6110ba565b34801561069d57600080fd5b506102f66106ac366004612523565b611191565b3480156106bd57600080fd5b506006546107119060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e08201526101000161026d565b34801561076957600080fd5b506102f6610778366004612583565b611271565b34801561078957600080fd5b50610309610798366004612583565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102f66107de36600461254a565b6112c9565b3480156107ef57600080fd5b506102f66107fe36600461241e565b61131e565b34801561080f57600080fd5b5061029661081e36600461241e565b60146020526000908152604090205460ff1681565b34801561083f57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b606060038054610876906125b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125b1565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611468565b5060015b92915050565b6005546001600160a01b031633146109435760405162461bcd60e51b815260040161093a906125ec565b60405180910390fd5b606461094e60025490565b6109589190612637565b6103e88361096560025490565b61096f9190612659565b6109799190612637565b10156109d35760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b606482015260840161093a565b60646109de60025490565b6109e89190612637565b6103e8826109f560025490565b6109ff9190612659565b610a099190612637565b1015610a635760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b606482015260840161093a565b6103e882610a7060025490565b610a7a9190612659565b610a849190612637565b6007556103e881610a9460025490565b610a9e9190612659565b610aa89190612637565b6008555050565b6000610abc8484846114ca565b610b0e8433610b0985604051806060016040528060288152602001612807602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611bff565b611468565b5060015b9392505050565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093a906125ec565b6006805463ff00ff00191661010060ff898116820263ff000000191692909217630100000089841681029190911762ff0000191662010000898516810291909117948590558404831693610b9f93918104821692900416612678565b610ba99190612678565b6006805460ff92831665ff00000000ff19909116176501000000000086841681029190911767ffff0000000000001916600160381b868516810266ff000000000000191691909117600160301b868616810291909117938490558304841693610c1b9391820481169290910416612678565b610c259190612678565b6006805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b600654601e600160201b90910460ff161115610cf95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b099086611409565b6005546000906001600160a01b03163314610d645760405162461bcd60e51b815260040161093a906125ec565b50600a81905560015b919050565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161093a906125ec565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093a906125ec565b600254600755600254600855600254600955565b6005546001600160a01b03163314610e4e5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ea35760405162461bcd60e51b815260040161093a906125ec565b816001600160a01b031663a9059cbb610ec46005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061269d565b505050565b606060048054610876906125b1565b6005546001600160a01b03163314610f825760405162461bcd60e51b815260040161093a906125ec565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b5050565b60006109063384610b09856040518060600160405280602581526020016127bc602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611bff565b60006109063384846114ca565b6005546001600160a01b031633146110465760405162461bcd60e51b815260040161093a906125ec565b6015805461ffff19166101011790556110604360026126ba565b600e55565b6005546001600160a01b0316331461108f5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e45760405162461bcd60e51b815260040161093a906125ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156111665760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e6973776170563250616972000000000000000000604482015260640161093a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111bb5760405162461bcd60e51b815260040161093a906125ec565b60646111c660025490565b6111d09190612637565b6103e8826111dd60025490565b6111e79190612659565b6111f19190612637565b101561124a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b606482015260840161093a565b6103e88161125760025490565b6112619190612659565b61126b9190612637565b60095550565b6005546001600160a01b0316331461129b5760405162461bcd60e51b815260040161093a906125ec565b601080546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6005546001600160a01b031633146112f35760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113485760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161093a565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061141683856126ba565b905083811015610b125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161093a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806114db57610f4483836000611c39565b6005546001600160a01b0384811691161480159061150757506005546001600160a01b03838116911614155b801561151c575060155462010000900460ff16155b156117aa57600061152e848484611cf6565b60155490915060ff166115bf576001600160a01b03841660009081526011602052604090205460ff168061157a57506001600160a01b03831660009081526011602052604090205460ff165b6115bf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161093a565b6001600160a01b03841660009081526014602052604090205460ff16801561160057506001600160a01b03831660009081526012602052604090205460ff16155b1561165c576007548211156116575760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e7400000000604482015260640161093a565b6116f4565b6001600160a01b03831660009081526014602052604090205460ff16801561169d57506001600160a01b03841660009081526012602052604090205460ff16155b156116f4576008548211156116f45760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000604482015260640161093a565b6001600160a01b03831660009081526013602052604090205460ff1661177e576009546001600160a01b03841660009081526020819052604090205461173a90846126ba565b111561177e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161093a565b836001600160a01b0316816001600160a01b0316146117a8576117a2838284611c39565b50505050565b505b30600090815260208190526040902054600a54811080159081906117d55750601554610100900460ff165b80156117ea575060155462010000900460ff16155b801561180e57506001600160a01b03841660009081526014602052604090205460ff165b801561183357506001600160a01b03851660009081526011602052604090205460ff16155b801561185857506001600160a01b03841660009081526011602052604090205460ff16155b15611883576015805462ff0000191662010000179055611876611d6b565b6015805462ff0000191690555b6015546001600160a01b03861660009081526011602052604090205460ff620100009092048216159116806118d057506001600160a01b03851660009081526011602052604090205460ff165b156118d9575060005b8015611bf4576000600e544310156119645761190160646118fb876063611f9e565b9061201d565b9050606361191082605e612659565b61191a9190612637565b600b600082825461192b91906126ba565b909155506063905061193e826005612659565b6119489190612637565b600d600082825461195991906126ba565b90915550611bd59050565b6001600160a01b03861660009081526014602052604090205460ff1680156119975750600654600160201b900460ff1615155b15611ad7576006546119bb906064906118fb908890600160201b900460ff16611f9e565b60065490915060ff600160201b82048116916119e091600160381b9091041683612659565b6119ea9190612637565b600c60008282546119fb91906126ba565b909155505060065460ff600160201b8204811691611a2491650100000000009091041683612659565b611a2e9190612637565b600b6000828254611a3f91906126ba565b9091555050600f546001600160a01b0390811660009081526020818152604080832054938b168352601490915290205460ff16158015611a7f5750600081115b15611a8e575050505050505050565b60065460ff600160201b8204811691611ab091600160301b9091041684612659565b611aba9190612637565b600d6000828254611acb91906126ba565b90915550611bd5915050565b6001600160a01b03871660009081526014602052604090205460ff168015611b03575060065460ff1615155b15611bd557600654611b20906064906118fb90889060ff16611f9e565b60065490915060ff80821691611b3f9163010000009091041683612659565b611b499190612637565b600c6000828254611b5a91906126ba565b909155505060065460ff80821691611b79916101009091041683612659565b611b839190612637565b600b6000828254611b9491906126ba565b909155505060065460ff80821691611bb491620100009091041683612659565b611bbe9190612637565b600d6000828254611bcf91906126ba565b90915550505b8015611be657611be6873083611c39565b611bf081866126d2565b9450505b610cf9868686611c39565b60008184841115611c235760405162461bcd60e51b815260040161093a9190612385565b506000611c3084866126d2565b95945050505050565b611c76816040518060600160405280602681526020016127e1602691396001600160a01b0386166000908152602081905260409020549190611bff565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611ca59082611409565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016114bd565b6001600160a01b03831660009081526020819052604081205482118015611d3557506001600160a01b03831660009081526014602052604090205460ff165b15611d63576001600160a01b03841660009081526012602052604090205460ff1615611d6357506000610b12565b509192915050565b3060009081526020819052604081205490506000600d54600b54600c54611d9291906126ba565b611d9c91906126ba565b90506000821580611dab575081155b15611db557505050565b600a54611dc3906014612659565b831115611ddb57600a54611dd8906014612659565b92505b6000600283600c5486611dee9190612659565b611df89190612637565b611e029190612637565b90506000611e10858361205f565b905047611e1c826120a1565b6000611e28478361205f565b90506000611e45876118fb600b5485611f9e90919063ffffffff16565b90506000611e62886118fb600d5486611f9e90919063ffffffff16565b90506000611e7082846126ba565b611e7a90856126d2565b6000600c819055600b819055600d5590508615801590611e9a5750600081115b15611ee357611ea98782612268565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b600f546001600160a01b0316611ef984476126d2565b604051600081818185875af1925050503d8060008114611f35576040519150601f19603f3d011682016040523d82523d6000602084013e611f3a565b606091505b50506010546040519199506001600160a01b0316904790600081818185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50505050505050505050505050565b600082611fad5750600061090a565b6000611fb98385612659565b905082611fc68583612637565b14610b125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161093a565b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612357565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bff565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d6576120d66126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214f57600080fd5b505afa158015612163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218791906126ff565b8160018151811061219a5761219a6126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250506121e5307f000000000000000000000000000000000000000000000000000000000000000084611468565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061223a90859060009086903090429060040161271c565b600060405180830381600087803b15801561225457600080fd5b505af1158015610cf9573d6000803e3d6000fd5b612293307f000000000000000000000000000000000000000000000000000000000000000084611468565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c4016060604051808303818588803b15801561231757600080fd5b505af115801561232b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612350919061278d565b5050505050565b600081836123785760405162461bcd60e51b815260040161093a9190612385565b506000611c308486612637565b600060208083528351808285015260005b818110156123b257858101830151858201604001528201612396565b818111156123c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146123ef57600080fd5b50565b6000806040838503121561240557600080fd5b8235612410816123da565b946020939093013593505050565b60006020828403121561243057600080fd5b8135610b12816123da565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b60008060006060848603121561247257600080fd5b833561247d816123da565b9250602084013561248d816123da565b929592945050506040919091013590565b803560ff81168114610d6d57600080fd5b60008060008060008060c087890312156124c857600080fd5b6124d18761249e565b95506124df6020880161249e565b94506124ed6040880161249e565b93506124fb6060880161249e565b92506125096080880161249e565b915061251760a0880161249e565b90509295509295509295565b60006020828403121561253557600080fd5b5035919050565b80151581146123ef57600080fd5b6000806040838503121561255d57600080fd5b8235612568816123da565b915060208301356125788161253c565b809150509250929050565b6000806040838503121561259657600080fd5b82356125a1816123da565b91506020830135612578816123da565b600181811c908216806125c557607f821691505b602082108114156125e657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261265457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561267357612673612621565b500290565b600060ff821660ff84168060ff0382111561269557612695612621565b019392505050565b6000602082840312156126af57600080fd5b8151610b128161253c565b600082198211156126cd576126cd612621565b500190565b6000828210156126e4576126e4612621565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561271157600080fd5b8151610b12816123da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561276c5784516001600160a01b031683529383019391830191600101612747565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127a257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc564736f6c63430008090033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461077d578063e16830a8146107c3578063f2fde38b146107e3578063f5b3c3bf14610803578063f887ea401461083357600080fd5b8063c024666814610651578063c16dd4a414610671578063c18bc19514610691578063d212a69a146106b1578063d3f6a1571461075d57600080fd5b80639fccce32116100f25780639fccce32146105c6578063a457c2d7146105dc578063a9059cbb146105fc578063b88631151461061c578063b9e418e71461063c57600080fd5b80638cd4426d146105235780638da5cb5b1461054357806395d89b411461056157806396880b17146105765780639e252f00146105a657600080fd5b806339509351116101bc5780636ddd1713116101805780636ddd17131461048457806370a08231146104a3578063715018a6146104d9578063751039fc146104ee5780637571336a1461050357600080fd5b8063395093511461039f57806349bd5a5e146103bf5780634fbee1931461040b578063555467a114610444578063599270441461046457600080fd5b80631a8145bb116102035780631a8145bb146103175780631f3fed8f1461032d57806323b872dd14610343578063313ce567146103635780633265e8461461037f57600080fd5b806306fdde031461024b578063095ea7b31461027657806310d5de53146102a657806311a582c3146102d657806318160ddd146102f857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610867565b60405161026d9190612385565b60405180910390f35b34801561028257600080fd5b506102966102913660046123f2565b6108f9565b604051901515815260200161026d565b3480156102b257600080fd5b506102966102c136600461241e565b60126020526000908152604090205460ff1681565b3480156102e257600080fd5b506102f66102f136600461243b565b610910565b005b34801561030457600080fd5b506002545b60405190815260200161026d565b34801561032357600080fd5b50610309600c5481565b34801561033957600080fd5b50610309600b5481565b34801561034f57600080fd5b5061029661035e36600461245d565b610aaf565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b506102f661039a3660046124af565b610b19565b3480156103ab57600080fd5b506102966103ba3660046123f2565b610d01565b3480156103cb57600080fd5b506103f37f000000000000000000000000ba14c62c6ef051be2b149364afe680b5fcaccf5981565b6040516001600160a01b03909116815260200161026d565b34801561041757600080fd5b5061029661042636600461241e565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561045057600080fd5b5061029661045f366004612523565b610d37565b34801561047057600080fd5b50600f546103f3906001600160a01b031681565b34801561049057600080fd5b5060155461029690610100900460ff1681565b3480156104af57600080fd5b506103096104be36600461241e565b6001600160a01b031660009081526020819052604090205490565b3480156104e557600080fd5b506102f6610d72565b3480156104fa57600080fd5b506102f6610de6565b34801561050f57600080fd5b506102f661051e36600461254a565b610e24565b34801561052f57600080fd5b506102f661053e3660046123f2565b610e79565b34801561054f57600080fd5b506005546001600160a01b03166103f3565b34801561056d57600080fd5b50610260610f49565b34801561058257600080fd5b5061029661059136600461241e565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b506102f66105c1366004612523565b610f58565b3480156105d257600080fd5b50610309600d5481565b3480156105e857600080fd5b506102966105f73660046123f2565b610fc0565b34801561060857600080fd5b506102966106173660046123f2565b61100f565b34801561062857600080fd5b506015546102969062010000900460ff1681565b34801561064857600080fd5b506102f661101c565b34801561065d57600080fd5b506102f661066c36600461254a565b611065565b34801561067d57600080fd5b506102f661068c36600461254a565b6110ba565b34801561069d57600080fd5b506102f66106ac366004612523565b611191565b3480156106bd57600080fd5b506006546107119060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e08201526101000161026d565b34801561076957600080fd5b506102f6610778366004612583565b611271565b34801561078957600080fd5b50610309610798366004612583565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102f66107de36600461254a565b6112c9565b3480156107ef57600080fd5b506102f66107fe36600461241e565b61131e565b34801561080f57600080fd5b5061029661081e36600461241e565b60146020526000908152604090205460ff1681565b34801561083f57600080fd5b506103f37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b606060038054610876906125b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125b1565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611468565b5060015b92915050565b6005546001600160a01b031633146109435760405162461bcd60e51b815260040161093a906125ec565b60405180910390fd5b606461094e60025490565b6109589190612637565b6103e88361096560025490565b61096f9190612659565b6109799190612637565b10156109d35760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b606482015260840161093a565b60646109de60025490565b6109e89190612637565b6103e8826109f560025490565b6109ff9190612659565b610a099190612637565b1015610a635760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b606482015260840161093a565b6103e882610a7060025490565b610a7a9190612659565b610a849190612637565b6007556103e881610a9460025490565b610a9e9190612659565b610aa89190612637565b6008555050565b6000610abc8484846114ca565b610b0e8433610b0985604051806060016040528060288152602001612807602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611bff565b611468565b5060015b9392505050565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093a906125ec565b6006805463ff00ff00191661010060ff898116820263ff000000191692909217630100000089841681029190911762ff0000191662010000898516810291909117948590558404831693610b9f93918104821692900416612678565b610ba99190612678565b6006805460ff92831665ff00000000ff19909116176501000000000086841681029190911767ffff0000000000001916600160381b868516810266ff000000000000191691909117600160301b868616810291909117938490558304841693610c1b9391820481169290910416612678565b610c259190612678565b6006805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b600654601e600160201b90910460ff161115610cf95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b099086611409565b6005546000906001600160a01b03163314610d645760405162461bcd60e51b815260040161093a906125ec565b50600a81905560015b919050565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161093a906125ec565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093a906125ec565b600254600755600254600855600254600955565b6005546001600160a01b03163314610e4e5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ea35760405162461bcd60e51b815260040161093a906125ec565b816001600160a01b031663a9059cbb610ec46005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061269d565b505050565b606060048054610876906125b1565b6005546001600160a01b03163314610f825760405162461bcd60e51b815260040161093a906125ec565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b5050565b60006109063384610b09856040518060600160405280602581526020016127bc602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611bff565b60006109063384846114ca565b6005546001600160a01b031633146110465760405162461bcd60e51b815260040161093a906125ec565b6015805461ffff19166101011790556110604360026126ba565b600e55565b6005546001600160a01b0316331461108f5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e45760405162461bcd60e51b815260040161093a906125ec565b7f000000000000000000000000ba14c62c6ef051be2b149364afe680b5fcaccf596001600160a01b0316826001600160a01b031614156111665760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e6973776170563250616972000000000000000000604482015260640161093a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111bb5760405162461bcd60e51b815260040161093a906125ec565b60646111c660025490565b6111d09190612637565b6103e8826111dd60025490565b6111e79190612659565b6111f19190612637565b101561124a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b606482015260840161093a565b6103e88161125760025490565b6112619190612659565b61126b9190612637565b60095550565b6005546001600160a01b0316331461129b5760405162461bcd60e51b815260040161093a906125ec565b601080546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6005546001600160a01b031633146112f35760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113485760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161093a565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061141683856126ba565b905083811015610b125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161093a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806114db57610f4483836000611c39565b6005546001600160a01b0384811691161480159061150757506005546001600160a01b03838116911614155b801561151c575060155462010000900460ff16155b156117aa57600061152e848484611cf6565b60155490915060ff166115bf576001600160a01b03841660009081526011602052604090205460ff168061157a57506001600160a01b03831660009081526011602052604090205460ff165b6115bf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161093a565b6001600160a01b03841660009081526014602052604090205460ff16801561160057506001600160a01b03831660009081526012602052604090205460ff16155b1561165c576007548211156116575760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e7400000000604482015260640161093a565b6116f4565b6001600160a01b03831660009081526014602052604090205460ff16801561169d57506001600160a01b03841660009081526012602052604090205460ff16155b156116f4576008548211156116f45760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000604482015260640161093a565b6001600160a01b03831660009081526013602052604090205460ff1661177e576009546001600160a01b03841660009081526020819052604090205461173a90846126ba565b111561177e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161093a565b836001600160a01b0316816001600160a01b0316146117a8576117a2838284611c39565b50505050565b505b30600090815260208190526040902054600a54811080159081906117d55750601554610100900460ff165b80156117ea575060155462010000900460ff16155b801561180e57506001600160a01b03841660009081526014602052604090205460ff165b801561183357506001600160a01b03851660009081526011602052604090205460ff16155b801561185857506001600160a01b03841660009081526011602052604090205460ff16155b15611883576015805462ff0000191662010000179055611876611d6b565b6015805462ff0000191690555b6015546001600160a01b03861660009081526011602052604090205460ff620100009092048216159116806118d057506001600160a01b03851660009081526011602052604090205460ff165b156118d9575060005b8015611bf4576000600e544310156119645761190160646118fb876063611f9e565b9061201d565b9050606361191082605e612659565b61191a9190612637565b600b600082825461192b91906126ba565b909155506063905061193e826005612659565b6119489190612637565b600d600082825461195991906126ba565b90915550611bd59050565b6001600160a01b03861660009081526014602052604090205460ff1680156119975750600654600160201b900460ff1615155b15611ad7576006546119bb906064906118fb908890600160201b900460ff16611f9e565b60065490915060ff600160201b82048116916119e091600160381b9091041683612659565b6119ea9190612637565b600c60008282546119fb91906126ba565b909155505060065460ff600160201b8204811691611a2491650100000000009091041683612659565b611a2e9190612637565b600b6000828254611a3f91906126ba565b9091555050600f546001600160a01b0390811660009081526020818152604080832054938b168352601490915290205460ff16158015611a7f5750600081115b15611a8e575050505050505050565b60065460ff600160201b8204811691611ab091600160301b9091041684612659565b611aba9190612637565b600d6000828254611acb91906126ba565b90915550611bd5915050565b6001600160a01b03871660009081526014602052604090205460ff168015611b03575060065460ff1615155b15611bd557600654611b20906064906118fb90889060ff16611f9e565b60065490915060ff80821691611b3f9163010000009091041683612659565b611b499190612637565b600c6000828254611b5a91906126ba565b909155505060065460ff80821691611b79916101009091041683612659565b611b839190612637565b600b6000828254611b9491906126ba565b909155505060065460ff80821691611bb491620100009091041683612659565b611bbe9190612637565b600d6000828254611bcf91906126ba565b90915550505b8015611be657611be6873083611c39565b611bf081866126d2565b9450505b610cf9868686611c39565b60008184841115611c235760405162461bcd60e51b815260040161093a9190612385565b506000611c3084866126d2565b95945050505050565b611c76816040518060600160405280602681526020016127e1602691396001600160a01b0386166000908152602081905260409020549190611bff565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611ca59082611409565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016114bd565b6001600160a01b03831660009081526020819052604081205482118015611d3557506001600160a01b03831660009081526014602052604090205460ff165b15611d63576001600160a01b03841660009081526012602052604090205460ff1615611d6357506000610b12565b509192915050565b3060009081526020819052604081205490506000600d54600b54600c54611d9291906126ba565b611d9c91906126ba565b90506000821580611dab575081155b15611db557505050565b600a54611dc3906014612659565b831115611ddb57600a54611dd8906014612659565b92505b6000600283600c5486611dee9190612659565b611df89190612637565b611e029190612637565b90506000611e10858361205f565b905047611e1c826120a1565b6000611e28478361205f565b90506000611e45876118fb600b5485611f9e90919063ffffffff16565b90506000611e62886118fb600d5486611f9e90919063ffffffff16565b90506000611e7082846126ba565b611e7a90856126d2565b6000600c819055600b819055600d5590508615801590611e9a5750600081115b15611ee357611ea98782612268565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b600f546001600160a01b0316611ef984476126d2565b604051600081818185875af1925050503d8060008114611f35576040519150601f19603f3d011682016040523d82523d6000602084013e611f3a565b606091505b50506010546040519199506001600160a01b0316904790600081818185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50505050505050505050505050565b600082611fad5750600061090a565b6000611fb98385612659565b905082611fc68583612637565b14610b125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161093a565b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612357565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bff565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d6576120d66126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214f57600080fd5b505afa158015612163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218791906126ff565b8160018151811061219a5761219a6126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250506121e5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611468565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061223a90859060009086903090429060040161271c565b600060405180830381600087803b15801561225457600080fd5b505af1158015610cf9573d6000803e3d6000fd5b612293307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611468565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c4016060604051808303818588803b15801561231757600080fd5b505af115801561232b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612350919061278d565b5050505050565b600081836123785760405162461bcd60e51b815260040161093a9190612385565b506000611c308486612637565b600060208083528351808285015260005b818110156123b257858101830151858201604001528201612396565b818111156123c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146123ef57600080fd5b50565b6000806040838503121561240557600080fd5b8235612410816123da565b946020939093013593505050565b60006020828403121561243057600080fd5b8135610b12816123da565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b60008060006060848603121561247257600080fd5b833561247d816123da565b9250602084013561248d816123da565b929592945050506040919091013590565b803560ff81168114610d6d57600080fd5b60008060008060008060c087890312156124c857600080fd5b6124d18761249e565b95506124df6020880161249e565b94506124ed6040880161249e565b93506124fb6060880161249e565b92506125096080880161249e565b915061251760a0880161249e565b90509295509295509295565b60006020828403121561253557600080fd5b5035919050565b80151581146123ef57600080fd5b6000806040838503121561255d57600080fd5b8235612568816123da565b915060208301356125788161253c565b809150509250929050565b6000806040838503121561259657600080fd5b82356125a1816123da565b91506020830135612578816123da565b600181811c908216806125c557607f821691505b602082108114156125e657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261265457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561267357612673612621565b500290565b600060ff821660ff84168060ff0382111561269557612695612621565b019392505050565b6000602082840312156126af57600080fd5b8151610b128161253c565b600082198211156126cd576126cd612621565b500190565b6000828210156126e4576126e4612621565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561271157600080fd5b8151610b12816123da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561276c5784516001600160a01b031683529383019391830191600101612747565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127a257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc564736f6c63430008090033
Deployed Bytecode Sourcemap
12249:14541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1785:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2840:210;;;;;;;;;;-1:-1:-1;2840:210:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;2840:210:0;1072:187:1;13456:63:0;;;;;;;;;;-1:-1:-1;13456:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16696:555;;;;;;;;;;-1:-1:-1;16696:555:0;;;;;:::i;:::-;;:::i;:::-;;2106:108;;;;;;;;;;-1:-1:-1;2194:12:0;;2106:108;;;1915:25:1;;;1903:2;1888:18;2106:108:0;1769:177:1;13109:33:0;;;;;;;;;;;;;;;;13069;;;;;;;;;;;;;;;;3058:454;;;;;;;;;;-1:-1:-1;3058:454:0;;;;;:::i;:::-;;:::i;2005:93::-;;;;;;;;;;-1:-1:-1;2005:93:0;;2088:2;2554:36:1;;2542:2;2527:18;2005:93:0;2412:184:1;17575:960:0;;;;;;;;;;-1:-1:-1;17575:960:0;;;;;:::i;:::-;;:::i;3520:300::-;;;;;;;;;;-1:-1:-1;3520:300:0;;;;;:::i;:::-;;:::i;13282:38::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3466:32:1;;;3448:51;;3436:2;3421:18;13282:38:0;3302:203:1;21372:126:0;;;;;;;;;;-1:-1:-1;21372:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;21462:28:0;21438:4;21462:28;;;:19;:28;;;;;;;;;21372:126;16496:192;;;;;;;;;;-1:-1:-1;16496:192:0;;;;;:::i;:::-;;:::i;13327:25::-;;;;;;;;;;-1:-1:-1;13327:25:0;;;;-1:-1:-1;;;;;13327:25:0;;;13679:31;;;;;;;;;;-1:-1:-1;13679:31:0;;;;;;;;;;;2222:177;;;;;;;;;;-1:-1:-1;2222:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;2373:18:0;2341:7;2373:18;;;;;;;;;;;;2222:177;5995:148;;;;;;;;;;;;;:::i;16254:172::-;;;;;;;;;;;;;:::i;20544:167::-;;;;;;;;;;-1:-1:-1;20544:167:0;;;;;:::i;:::-;;:::i;21024:135::-;;;;;;;;;;-1:-1:-1;21024:135:0;;;;;:::i;:::-;;:::i;5696:79::-;;;;;;;;;;-1:-1:-1;5761:6:0;;-1:-1:-1;;;;;5761:6:0;5696:79;;1893:104;;;;;;;;;;;;;:::i;13526:58::-;;;;;;;;;;-1:-1:-1;13526:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20904:112;;;;;;;;;;-1:-1:-1;20904:112:0;;;;;:::i;:::-;;:::i;13149:27::-;;;;;;;;;;;;;;;;3828:400;;;;;;;;;;-1:-1:-1;3828:400:0;;;;;:::i;:::-;;:::i;2407:216::-;;;;;;;;;;-1:-1:-1;2407:216:0;;;;;:::i;:::-;;:::i;13717:22::-;;;;;;;;;;-1:-1:-1;13717:22:0;;;;;;;;;;;16103:143;;;;;;;;;;;;;:::i;20227:132::-;;;;;;;;;;-1:-1:-1;20227:132:0;;;;;:::i;:::-;;:::i;20719:177::-;;;;;;;;;;-1:-1:-1;20719:177:0;;;;;:::i;:::-;;:::i;17259:308::-;;;;;;;;;;-1:-1:-1;17259:308:0;;;;;:::i;:::-;;:::i;12598:296::-;;;;;;;;;;-1:-1:-1;12598:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12598:296:0;;;;;;;;;;;-1:-1:-1;;;12598:296:0;;;;;-1:-1:-1;;;12598:296:0;;;;;;;;;4526:4:1;4557:15;;;4539:34;;4609:15;;;4604:2;4589:18;;4582:43;4661:15;;;4641:18;;;4634:43;;;;4713:15;;;4708:2;4693:18;;4686:43;4766:15;;;4760:3;4745:19;;4738:44;4819:15;;4813:3;4798:19;;4791:44;4872:15;;4866:3;4851:19;;4844:44;4925:15;;;4919:3;4904:19;;4897:44;4503:3;4488:19;12598:296:0;4205:742:1;21167:197:0;;;;;;;;;;-1:-1:-1;21167:197:0;;;;;:::i;:::-;;:::i;2631:201::-;;;;;;;;;;-1:-1:-1;2631:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2797:18:0;;;2765:7;2797:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2631:201;20367:169;;;;;;;;;;-1:-1:-1;20367:169:0;;;;;:::i;:::-;;:::i;6151:281::-;;;;;;;;;;-1:-1:-1;6151:281:0;;;;;:::i;:::-;;:::i;13591:42::-;;;;;;;;;;-1:-1:-1;13591:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13233;;;;;;;;;;;;;;;1785:100;1839:13;1872:5;1865:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1785:100;:::o;2840:210::-;2959:4;2981:39;1319:10;3004:7;3013:6;2981:8;:39::i;:::-;-1:-1:-1;3038:4:0;2840:210;;;;;:::o;16696:555::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;;;;;;;;;16895:3:::1;16879:13;2194:12:::0;;;2106:108;16879:13:::1;:19;;;;:::i;:::-;16869:4;16856:9;16840:13;2194:12:::0;;;2106:108;16840:13:::1;:25;;;;:::i;:::-;16839:34;;;;:::i;:::-;16838:61;;16816:146;;;::::0;-1:-1:-1;;;16816:146:0;;7054:2:1;16816:146:0::1;::::0;::::1;7036:21:1::0;7093:2;7073:18;;;7066:30;7132:34;7112:18;;;7105:62;-1:-1:-1;;;7183:18:1;;;7176:33;7226:19;;16816:146:0::1;6852:399:1::0;16816:146:0::1;17053:3;17037:13;2194:12:::0;;;2106:108;17037:13:::1;:19;;;;:::i;:::-;17027:4;17013:10;16997:13;2194:12:::0;;;2106:108;16997:13:::1;:26;;;;:::i;:::-;16996:35;;;;:::i;:::-;16995:62;;16973:148;;;::::0;-1:-1:-1;;;16973:148:0;;7458:2:1;16973:148:0::1;::::0;::::1;7440:21:1::0;7497:2;7477:18;;;7470:30;7536:34;7516:18;;;7509:62;-1:-1:-1;;;7587:18:1;;;7580:34;7631:19;;16973:148:0::1;7256:400:1::0;16973:148:0::1;17177:4;17164:9;17148:13;2194:12:::0;;;2106:108;17148:13:::1;:25;;;;:::i;:::-;17147:34;;;;:::i;:::-;17132:12;:49:::0;17239:4:::1;17225:10:::0;17209:13:::1;2194:12:::0;;;2106:108;17209:13:::1;:26;;;;:::i;:::-;17208:35;;;;:::i;:::-;17192:13;:51:::0;-1:-1:-1;;16696:555:0:o;3058:454::-;3198:4;3215:36;3225:6;3233:9;3244:6;3215:9;:36::i;:::-;3262:220;3285:6;1319:10;3333:138;3389:6;3333:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3333:19:0;;;;;;:11;:19;;;;;;;;1319:10;3333:33;;;;;;;;;;:37;:138::i;:::-;3262:8;:220::i;:::-;-1:-1:-1;3500:4:0;3058:454;;;;;;:::o;17575:960::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;17821:5:::1;:40:::0;;-1:-1:-1;;17872:40:0;17821::::1;;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;17872:40:0;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;17923:28:0::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18070:15;::::1;::::0;::::1;::::0;17996:58:::1;::::0;18033:21;;::::1;::::0;::::1;::::0;17996;::::1;;:58;:::i;:::-;:89;;;;:::i;:::-;17962:5;:123:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;18098:42:0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;18204:30:0;-1:-1:-1;;;18151:42:0;;::::1;::::0;::::1;-1:-1:-1::0;;18204:30:0;;;;;-1:-1:-1;;;18204:30:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18356:16;::::1;::::0;::::1;::::0;18280:60:::1;::::0;18318:22;;::::1;::::0;::::1;::::0;18280;;::::1;;:60;:::i;:::-;:92;;;;:::i;:::-;18245:5;:127:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;18245:127:0::1;-1:-1:-1::0;;18245:127:0;::::1;::::0;::::1;::::0;;;18413:2:::1;18391:18:::0;;;;;;;;;:24:::1;;18383:66;;;::::0;-1:-1:-1;;;18383:66:0;;8072:2:1;18383:66:0::1;::::0;::::1;8054:21:1::0;8111:2;8091:18;;;8084:30;8150:31;8130:18;;;8123:59;8199:18;;18383:66:0::1;7870:353:1::0;18383:66:0::1;18468:5;:19:::0;18491:2:::1;-1:-1:-1::0;;;18468:19:0;;::::1;;;:25;;18460:67;;;::::0;-1:-1:-1;;;18460:67:0;;8072:2:1;18460:67:0::1;::::0;::::1;8054:21:1::0;8111:2;8091:18;;;8084:30;8150:31;8130:18;;;8123:59;8199:18;;18460:67:0::1;7870:353:1::0;18460:67:0::1;17575:960:::0;;;;;;:::o;3520:300::-;1319:10;3635:4;3729:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3729:34:0;;;;;;;;;;3635:4;;3657:133;;3707:7;;3729:50;;3768:10;3729:38;:50::i;16496:192::-;5908:6;;16605:4;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;16627:19:0::1;:31:::0;;;16676:4:::1;5978:1;16496:192:::0;;;:::o;5995:148::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;6086:6:::1;::::0;6065:40:::1;::::0;6102:1:::1;::::0;-1:-1:-1;;;;;6086:6:0::1;::::0;6065:40:::1;::::0;6102:1;;6065:40:::1;6116:6;:19:::0;;-1:-1:-1;;;;;;6116:19:0::1;::::0;;5995:148::o;16254:172::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;2194:12;;16308::::1;:28:::0;2194:12;;16347:13:::1;:29:::0;2194:12;;16387:15:::1;:31:::0;16254:172::o;20544:167::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20657:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20657:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20544:167::o;21024:135::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;21116:8:::1;-1:-1:-1::0;;;;;21109:25:0::1;;21135:7;5761:6:::0;;-1:-1:-1;;;;;5761:6:0;;5696:79;21135:7:::1;21109:42;::::0;-1:-1:-1;;;;;;21109:42:0::1;::::0;;;;;;-1:-1:-1;;;;;8420:32:1;;;21109:42:0::1;::::0;::::1;8402:51:1::0;8469:18;;;8462:34;;;8375:18;;21109:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21024:135:::0;;:::o;1893:104::-;1949:13;1982:7;1975:14;;;;;:::i;20904:112::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;5761:6;;20972:36:::1;::::0;-1:-1:-1;;;;;5761:6:0;;;;20972:36;::::1;;;::::0;20998:9;;20972:36:::1;::::0;;;20998:9;5761:6;20972:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20904:112:::0;:::o;3828:400::-;3948:4;3970:228;1319:10;4020:7;4042:145;4099:15;4042:145;;;;;;;;;;;;;;;;;1319:10;4042:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4042:34:0;;;;;;;;;;;;:38;:145::i;2407:216::-;2529:4;2551:42;1319:10;2575:9;2586:6;2551:9;:42::i;16103:143::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;16156:9:::1;:16:::0;;-1:-1:-1;;16183:18:0;;;;;16222:16:::1;:12;16237:1;16222:16;:::i;:::-;16212:7;:26:::0;16103:143::o;20227:132::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20312:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;20312:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20227:132::o;20719:177::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;20812:13:::1;-1:-1:-1::0;;;;;20804:21:0::1;:4;-1:-1:-1::0;;;;;20804:21:0::1;;;20796:57;;;::::0;-1:-1:-1;;;20796:57:0;;9092:2:1;20796:57:0::1;::::0;::::1;9074:21:1::0;9131:2;9111:18;;;9104:30;9170:25;9150:18;;;9143:53;9213:18;;20796:57:0::1;8890:347:1::0;20796:57:0::1;-1:-1:-1::0;;;;;20864:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:24;;-1:-1:-1;;20864:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20719:177::o;17259:308::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;17426:3:::1;17410:13;2194:12:::0;;;2106:108;17410:13:::1;:19;;;;:::i;:::-;17400:4;17383:13;17367;2194:12:::0;;;2106:108;17367:13:::1;:29;;;;:::i;:::-;17366:38;;;;:::i;:::-;17365:65;;17343:149;;;::::0;-1:-1:-1;;;17343:149:0;;9444:2:1;17343:149:0::1;::::0;::::1;9426:21:1::0;9483:2;9463:18;;;9456:30;9522:34;9502:18;;;9495:62;-1:-1:-1;;;9573:18:1;;;9566:32;9615:19;;17343:149:0::1;9242:398:1::0;17343:149:0::1;17555:4;17538:13;17522;2194:12:::0;;;2106:108;17522:13:::1;:29;;;;:::i;:::-;17521:38;;;;:::i;:::-;17503:15;:56:::0;-1:-1:-1;17259:308:0:o;21167:197::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;21287:15:::1;:34:::0;;-1:-1:-1;;;;;21287:34:0;;::::1;-1:-1:-1::0;;;;;;21287:34:0;;::::1;;::::0;;;21332:10:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;21167:197::o;20367:169::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20482:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:46;;-1:-1:-1;;20482:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20367:169::o;6151:281::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6254:22:0;::::1;6232:110;;;::::0;-1:-1:-1;;;6232:110:0;;9847:2:1;6232:110:0::1;::::0;::::1;9829:21:1::0;9886:2;9866:18;;;9859:30;9925:34;9905:18;;;9898:62;-1:-1:-1;;;9976:18:1;;;9969:36;10022:19;;6232:110:0::1;9645:402:1::0;6232:110:0::1;6379:6;::::0;6358:38:::1;::::0;-1:-1:-1;;;;;6358:38:0;;::::1;::::0;6379:6:::1;::::0;6358:38:::1;::::0;6379:6:::1;::::0;6358:38:::1;6407:6;:17:::0;;-1:-1:-1;;;;;;6407:17:0::1;-1:-1:-1::0;;;;;6407:17:0;;;::::1;::::0;;;::::1;::::0;;6151:281::o;26818:181::-;26876:7;;26908:5;26912:1;26908;:5;:::i;:::-;26896:17;;26937:1;26932;:6;;26924:46;;;;-1:-1:-1;;;26924:46:0;;10254:2:1;26924:46:0;;;10236:21:1;10293:2;10273:18;;;10266:30;10332:29;10312:18;;;10305:57;10379:18;;26924:46:0;10052:351:1;4953:220:0;-1:-1:-1;;;;;5081:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5133:32;;1915:25:1;;;5133:32:0;;1888:18:1;5133:32:0;;;;;;;;4953:220;;;:::o;22879:3908::-;23016:11;23012:102;;23044:37;23060:6;23068:9;23079:1;23044:15;:37::i;23012:102::-;5761:6;;-1:-1:-1;;;;;23130:17:0;;;5761:6;;23130:17;;;;:41;;-1:-1:-1;5761:6:0;;-1:-1:-1;;;;;23151:20:0;;;5761:6;;23151:20;;23130:41;:56;;;;-1:-1:-1;23176:10:0;;;;;;;23175:11;23130:56;23126:1386;;;23203:23;23229:111;23266:6;23291:9;23319:6;23229:18;:111::i;:::-;23360:9;;23203:137;;-1:-1:-1;23360:9:0;;23355:233;;-1:-1:-1;;;;;23420:27:0;;;;;;:19;:27;;;;;;;;;:86;;-1:-1:-1;;;;;;23476:30:0;;;;;;:19;:30;;;;;;;;23420:86;23390:182;;;;-1:-1:-1;;;23390:182:0;;10610:2:1;23390:182:0;;;10592:21:1;10649:2;10629:18;;;10622:30;-1:-1:-1;;;10668:18:1;;;10661:52;10730:18;;23390:182:0;10408:346:1;23390:182:0;-1:-1:-1;;;;;23624:18:0;;;;;;:10;:18;;;;;;;;:82;;;;-1:-1:-1;;;;;;23664:42:0;;;;;;:31;:42;;;;;;;;23663:43;23624:82;23602:505;;;23759:12;;23749:6;:22;;23741:63;;;;-1:-1:-1;;;23741:63:0;;10961:2:1;23741:63:0;;;10943:21:1;11000:2;10980:18;;;10973:30;11039;11019:18;;;11012:58;11087:18;;23741:63:0;10759:352:1;23741:63:0;23602:505;;;-1:-1:-1;;;;;23848:21:0;;;;;;:10;:21;;;;;;;;:82;;;;-1:-1:-1;;;;;;23891:39:0;;;;;;:31;:39;;;;;;;;23890:40;23848:82;23826:281;;;24005:13;;23995:6;:23;;23965:126;;;;-1:-1:-1;;;23965:126:0;;11318:2:1;23965:126:0;;;11300:21:1;11357:2;11337:18;;;11330:30;11396:31;11376:18;;;11369:59;11445:18;;23965:126:0;11116:353:1;23965:126:0;-1:-1:-1;;;;;24128:37:0;;;;;;:26;:37;;;;;;;;24123:220;;24249:15;;-1:-1:-1;;;;;2373:18:0;;2341:7;2373:18;;;;;;;;;;;24216:29;;:6;:29;:::i;:::-;:48;;24186:141;;;;-1:-1:-1;;;24186:141:0;;11676:2:1;24186:141:0;;;11658:21:1;11715:2;11695:18;;;11688:30;-1:-1:-1;;;11734:18:1;;;11727:49;11793:18;;24186:141:0;11474:343:1;24186:141:0;24382:6;-1:-1:-1;;;;;24363:25:0;:15;-1:-1:-1;;;;;24363:25:0;;24359:142;;24409:51;24425:9;24436:15;24453:6;24409:15;:51::i;:::-;24479:7;22879:3908;;;:::o;24359:142::-;23188:1324;23126:1386;24573:4;24524:28;2373:18;;;;;;;;;;;24629:19;;24605:43;;;;;;;24679:35;;-1:-1:-1;24703:11:0;;;;;;;24679:35;:63;;;;-1:-1:-1;24732:10:0;;;;;;;24731:11;24679:63;:101;;;;-1:-1:-1;;;;;;24759:21:0;;;;;;:10;:21;;;;;;;;24679:101;:146;;;;-1:-1:-1;;;;;;24798:27:0;;;;;;:19;:27;;;;;;;;24797:28;24679:146;:194;;;;-1:-1:-1;;;;;;24843:30:0;;;;;;:19;:30;;;;;;;;24842:31;24679:194;24661:326;;;24900:10;:17;;-1:-1:-1;;24900:17:0;;;;;24932:10;:8;:10::i;:::-;24957;:18;;-1:-1:-1;;24957:18:0;;;24661:326;25015:10;;-1:-1:-1;;;;;25040:27:0;;24999:12;25040:27;;;:19;:27;;;;;;25015:10;;;;;;;25014:11;;25040:27;;:61;;-1:-1:-1;;;;;;25071:30:0;;;;;;:19;:30;;;;;;;;25040:61;25036:109;;;-1:-1:-1;25128:5:0;25036:109;25161:7;25157:1568;;;25185:12;25235:7;;25220:12;:22;25216:1358;;;25270:23;25289:3;25270:14;:6;25281:2;25270:10;:14::i;:::-;:18;;:23::i;:::-;25263:30;-1:-1:-1;25348:2:0;25335:9;25263:30;25342:2;25335:9;:::i;:::-;25334:16;;;;:::i;:::-;25312:18;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;25398:2:0;;-1:-1:-1;25386:8:0;:4;25393:1;25386:8;:::i;:::-;25385:15;;;;:::i;:::-;25369:12;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;25216:1358:0;;-1:-1:-1;25216:1358:0;;-1:-1:-1;;;;;25426:21:0;;;;;;:10;:21;;;;;;;;:48;;;;-1:-1:-1;25451:5:0;:19;-1:-1:-1;;;25451:19:0;;;;:23;;25426:48;25422:1152;;;25513:5;:19;25502:40;;25538:3;;25502:31;;:6;;-1:-1:-1;;;25513:19:0;;;;25502:10;:31::i;:40::-;25659:5;:19;25495:47;;-1:-1:-1;25659:19:0;-1:-1:-1;;;25659:19:0;;;;;25605:29;;-1:-1:-1;;;25612:22:0;;;;25495:47;25605:29;:::i;:::-;25604:74;;;;:::i;:::-;25561:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;25795:5:0;:19;;-1:-1:-1;;;25795:19:0;;;;;25741:29;;25748:22;;;;;25741:4;:29;:::i;:::-;25740:74;;;;:::i;:::-;25697:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;25867:10:0;;-1:-1:-1;;;;;25867:10:0;;;25833:21;2373:18;;;;;;;;;;;;25902;;;;;:10;:18;;;;;;;;25901:19;:40;;;;;25940:1;25924:13;:17;25901:40;25897:95;;;25966:7;;;;;22879:3908;;;:::o;25897:95::-;26054:5;:19;;-1:-1:-1;;;26054:19:0;;;;;26027:23;;-1:-1:-1;;;26034:16:0;;;;26027:4;:23;:::i;:::-;26026:47;;;;:::i;:::-;26010:12;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;25422:1152:0;;-1:-1:-1;;25422:1152:0;;-1:-1:-1;;;;;26099:18:0;;;;;;:10;:18;;;;;;;;:44;;;;-1:-1:-1;26121:5:0;:18;;;:22;;26099:44;26095:479;;;26182:5;:18;26171:39;;26206:3;;26171:30;;:6;;26182:18;;26171:10;:30::i;:39::-;26326:5;:18;26164:46;;-1:-1:-1;26326:18:0;;;;;26273:28;;26280:21;;;;;26164:46;26273:28;:::i;:::-;26272:72;;;;:::i;:::-;26229:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;26460:5:0;:18;;;;;;26407:28;;26460:18;26414:21;;;;26407:4;:28;:::i;:::-;26406:72;;;;:::i;:::-;26363:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;26540:5:0;:18;;;;;;26514:22;;26521:15;;;;;26514:4;:22;:::i;:::-;26513:45;;;;:::i;:::-;26497:12;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;26095:479:0;26594:8;;26590:93;;26623:44;26639:6;26655:4;26662;26623:15;:44::i;:::-;26699:14;26709:4;26699:14;;:::i;:::-;;;25170:1555;25157:1568;26737:42;26753:6;26761:9;26772:6;26737:15;:42::i;27151:226::-;27271:7;27307:12;27299:6;;;;27291:29;;;;-1:-1:-1;;;27291:29:0;;;;;;;;:::i;:::-;-1:-1:-1;27331:9:0;27343:5;27347:1;27343;:5;:::i;:::-;27331:17;27151:226;-1:-1:-1;;;;;27151:226:0:o;4236:385::-;4388:108;4424:6;4388:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4388:17:0;;:9;:17;;;;;;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;4368:17:0;;;:9;:17;;;;;;;;;;;:128;;;;4530:20;;;;;;;:32;;4555:6;4530:24;:32::i;:::-;-1:-1:-1;;;;;4507:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;4578:35;1915:25:1;;;4507:20:0;;4578:35;;;;;;1888:18:1;4578:35:0;1769:177:1;21506:364:0;-1:-1:-1;;;;;2373:18:0;;21640:7;2373:18;;;;;;;;;;;21684:6;-1:-1:-1;21664:50:0;;;;-1:-1:-1;;;;;;21694:20:0;;;;;;:10;:20;;;;;;;;21664:50;21660:179;;;-1:-1:-1;;;;;21735:39:0;;;;;;:31;:39;;;;;;;;21731:97;;;-1:-1:-1;21810:1:0;21795:17;;21731:97;-1:-1:-1;21856:6:0;;21506:364;-1:-1:-1;;21506:364:0:o;18543:1676::-;18631:4;18582:28;2373:18;;;;;;;;;;;18582:55;;18648:14;18707:12;;18686:18;;18665;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;18648:71;-1:-1:-1;18730:12:0;18759:25;;;:40;;-1:-1:-1;18788:11:0;;18759:40;18755:79;;;18816:7;;;18543:1676::o;18755:79::-;18873:19;;:24;;18895:2;18873:24;:::i;:::-;18850:20;:47;18846:127;;;18937:19;;:24;;18959:2;18937:24;:::i;:::-;18914:47;;18846:127;19034:23;19141:1;19119:6;19084:18;;19061:20;:41;;;;:::i;:::-;19060:65;;;;:::i;:::-;:82;;;;:::i;:::-;19034:108;-1:-1:-1;19153:26:0;19182:41;:20;19034:108;19182:24;:41::i;:::-;19153:70;-1:-1:-1;19264:21:0;19298:36;19153:70;19298:16;:36::i;:::-;19347:18;19368:44;:21;19394:17;19368:25;:44::i;:::-;19347:65;;19425:23;19451:70;19504:6;19451:34;19466:18;;19451:10;:14;;:34;;;;:::i;:70::-;19425:96;;19532:17;19552:40;19585:6;19552:28;19567:12;;19552:10;:14;;:28;;;;:::i;:40::-;19532:60;-1:-1:-1;19603:23:0;19643:27;19532:60;19643:15;:27;:::i;:::-;19629:42;;:10;:42;:::i;:::-;19705:1;19684:18;:22;;;19717:18;:22;;;19750:12;:16;19603:68;-1:-1:-1;19783:19:0;;;;;:42;;;19824:1;19806:15;:19;19783:42;19779:192;;;19842:46;19855:15;19872;19842:12;:46::i;:::-;19908:51;;;12126:25:1;;;12182:2;12167:18;;12160:34;;;19908:51:0;;12099:18:1;19908:51:0;;;;;;;19779:192;20005:10;;-1:-1:-1;;;;;20005:10:0;20044:39;20068:15;20044:21;:39;:::i;:::-;19997:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20132:15:0;;20124:87;;19983:116;;-1:-1:-1;;;;;;20132:15:0;;20175:21;;20124:87;;;;20175:21;20132:15;20124:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;18543:1676:0:o;27385:250::-;27443:7;27467:6;27463:47;;-1:-1:-1;27497:1:0;27490:8;;27463:47;27522:9;27534:5;27538:1;27534;:5;:::i;:::-;27522:17;-1:-1:-1;27567:1:0;27558:5;27562:1;27522:17;27558:5;:::i;:::-;:10;27550:56;;;;-1:-1:-1;;;27550:56:0;;12617:2:1;27550:56:0;;;12599:21:1;12656:2;12636:18;;;12629:30;12695:34;12675:18;;;12668:62;-1:-1:-1;;;12746:18:1;;;12739:31;12787:19;;27550:56:0;12415:397:1;27643:132:0;27701:7;27728:39;27732:1;27735;27728:39;;;;;;;;;;;;;;;;;:3;:39::i;27007:136::-;27065:7;27092:43;27096:1;27099;27092:43;;;;;;;;;;;;;;;;;:3;:43::i;21878:550::-;22024:16;;;22038:1;22024:16;;;;;;;;22000:21;;22024:16;;;;;;;;;;-1:-1:-1;22024:16:0;22000:40;;22069:4;22051;22056:1;22051:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22051:23:0;;;-1:-1:-1;;;;;22051:23:0;;;;;22095:6;-1:-1:-1;;;;;22095:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22085:4;22090:1;22085:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22085:23:0;;;-1:-1:-1;;;;;22085:23:0;;;;;22121:49;22138:4;22153:6;22162:7;22121:8;:49::i;:::-;22209:211;;-1:-1:-1;;;22209:211:0;;-1:-1:-1;;;;;22209:6:0;:57;;;;:211;;22281:7;;22303:1;;22347:4;;22374;;22394:15;;22209:211;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22436:435;22580:49;22597:4;22612:6;22621:7;22580:8;:49::i;:::-;22672:191;;-1:-1:-1;;;22672:191:0;;22735:4;22672:191;;;14663:34:1;;;14713:18;;;14706:34;;;22777:1:0;14756:18:1;;;14749:34;;;14799:18;;;14792:34;14842:19;;;14835:44;22837:15:0;14895:19:1;;;14888:35;22672:6:0;-1:-1:-1;;;;;22672:22:0;;;;22702:9;;14597:19:1;;22672:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22436:435;;:::o;27783:223::-;27903:7;27938:12;27931:5;27923:28;;;;-1:-1:-1;;;27923:28:0;;;;;;;;:::i;:::-;-1:-1:-1;27962:9:0;27974:5;27978:1;27974;:5;:::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1516:248::-;1584:6;1592;1645:2;1633:9;1624:7;1620:23;1616:32;1613:52;;;1661:1;1658;1651:12;1613:52;-1:-1:-1;;1684:23:1;;;1754:2;1739:18;;;1726:32;;-1:-1:-1;1516:248:1:o;1951:456::-;2028:6;2036;2044;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;2152:9;2139:23;2171:31;2196:5;2171:31;:::i;:::-;2221:5;-1:-1:-1;2278:2:1;2263:18;;2250:32;2291:33;2250:32;2291:33;:::i;:::-;1951:456;;2343:7;;-1:-1:-1;;;2397:2:1;2382:18;;;;2369:32;;1951:456::o;2601:156::-;2667:20;;2727:4;2716:16;;2706:27;;2696:55;;2747:1;2744;2737:12;2762:535;2854:6;2862;2870;2878;2886;2894;2947:3;2935:9;2926:7;2922:23;2918:33;2915:53;;;2964:1;2961;2954:12;2915:53;2987:27;3004:9;2987:27;:::i;:::-;2977:37;;3033:36;3065:2;3054:9;3050:18;3033:36;:::i;:::-;3023:46;;3088:36;3120:2;3109:9;3105:18;3088:36;:::i;:::-;3078:46;;3143:36;3175:2;3164:9;3160:18;3143:36;:::i;:::-;3133:46;;3198:37;3230:3;3219:9;3215:19;3198:37;:::i;:::-;3188:47;;3254:37;3286:3;3275:9;3271:19;3254:37;:::i;:::-;3244:47;;2762:535;;;;;;;;:::o;3510:180::-;3569:6;3622:2;3610:9;3601:7;3597:23;3593:32;3590:52;;;3638:1;3635;3628:12;3590:52;-1:-1:-1;3661:23:1;;3510:180;-1:-1:-1;3510:180:1:o;3695:118::-;3781:5;3774:13;3767:21;3760:5;3757:32;3747:60;;3803:1;3800;3793:12;3818:382;3883:6;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3999:9;3986:23;4018:31;4043:5;4018:31;:::i;:::-;4068:5;-1:-1:-1;4125:2:1;4110:18;;4097:32;4138:30;4097:32;4138:30;:::i;:::-;4187:7;4177:17;;;3818:382;;;;;:::o;4952:388::-;5020:6;5028;5081:2;5069:9;5060:7;5056:23;5052:32;5049:52;;;5097:1;5094;5087:12;5049:52;5136:9;5123:23;5155:31;5180:5;5155:31;:::i;:::-;5205:5;-1:-1:-1;5262:2:1;5247:18;;5234:32;5275:33;5234:32;5275:33;:::i;5579:380::-;5658:1;5654:12;;;;5701;;;5722:61;;5776:4;5768:6;5764:17;5754:27;;5722:61;5829:2;5821:6;5818:14;5798:18;5795:38;5792:161;;;5875:10;5870:3;5866:20;5863:1;5856:31;5910:4;5907:1;5900:15;5938:4;5935:1;5928:15;5792:161;;5579:380;;;:::o;5964:356::-;6166:2;6148:21;;;6185:18;;;6178:30;6244:34;6239:2;6224:18;;6217:62;6311:2;6296:18;;5964:356::o;6325:127::-;6386:10;6381:3;6377:20;6374:1;6367:31;6417:4;6414:1;6407:15;6441:4;6438:1;6431:15;6457:217;6497:1;6523;6513:132;;6567:10;6562:3;6558:20;6555:1;6548:31;6602:4;6599:1;6592:15;6630:4;6627:1;6620:15;6513:132;-1:-1:-1;6659:9:1;;6457:217::o;6679:168::-;6719:7;6785:1;6781;6777:6;6773:14;6770:1;6767:21;6762:1;6755:9;6748:17;6744:45;6741:71;;;6792:18;;:::i;:::-;-1:-1:-1;6832:9:1;;6679:168::o;7661:204::-;7699:3;7735:4;7732:1;7728:12;7767:4;7764:1;7760:12;7802:3;7796:4;7792:14;7787:3;7784:23;7781:49;;;7810:18;;:::i;:::-;7846:13;;7661:204;-1:-1:-1;;;7661:204:1:o;8507:245::-;8574:6;8627:2;8615:9;8606:7;8602:23;8598:32;8595:52;;;8643:1;8640;8633:12;8595:52;8675:9;8669:16;8694:28;8716:5;8694:28;:::i;8757:128::-;8797:3;8828:1;8824:6;8821:1;8818:13;8815:39;;;8834:18;;:::i;:::-;-1:-1:-1;8870:9:1;;8757:128::o;11822:125::-;11862:4;11890:1;11887;11884:8;11881:34;;;11895:18;;:::i;:::-;-1:-1:-1;11932:9:1;;11822:125::o;12949:127::-;13010:10;13005:3;13001:20;12998:1;12991:31;13041:4;13038:1;13031:15;13065:4;13062:1;13055:15;13081:251;13151:6;13204:2;13192:9;13183:7;13179:23;13175:32;13172:52;;;13220:1;13217;13210:12;13172:52;13252:9;13246:16;13271:31;13296:5;13271:31;:::i;13337:980::-;13599:4;13647:3;13636:9;13632:19;13678:6;13667:9;13660:25;13704:2;13742:6;13737:2;13726:9;13722:18;13715:34;13785:3;13780:2;13769:9;13765:18;13758:31;13809:6;13844;13838:13;13875:6;13867;13860:22;13913:3;13902:9;13898:19;13891:26;;13952:2;13944:6;13940:15;13926:29;;13973:1;13983:195;13997:6;13994:1;13991:13;13983:195;;;14062:13;;-1:-1:-1;;;;;14058:39:1;14046:52;;14153:15;;;;14118:12;;;;14094:1;14012:9;13983:195;;;-1:-1:-1;;;;;;;14234:32:1;;;;14229:2;14214:18;;14207:60;-1:-1:-1;;;14298:3:1;14283:19;14276:35;14195:3;13337:980;-1:-1:-1;;;13337:980:1:o;14934:306::-;15022:6;15030;15038;15091:2;15079:9;15070:7;15066:23;15062:32;15059:52;;;15107:1;15104;15097:12;15059:52;15136:9;15130:16;15120:26;;15186:2;15175:9;15171:18;15165:25;15155:35;;15230:2;15219:9;15215:18;15209:25;15199:35;;14934:306;;;;;:::o
Swarm Source
ipfs://6509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc5
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)