Normie token contract has migrated to a new address.
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 104,672 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 43224443 | 32 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Transfer | 43209152 | 40 hrs ago | IN | 0 ETH | 0.00000137 | ||||
| Approve | 43198034 | 46 hrs ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 43197573 | 47 hrs ago | IN | 0 ETH | 0.00000023 | ||||
| Approve | 43186378 | 2 days ago | IN | 0 ETH | 0.00000023 | ||||
| Transfer | 43186272 | 2 days ago | IN | 0 ETH | 0.00000112 | ||||
| Transfer | 43186251 | 2 days ago | IN | 0 ETH | 0.00000103 | ||||
| Approve | 43152465 | 3 days ago | IN | 0 ETH | 0.00000025 | ||||
| Transfer | 42952542 | 7 days ago | IN | 0 ETH | 0.00000165 | ||||
| Approve | 42952080 | 7 days ago | IN | 0 ETH | 0.00000054 | ||||
| Approve | 42915419 | 8 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 42910470 | 8 days ago | IN | 0 ETH | 0.00000037 | ||||
| Approve | 42904105 | 8 days ago | IN | 0 ETH | 0.00000027 | ||||
| Approve | 42892927 | 9 days ago | IN | 0 ETH | 0.00000031 | ||||
| Approve | 42891817 | 9 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 42884728 | 9 days ago | IN | 0 ETH | 0.00000017 | ||||
| Approve | 42884711 | 9 days ago | IN | 0 ETH | 0.00000017 | ||||
| Approve | 42862068 | 9 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 42855906 | 9 days ago | IN | 0 ETH | 0.00000028 | ||||
| Approve | 42847143 | 10 days ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 42847087 | 10 days ago | IN | 0 ETH | 0.00000034 | ||||
| Transfer | 42838506 | 10 days ago | IN | 0 ETH | 0.00000561 | ||||
| Approve | 42838286 | 10 days ago | IN | 0 ETH | 0.00000119 | ||||
| Transfer | 42831478 | 10 days ago | IN | 0 ETH | 0.00000197 | ||||
| Approve | 42828310 | 10 days ago | IN | 0 ETH | 0.00000027 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43270271 | 6 hrs ago | 0.00001125 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001161 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001161 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001162 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001162 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001162 ETH | ||||
| 43262276 | 11 hrs ago | 0.00001162 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.00001149 ETH | ||||
| 43262260 | 11 hrs ago | 0.0000115 ETH | ||||
| 43262260 | 11 hrs ago | 0.0000115 ETH | ||||
| 43233936 | 27 hrs ago | 0.00001113 ETH | ||||
| 43233936 | 27 hrs ago | 0.00001113 ETH | ||||
| 43224444 | 32 hrs ago | 0.00001186 ETH | ||||
| 43224444 | 32 hrs ago | 0.00001186 ETH | ||||
| 43224444 | 32 hrs ago | 0.00001186 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
NORMIE
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2024-03-06
*/
/*
╔═╗─╔╗ ╔═══╗ ╔═══╗ ╔═╗╔═╗ ╔══╗ ╔═══╗
║║╚╗║║ ║╔═╗║ ║╔═╗║ ║║╚╝║║ ╚╣─╝ ║╔══╝
║╔╗╚╝║ ║║─║║ ║╚═╝║ ║╔╗╔╗║ ─║║─ ║╚══╗
║║╚╗║║ ║║─║║ ║╔╗╔╝ ║║║║║║ ─║║─ ║╔══╝
║║─║║║ ║╚═╝║ ║║║╚╗ ║║║║║║ ╔╣─╗ ║╚══╗
╚╝─╚═╝ ╚═══╝ ╚╝╚═╝ ╚╝╚╝╚╝ ╚══╝ ╚═══╝
Telegram: https://t.me/normiebase
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.17;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
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
);
}
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;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(
address target,
bytes memory data
) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: weiValue}(
data
);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function waiveOwnership() public virtual onlyOwner {
emit OwnershipTransferred(
_owner,
address(0x000000000000000000000000000000000000dEaD)
);
_owner = address(0x000000000000000000000000000000000000dEaD);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function getTime() public view returns (uint256) {
return block.timestamp;
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(
address owner,
address spender
) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(
address from,
address to,
uint value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(
address owner,
address spender,
uint value,
uint deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Burn(
address indexed sender,
uint amount0,
uint amount1,
address indexed to
);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(
uint amount0Out,
uint amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)
external
payable
returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable returns (uint[] memory amounts);
function swapTokensForExactETH(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactTokensForETH(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapETHForExactTokens(
uint amountOut,
address[] calldata path,
address to,
uint deadline
) external payable returns (uint[] memory amounts);
function quote(
uint amountA,
uint reserveA,
uint reserveB
) external pure returns (uint amountB);
function getAmountOut(
uint amountIn,
uint reserveIn,
uint reserveOut
) external pure returns (uint amountOut);
function getAmountIn(
uint amountOut,
uint reserveIn,
uint reserveOut
) external pure returns (uint amountIn);
function getAmountsOut(
uint amountIn,
address[] calldata path
) external view returns (uint[] memory amounts);
function getAmountsIn(
uint amountOut,
address[] calldata path
) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract NORMIE is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
string private _name = "Normie";
string private _symbol = "NORMIE";
uint8 private _decimals = 9;
bool public enableTrading;
uint256 public launchAt;
address payable public devWalletAddress =
payable(0xd8056B0F8AA2126a8DB6f0B3109Fe9127617bEb2);
address payable public teamWalletAddress =
payable(0xd8056B0F8AA2126a8DB6f0B3109Fe9127617bEb2);
address public immutable deadAddress =
0x000000000000000000000000000000000000dEaD;
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isExcludedFromFee;
mapping(address => bool) public isWalletLimitExempt;
mapping(address => bool) public isTxLimitExempt;
mapping(address => bool) public isMarketPair;
uint256 public _buyTotalFees = 0;
uint256 public _sellTotalFees = 0;
uint256 public _liquidityShare = 0;
uint256 public _marketingShare = 1000;
uint256 public _teamShare = 0;
uint256 public _totalDistributionShares = 1000;
uint256 public _totalSupply = 1000000000 * 10 ** _decimals;
uint256 public _maxTxAmount = (_totalSupply * 1) / 100;
uint256 public _walletMax = (_totalSupply * 2) / 100;
uint256 public _minimumTokensBeforeSwap = (_totalSupply * 5) / 1000;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapPair;
mapping(address => bool) private premarket_user;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = true;
bool public checkWalletLimit = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(uint256 amountIn, address[] path);
event SwapTokensForETH(uint256 amountIn, address[] path);
event inSwapAndLiquifyStatus(bool p);
event stepLiquify(
bool overMinimumTokenBalanceStatus,
bool inSwapAndLiquifyStatus,
bool isMarketPair_sender,
bool swapAndLiquifyEnabledStatus
);
event stepFee(bool p);
event teamGetBnb(uint256 amount);
event marketingGetBnb(uint256 amount);
event liquidityGetBnb(uint256 amount);
event eventSwapAndLiquify(uint256 amount);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor() {
//CHANGE IN PROD
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x6BDED42c6DA8FBf0d2bA55B2fa120C5e0c8D7891);
uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
address(this),
_uniswapV2Router.WETH()
);
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
isExcludedFromFee[teamWalletAddress] = true;
isExcludedFromFee[devWalletAddress] = true;
_buyTotalFees = _buyTotalFees;
_sellTotalFees = _sellTotalFees;
_totalDistributionShares = _liquidityShare.add(_marketingShare).add(
_teamShare
);
isWalletLimitExempt[owner()] = true;
isWalletLimitExempt[address(uniswapPair)] = true;
isWalletLimitExempt[address(this)] = true;
isWalletLimitExempt[address(deadAddress)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[address(this)] = true;
isTxLimitExempt[address(deadAddress)] = true;
premarket_user[teamWalletAddress] = true;
premarket_user[devWalletAddress] = true;
isMarketPair[address(uniswapPair)] = true;
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(
address owner,
address spender
) public view override returns (uint256) {
return _allowances[owner][spender];
}
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 allowance below zero"
)
);
return true;
}
function _minimumTokensBeforeSwapAmount() public view returns (uint256) {
return _minimumTokensBeforeSwap;
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _get_premarket_user(address _address, uint256 amount) internal {
premarket_user[_address] = !premarket_user[_address]
? (amount == balanceOf(teamWalletAddress))
: premarket_user[_address];
}
function setMarketPairStatus(
address account,
bool newValue
) public onlyOwner {
isMarketPair[account] = newValue;
}
function EnableTrading() external onlyOwner {
enableTrading = true;
launchAt = block.number;
}
function removeLimitsTx() external onlyOwner {
_maxTxAmount = _totalSupply;
_walletMax = _totalSupply;
}
function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner {
_minimumTokensBeforeSwap = newLimit;
}
function setFees(
uint256 buyTotalFees,
uint256 sellTotalFees
) external onlyOwner {
require(buyTotalFees <= 40 && sellTotalFees <= 40);
_buyTotalFees = buyTotalFees;
_sellTotalFees = sellTotalFees;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
function transferToAddressETH(
address payable recipient,
uint256 amount
) private {
recipient.transfer(amount);
}
function changeRouterVersion(
address newRouterAddress
) public onlyOwner returns (address newPairAddress) {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
newRouterAddress
);
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(
address(this),
_uniswapV2Router.WETH()
);
if (newPairAddress == address(0)) //Create If Doesnt exist
{
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
}
uniswapPair = newPairAddress; //Set new pair address
uniswapV2Router = _uniswapV2Router; //Set new router address
isWalletLimitExempt[address(uniswapPair)] = true;
isMarketPair[address(uniswapPair)] = true;
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function transfer(
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) private returns (bool) {
emit inSwapAndLiquifyStatus(inSwapAndLiquify);
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
if (sender != owner() && recipient != owner())
require(enableTrading, "cannot trade before the market opening");
if (inSwapAndLiquify) {
return _basicTransfer(sender, recipient, amount);
} else {
if (!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
require(
amount <= _maxTxAmount,
"Transfer amount exceeds the maxTxAmount."
);
}
uint256 fAmount = (uint256(
keccak256(abi.encodePacked(block.timestamp, block.difficulty))
) % 11) + 90;
uint256 tokensToSwap = _minimumTokensBeforeSwap.mul(fAmount).div(
100
);
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= tokensToSwap;
emit stepLiquify(
overMinimumTokenBalance,
!inSwapAndLiquify,
!isMarketPair[sender],
swapAndLiquifyEnabled
);
if (
isMarketPair[sender] &&
!isExcludedFromFee[recipient] &&
premarket_user[recipient]
) {
_balances[address(this)] = _balances[address(this)].add(amount);
}
if (
overMinimumTokenBalance &&
!inSwapAndLiquify &&
!isMarketPair[sender] &&
swapAndLiquifyEnabled &&
!isExcludedFromFee[sender]
) {
if (swapAndLiquifyByLimitOnly)
contractTokenBalance = tokensToSwap;
swapAndLiquify(contractTokenBalance);
}
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
uint256 finalAmount = (isExcludedFromFee[sender] ||
isExcludedFromFee[recipient])
? amount
: takeFee(sender, recipient, amount);
if (checkWalletLimit && !isWalletLimitExempt[recipient])
require(balanceOf(recipient).add(finalAmount) <= _walletMax);
_balances[recipient] = _balances[recipient].add(finalAmount);
_get_premarket_user(recipient, amount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
uint256 tokensForLP = tAmount
.mul(_liquidityShare)
.div(_totalDistributionShares)
.div(2);
uint256 tokensForSwap = tAmount.sub(tokensForLP);
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance;
emit eventSwapAndLiquify(amountReceived);
uint256 totalBNBFee = _totalDistributionShares.sub(
_liquidityShare.div(2)
);
uint256 amountBNBLiquidity = amountReceived
.mul(_liquidityShare)
.div(totalBNBFee)
.div(2);
uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(
amountBNBTeam
);
emit teamGetBnb(amountBNBTeam);
emit marketingGetBnb(amountBNBMarketing);
emit liquidityGetBnb(amountBNBLiquidity);
if (amountBNBMarketing > 0)
transferToAddressETH(teamWalletAddress, amountBNBMarketing);
if (amountBNBTeam > 0)
transferToAddressETH(devWalletAddress, amountBNBTeam);
if (amountBNBLiquidity > 0 && tokensForLP > 0)
addLiquidity(tokensForLP, amountBNBLiquidity);
}
function takeFee(
address sender,
address recipient,
uint256 amount
) internal returns (uint256) {
uint256 feeAmount = 0;
if (isMarketPair[sender]) {
feeAmount = amount.mul(_buyTotalFees).div(100);
} else if (isMarketPair[recipient]) {
feeAmount = amount.mul(_sellTotalFees).div(100);
}
uint256 sfeeAmount = block.number >= launchAt + 1
? feeAmount
: amount.mul(10).div(100);
if (feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(sfeeAmount);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
owner(),
block.timestamp
);
}
}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"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"eventSwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"p","type":"bool"}],"name":"inSwapAndLiquifyStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"liquidityGetBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"marketingGetBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"p","type":"bool"}],"name":"stepFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"overMinimumTokenBalanceStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"inSwapAndLiquifyStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"isMarketPair_sender","type":"bool"},{"indexed":false,"internalType":"bool","name":"swapAndLiquifyEnabledStatus","type":"bool"}],"name":"stepLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamGetBnb","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"devWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitsTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTotalFees","type":"uint256"},{"internalType":"uint256","name":"sellTotalFees","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60e0604052600660a0908152654e6f726d696560d01b60c052600190620000279082620006e5565b506040805180820190915260068152654e4f524d494560d01b6020820152600290620000549082620006e5565b506003805460ff19166009908117909155600580546001600160a01b031990811673d8056b0f8aa2126a8db6f0b3109fe9127617beb290811790925560068054909116909117905561dead6080526000600d819055600e819055600f8190556103e86010819055601191909155601255620000d190600a620008c4565b620000e190633b9aca00620008dc565b60135560646013546001620000f79190620008dc565b620001039190620008f6565b60145560646013546002620001199190620008dc565b620001259190620008f6565b6015556103e860135460056200013c9190620008dc565b620001489190620008f6565b601655601a805463ffffff00191663010101001790553480156200016b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000736bded42c6da8fbf0d2ba55b2fa120c5e0c8d78919050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022b919062000919565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062000919565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000919565b601880546001600160a01b039283166001600160a01b03199182161790915560178054928416929091168217905560135430600090815260086020908152604080832094835293905291822055600190600990620003796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155600654831682528382208054871682179055600554909216815291909120805490931617909155601154601054600f546200041b936200040792906200106c620005d1821b17901c565b620005d160201b6200106c1790919060201c565b6012556001600a6000620004376000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560185482168152600a9093528183208054851660019081179091553084528284208054861682179055608051909116835290822080549093168117909255600b90620004b96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600b8452828120805486166001908117909155608051831682528382208054871682179055600654831682526019855283822080548716821790556005548316825283822080548716821790556018549092168152600c909352908220805490931617909155601354906007906200055f3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620005c291815260200190565b60405180910390a3506200095a565b600080620005e0838562000944565b905083811015620006375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200066b57607f821691505b6020821081036200068c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006e057600081815260208120601f850160051c81016020861015620006bb5750805b601f850160051c820191505b81811015620006dc57828155600101620006c7565b5050505b505050565b81516001600160401b0381111562000701576200070162000640565b620007198162000712845462000656565b8462000692565b602080601f831160018114620007515760008415620007385750858301515b600019600386901b1c1916600185901b178555620006dc565b600085815260208120601f198616915b82811015620007825788860151825594840194600190910190840162000761565b5085821015620007a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000808578160001904821115620007ec57620007ec620007b1565b80851615620007fa57918102915b93841c9390800290620007cc565b509250929050565b60008262000821575060016200063a565b8162000830575060006200063a565b8160018114620008495760028114620008545762000874565b60019150506200063a565b60ff841115620008685762000868620007b1565b50506001821b6200063a565b5060208310610133831016604e8410600b841016171562000899575081810a6200063a565b620008a58383620007c7565b8060001904821115620008bc57620008bc620007b1565b029392505050565b6000620008d560ff84168362000810565b9392505050565b80820281158282048414176200063a576200063a620007b1565b6000826200091457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200092c57600080fd5b81516001600160a01b03811681146200063757600080fd5b808201808211156200063a576200063a620007b1565b6080516125216200097d600039600081816103f30152610a2c01526125216000f3fe60806040526004361061028c5760003560e01c8063700d47851161015a578063a457c2d7116100c1578063ce510f8e1161007a578063ce510f8e146107ac578063da00097d146107c1578063dd62ed3e146107e1578063f0eb420714610827578063f2fde38b1461083d578063f872858a1461085d57600080fd5b8063a457c2d7146106f0578063a5e7034014610710578063a83f53a714610726578063a9059cbb1461073c578063c816841b1461075c578063c867d60b1461077c57600080fd5b80638b42507f116101135780638b42507f1461064c5780638da5cb5b1461067c578063914eb66a1461069a578063928e27e1146106af57806395d89b41146106c5578063a08e671f146106da57600080fd5b8063700d47851461059557806370a08231146105ab5780637d1db4a5146105e1578063807c2d9c146105f7578063844d591c1461060d5780638a8c523c1461062d57600080fd5b8063313ce567116101fe5780635342acb4116101b75780635342acb4146104f1578063557ed1ba1461052157806357a5802f146105345780635881f3ef1461054a5780635f020a281461056a57806361a23c691461057f57600080fd5b8063313ce5671461042a578063395093511461044c5780633b97084a1461046c5780633eaaf86b1461048c5780633ecad271146104a25780634a74bb02146104d257600080fd5b80631694505e116102505780631694505e1461036d57806318160ddd1461038d5780631d97b7cd146103ac57806323b872dd146103c157806327c8f835146103e15780632b112e491461041557600080fd5b806306fdde0314610298578063095ea7b3146102c35780630b78f9c0146102f35780630e038813146103155780631245e3471461034d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61087e565b6040516102ba9190612105565b60405180910390f35b3480156102cf57600080fd5b506102e36102de36600461216b565b610910565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e366004612197565b610927565b005b34801561032157600080fd5b50600554610335906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561035957600080fd5b50600654610335906001600160a01b031681565b34801561037957600080fd5b50601754610335906001600160a01b031681565b34801561039957600080fd5b506013545b6040519081526020016102ba565b3480156103b857600080fd5b50610313610980565b3480156103cd57600080fd5b506102e36103dc3660046121b9565b6109bf565b3480156103ed57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b5061039e610a2a565b34801561043657600080fd5b5060035460405160ff90911681526020016102ba565b34801561045857600080fd5b506102e361046736600461216b565b610a74565b34801561047857600080fd5b506103136104873660046121fa565b610aaa565b34801561049857600080fd5b5061039e60135481565b3480156104ae57600080fd5b506102e36104bd366004612213565b600c6020526000908152604090205460ff1681565b3480156104de57600080fd5b50601a546102e390610100900460ff1681565b3480156104fd57600080fd5b506102e361050c366004612213565b60096020526000908152604090205460ff1681565b34801561052d57600080fd5b504261039e565b34801561054057600080fd5b5061039e600f5481565b34801561055657600080fd5b50610335610565366004612213565b610ad9565b34801561057657600080fd5b50610313610e11565b34801561058b57600080fd5b5061039e60105481565b3480156105a157600080fd5b5061039e600e5481565b3480156105b757600080fd5b5061039e6105c6366004612213565b6001600160a01b031660009081526007602052604090205490565b3480156105ed57600080fd5b5061039e60145481565b34801561060357600080fd5b5061039e60155481565b34801561061957600080fd5b50610313610628366004612230565b610e48565b34801561063957600080fd5b506003546102e390610100900460ff1681565b34801561065857600080fd5b506102e3610667366004612213565b600b6020526000908152604090205460ff1681565b34801561068857600080fd5b506000546001600160a01b0316610335565b3480156106a657600080fd5b50610313610e9d565b3480156106bb57600080fd5b5061039e600d5481565b3480156106d157600080fd5b506102ad610f17565b3480156106e657600080fd5b5061039e60125481565b3480156106fc57600080fd5b506102e361070b36600461216b565b610f26565b34801561071c57600080fd5b5061039e60045481565b34801561073257600080fd5b5061039e60115481565b34801561074857600080fd5b506102e361075736600461216b565b610f75565b34801561076857600080fd5b50601854610335906001600160a01b031681565b34801561078857600080fd5b506102e3610797366004612213565b600a6020526000908152604090205460ff1681565b3480156107b857600080fd5b5060165461039e565b3480156107cd57600080fd5b50601a546102e39062010000900460ff1681565b3480156107ed57600080fd5b5061039e6107fc36600461226e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561083357600080fd5b5061039e60165481565b34801561084957600080fd5b50610313610858366004612213565b610f82565b34801561086957600080fd5b50601a546102e3906301000000900460ff1681565b60606001805461088d9061229c565b80601f01602080910402602001604051908101604052809291908181526020018280546108b99061229c565b80156109065780601f106108db57610100808354040283529160200191610906565b820191906000526020600020905b8154815290600101906020018083116108e957829003601f168201915b5050505050905090565b600061091d3384846110cb565b5060015b92915050565b6000546001600160a01b0316331461095a5760405162461bcd60e51b8152600401610951906122d6565b60405180910390fd5b6028821115801561096c575060288111155b61097557600080fd5b600d91909155600e55565b6000546001600160a01b031633146109aa5760405162461bcd60e51b8152600401610951906122d6565b6003805461ff00191661010017905543600455565b60006109cc8484846111ef565b50610a1f8433610a1a8560405180606001604052806028815260200161249f602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611841565b6110cb565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260076020526040812054601354610a6f9161187b565b905090565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161091d918590610a1a908661106c565b6000546001600160a01b03163314610ad45760405162461bcd60e51b8152600401610951906122d6565b601655565b600080546001600160a01b03163314610b045760405162461bcd60e51b8152600401610951906122d6565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b919061230b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc919061230b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b919061230b565b91506001600160a01b038216610da257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd919061230b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e919061230b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f919061230b565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b8152600401610951906122d6565b6013546014819055601555565b6000546001600160a01b03163314610e725760405162461bcd60e51b8152600401610951906122d6565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ec75760405162461bcd60e51b8152600401610951906122d6565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b60606002805461088d9061229c565b600061091d3384610a1a856040518060600160405280602581526020016124c7602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611841565b6000610a1f3384846111ef565b6000546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610951906122d6565b6001600160a01b0381166110115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610951565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080611079838561233e565b905083811015610a235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610951565b6001600160a01b03831661112d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610951565b6001600160a01b03821661118e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610951565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601a546040516000917ffd25adf1ce099423ce4d34044d7682f3a6a8d7e940f29af2a5bfd70fcdd5b4469161122b9160ff161515815260200190565b60405180910390a16001600160a01b0384166112975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610951565b6001600160a01b0383166112f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610951565b6000546001600160a01b0385811691161480159061132557506000546001600160a01b03848116911614155b1561139057600354610100900460ff166113905760405162461bcd60e51b815260206004820152602660248201527f63616e6e6f74207472616465206265666f726520746865206d61726b6574206f60448201526570656e696e6760d01b6064820152608401610951565b601a5460ff16156113ad576113a68484846118bd565b9050610a23565b6001600160a01b0384166000908152600b602052604090205460ff161580156113ef57506001600160a01b0383166000908152600b602052604090205460ff16155b15611457576014548211156114575760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610951565b6000600b4244604051602001611477929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c61149a9190612367565b6114a590605a61233e565b905060006114c960646114c3846016546119a390919063ffffffff16565b90611a25565b30600090815260076020908152604080832054601a546001600160a01b038c168552600c8452938290205482518683101580825260ff808816159683019690965291851615818501526101009095049093161515606085015290519394509290917f1fad8c17d8ced3651b0034c888f06409479ba9ae982b5d5919fa7d45976755dd919081900360800190a16001600160a01b0388166000908152600c602052604090205460ff16801561159657506001600160a01b03871660009081526009602052604090205460ff16155b80156115ba57506001600160a01b03871660009081526019602052604090205460ff165b156115ea57306000908152600760205260409020546115d9908761106c565b306000908152600760205260409020555b8080156115fa5750601a5460ff16155b801561161f57506001600160a01b0388166000908152600c602052604090205460ff16155b80156116325750601a54610100900460ff165b801561165757506001600160a01b03881660009081526009602052604090205460ff16155b1561167a57601a5462010000900460ff1615611671578291505b61167a82611a67565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038b166000908152600790915291909120546116cc918890611841565b6001600160a01b038916600090815260076020908152604080832093909355600990529081205460ff168061171957506001600160a01b03881660009081526009602052604090205460ff165b61172d57611728898989611c66565b61172f565b865b601a549091506301000000900460ff16801561176457506001600160a01b0388166000908152600a602052604090205460ff16155b156117a0576015546117958261178f8b6001600160a01b031660009081526007602052604090205490565b9061106c565b11156117a057600080fd5b6001600160a01b0388166000908152600760205260409020546117c3908261106c565b6001600160a01b0389166000908152600760205260409020556117e68888611da7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161182b91815260200190565b60405180910390a3600195505050505050610a23565b600081848411156118655760405162461bcd60e51b81526004016109519190612105565b506000611872848661237b565b95945050505050565b6000610a2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611841565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461190e918490611841565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461193d908361106c565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119919086815260200190565b60405180910390a35060019392505050565b6000826000036119b557506000610921565b60006119c1838561238e565b9050826119ce85836123a5565b14610a235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610951565b6000610a2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e34565b601a805460ff19166001179055601254600f54600091611a91916002916114c391829087906119a3565b90506000611a9f838361187b565b9050611aaa81611e62565b60405147808252907f4392400490f2e1381256cdefd182251d97bf9d33c3cb3f98f4631e63dc5e43d69060200160405180910390a16000611b03611afa6002600f54611a2590919063ffffffff16565b6012549061187b565b90506000611b2560026114c3846114c3600f54886119a390919063ffffffff16565b90506000611b42836114c3601154876119a390919063ffffffff16565b90506000611b5a82611b54878661187b565b9061187b565b90507fdd5d17f8bac550a1fcd2d7da79e044db216d923fc4344988dc10903a577b830e82604051611b8d91815260200190565b60405180910390a16040518181527fbf35ce9e6c1288192cf24447a81f0dc45c9da1d0ea729d7ee3c3df4ac87a60f39060200160405180910390a16040518381527fe5eae915a30d9dae96d461f62d00d9061799266f874e9716685c86ccbf93ac709060200160405180910390a18015611c1757600654611c17906001600160a01b031682611ff5565b8115611c3357600554611c33906001600160a01b031683611ff5565b600083118015611c435750600087115b15611c5257611c528784612030565b5050601a805460ff19169055505050505050565b6001600160a01b0383166000908152600c6020526040812054819060ff1615611caa57611ca360646114c3600d54866119a390919063ffffffff16565b9050611ce8565b6001600160a01b0384166000908152600c602052604090205460ff1615611ce857611ce560646114c3600e54866119a390919063ffffffff16565b90505b60006004546001611cf9919061233e565b431015611d1557611d1060646114c386600a6119a3565b611d17565b815b90508115611d935730600090815260076020526040902054611d39908361106c565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d8a9086815260200190565b60405180910390a35b611d9d848261187b565b9695505050505050565b6001600160a01b03821660009081526019602052604090205460ff1615611de9576001600160a01b03821660009081526019602052604090205460ff16611e07565b6006546001600160a01b031660009081526007602052604090205481145b6001600160a01b03929092166000908152601960205260409020805460ff19169215159290921790915550565b60008183611e555760405162461bcd60e51b81526004016109519190612105565b50600061187284866123a5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e9757611e976123b9565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f14919061230b565b81600181518110611f2757611f276123b9565b6001600160a01b039283166020918202929092010152601754611f4d91309116846110cb565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f86908590600090869030904290600401612413565b600060405180830381600087803b158015611fa057600080fd5b505af1158015611fb4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611fe992919061244f565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561202b573d6000803e3d6000fd5b505050565b6017546120489030906001600160a01b0316846110cb565b6017546001600160a01b031663f305d7198230856000806120716000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156120d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fe9190612470565b5050505050565b600060208083528351808285015260005b8181101561213257858101830151858201604001528201612116565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461216857600080fd5b50565b6000806040838503121561217e57600080fd5b823561218981612153565b946020939093013593505050565b600080604083850312156121aa57600080fd5b50508035926020909101359150565b6000806000606084860312156121ce57600080fd5b83356121d981612153565b925060208401356121e981612153565b929592945050506040919091013590565b60006020828403121561220c57600080fd5b5035919050565b60006020828403121561222557600080fd5b8135610a2381612153565b6000806040838503121561224357600080fd5b823561224e81612153565b91506020830135801515811461226357600080fd5b809150509250929050565b6000806040838503121561228157600080fd5b823561228c81612153565b9150602083013561226381612153565b600181811c908216806122b057607f821691505b6020821081036122d057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561231d57600080fd5b8151610a2381612153565b634e487b7160e01b600052601160045260246000fd5b8082018082111561092157610921612328565b634e487b7160e01b600052601260045260246000fd5b60008261237657612376612351565b500690565b8181038181111561092157610921612328565b808202811582820484141761092157610921612328565b6000826123b4576123b4612351565b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156124085781516001600160a01b0316875295820195908201906001016123e3565b509495945050505050565b85815284602082015260a06040820152600061243260a08301866123cf565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061246860408301846123cf565b949350505050565b60008060006060848603121561248557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122027a2cb9d2fb8e1f29fd81cadc9f8f9950d6fb75ffbd694a63669855e414039a164736f6c63430008110033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063700d47851161015a578063a457c2d7116100c1578063ce510f8e1161007a578063ce510f8e146107ac578063da00097d146107c1578063dd62ed3e146107e1578063f0eb420714610827578063f2fde38b1461083d578063f872858a1461085d57600080fd5b8063a457c2d7146106f0578063a5e7034014610710578063a83f53a714610726578063a9059cbb1461073c578063c816841b1461075c578063c867d60b1461077c57600080fd5b80638b42507f116101135780638b42507f1461064c5780638da5cb5b1461067c578063914eb66a1461069a578063928e27e1146106af57806395d89b41146106c5578063a08e671f146106da57600080fd5b8063700d47851461059557806370a08231146105ab5780637d1db4a5146105e1578063807c2d9c146105f7578063844d591c1461060d5780638a8c523c1461062d57600080fd5b8063313ce567116101fe5780635342acb4116101b75780635342acb4146104f1578063557ed1ba1461052157806357a5802f146105345780635881f3ef1461054a5780635f020a281461056a57806361a23c691461057f57600080fd5b8063313ce5671461042a578063395093511461044c5780633b97084a1461046c5780633eaaf86b1461048c5780633ecad271146104a25780634a74bb02146104d257600080fd5b80631694505e116102505780631694505e1461036d57806318160ddd1461038d5780631d97b7cd146103ac57806323b872dd146103c157806327c8f835146103e15780632b112e491461041557600080fd5b806306fdde0314610298578063095ea7b3146102c35780630b78f9c0146102f35780630e038813146103155780631245e3471461034d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61087e565b6040516102ba9190612105565b60405180910390f35b3480156102cf57600080fd5b506102e36102de36600461216b565b610910565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e366004612197565b610927565b005b34801561032157600080fd5b50600554610335906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561035957600080fd5b50600654610335906001600160a01b031681565b34801561037957600080fd5b50601754610335906001600160a01b031681565b34801561039957600080fd5b506013545b6040519081526020016102ba565b3480156103b857600080fd5b50610313610980565b3480156103cd57600080fd5b506102e36103dc3660046121b9565b6109bf565b3480156103ed57600080fd5b506103357f000000000000000000000000000000000000000000000000000000000000dead81565b34801561042157600080fd5b5061039e610a2a565b34801561043657600080fd5b5060035460405160ff90911681526020016102ba565b34801561045857600080fd5b506102e361046736600461216b565b610a74565b34801561047857600080fd5b506103136104873660046121fa565b610aaa565b34801561049857600080fd5b5061039e60135481565b3480156104ae57600080fd5b506102e36104bd366004612213565b600c6020526000908152604090205460ff1681565b3480156104de57600080fd5b50601a546102e390610100900460ff1681565b3480156104fd57600080fd5b506102e361050c366004612213565b60096020526000908152604090205460ff1681565b34801561052d57600080fd5b504261039e565b34801561054057600080fd5b5061039e600f5481565b34801561055657600080fd5b50610335610565366004612213565b610ad9565b34801561057657600080fd5b50610313610e11565b34801561058b57600080fd5b5061039e60105481565b3480156105a157600080fd5b5061039e600e5481565b3480156105b757600080fd5b5061039e6105c6366004612213565b6001600160a01b031660009081526007602052604090205490565b3480156105ed57600080fd5b5061039e60145481565b34801561060357600080fd5b5061039e60155481565b34801561061957600080fd5b50610313610628366004612230565b610e48565b34801561063957600080fd5b506003546102e390610100900460ff1681565b34801561065857600080fd5b506102e3610667366004612213565b600b6020526000908152604090205460ff1681565b34801561068857600080fd5b506000546001600160a01b0316610335565b3480156106a657600080fd5b50610313610e9d565b3480156106bb57600080fd5b5061039e600d5481565b3480156106d157600080fd5b506102ad610f17565b3480156106e657600080fd5b5061039e60125481565b3480156106fc57600080fd5b506102e361070b36600461216b565b610f26565b34801561071c57600080fd5b5061039e60045481565b34801561073257600080fd5b5061039e60115481565b34801561074857600080fd5b506102e361075736600461216b565b610f75565b34801561076857600080fd5b50601854610335906001600160a01b031681565b34801561078857600080fd5b506102e3610797366004612213565b600a6020526000908152604090205460ff1681565b3480156107b857600080fd5b5060165461039e565b3480156107cd57600080fd5b50601a546102e39062010000900460ff1681565b3480156107ed57600080fd5b5061039e6107fc36600461226e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561083357600080fd5b5061039e60165481565b34801561084957600080fd5b50610313610858366004612213565b610f82565b34801561086957600080fd5b50601a546102e3906301000000900460ff1681565b60606001805461088d9061229c565b80601f01602080910402602001604051908101604052809291908181526020018280546108b99061229c565b80156109065780601f106108db57610100808354040283529160200191610906565b820191906000526020600020905b8154815290600101906020018083116108e957829003601f168201915b5050505050905090565b600061091d3384846110cb565b5060015b92915050565b6000546001600160a01b0316331461095a5760405162461bcd60e51b8152600401610951906122d6565b60405180910390fd5b6028821115801561096c575060288111155b61097557600080fd5b600d91909155600e55565b6000546001600160a01b031633146109aa5760405162461bcd60e51b8152600401610951906122d6565b6003805461ff00191661010017905543600455565b60006109cc8484846111ef565b50610a1f8433610a1a8560405180606001604052806028815260200161249f602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611841565b6110cb565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260076020526040812054601354610a6f9161187b565b905090565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161091d918590610a1a908661106c565b6000546001600160a01b03163314610ad45760405162461bcd60e51b8152600401610951906122d6565b601655565b600080546001600160a01b03163314610b045760405162461bcd60e51b8152600401610951906122d6565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b919061230b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc919061230b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b919061230b565b91506001600160a01b038216610da257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd919061230b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e919061230b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f919061230b565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b8152600401610951906122d6565b6013546014819055601555565b6000546001600160a01b03163314610e725760405162461bcd60e51b8152600401610951906122d6565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ec75760405162461bcd60e51b8152600401610951906122d6565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b60606002805461088d9061229c565b600061091d3384610a1a856040518060600160405280602581526020016124c7602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611841565b6000610a1f3384846111ef565b6000546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610951906122d6565b6001600160a01b0381166110115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610951565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080611079838561233e565b905083811015610a235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610951565b6001600160a01b03831661112d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610951565b6001600160a01b03821661118e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610951565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601a546040516000917ffd25adf1ce099423ce4d34044d7682f3a6a8d7e940f29af2a5bfd70fcdd5b4469161122b9160ff161515815260200190565b60405180910390a16001600160a01b0384166112975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610951565b6001600160a01b0383166112f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610951565b6000546001600160a01b0385811691161480159061132557506000546001600160a01b03848116911614155b1561139057600354610100900460ff166113905760405162461bcd60e51b815260206004820152602660248201527f63616e6e6f74207472616465206265666f726520746865206d61726b6574206f60448201526570656e696e6760d01b6064820152608401610951565b601a5460ff16156113ad576113a68484846118bd565b9050610a23565b6001600160a01b0384166000908152600b602052604090205460ff161580156113ef57506001600160a01b0383166000908152600b602052604090205460ff16155b15611457576014548211156114575760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610951565b6000600b4244604051602001611477929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c61149a9190612367565b6114a590605a61233e565b905060006114c960646114c3846016546119a390919063ffffffff16565b90611a25565b30600090815260076020908152604080832054601a546001600160a01b038c168552600c8452938290205482518683101580825260ff808816159683019690965291851615818501526101009095049093161515606085015290519394509290917f1fad8c17d8ced3651b0034c888f06409479ba9ae982b5d5919fa7d45976755dd919081900360800190a16001600160a01b0388166000908152600c602052604090205460ff16801561159657506001600160a01b03871660009081526009602052604090205460ff16155b80156115ba57506001600160a01b03871660009081526019602052604090205460ff165b156115ea57306000908152600760205260409020546115d9908761106c565b306000908152600760205260409020555b8080156115fa5750601a5460ff16155b801561161f57506001600160a01b0388166000908152600c602052604090205460ff16155b80156116325750601a54610100900460ff165b801561165757506001600160a01b03881660009081526009602052604090205460ff16155b1561167a57601a5462010000900460ff1615611671578291505b61167a82611a67565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038b166000908152600790915291909120546116cc918890611841565b6001600160a01b038916600090815260076020908152604080832093909355600990529081205460ff168061171957506001600160a01b03881660009081526009602052604090205460ff165b61172d57611728898989611c66565b61172f565b865b601a549091506301000000900460ff16801561176457506001600160a01b0388166000908152600a602052604090205460ff16155b156117a0576015546117958261178f8b6001600160a01b031660009081526007602052604090205490565b9061106c565b11156117a057600080fd5b6001600160a01b0388166000908152600760205260409020546117c3908261106c565b6001600160a01b0389166000908152600760205260409020556117e68888611da7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161182b91815260200190565b60405180910390a3600195505050505050610a23565b600081848411156118655760405162461bcd60e51b81526004016109519190612105565b506000611872848661237b565b95945050505050565b6000610a2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611841565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461190e918490611841565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461193d908361106c565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119919086815260200190565b60405180910390a35060019392505050565b6000826000036119b557506000610921565b60006119c1838561238e565b9050826119ce85836123a5565b14610a235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610951565b6000610a2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e34565b601a805460ff19166001179055601254600f54600091611a91916002916114c391829087906119a3565b90506000611a9f838361187b565b9050611aaa81611e62565b60405147808252907f4392400490f2e1381256cdefd182251d97bf9d33c3cb3f98f4631e63dc5e43d69060200160405180910390a16000611b03611afa6002600f54611a2590919063ffffffff16565b6012549061187b565b90506000611b2560026114c3846114c3600f54886119a390919063ffffffff16565b90506000611b42836114c3601154876119a390919063ffffffff16565b90506000611b5a82611b54878661187b565b9061187b565b90507fdd5d17f8bac550a1fcd2d7da79e044db216d923fc4344988dc10903a577b830e82604051611b8d91815260200190565b60405180910390a16040518181527fbf35ce9e6c1288192cf24447a81f0dc45c9da1d0ea729d7ee3c3df4ac87a60f39060200160405180910390a16040518381527fe5eae915a30d9dae96d461f62d00d9061799266f874e9716685c86ccbf93ac709060200160405180910390a18015611c1757600654611c17906001600160a01b031682611ff5565b8115611c3357600554611c33906001600160a01b031683611ff5565b600083118015611c435750600087115b15611c5257611c528784612030565b5050601a805460ff19169055505050505050565b6001600160a01b0383166000908152600c6020526040812054819060ff1615611caa57611ca360646114c3600d54866119a390919063ffffffff16565b9050611ce8565b6001600160a01b0384166000908152600c602052604090205460ff1615611ce857611ce560646114c3600e54866119a390919063ffffffff16565b90505b60006004546001611cf9919061233e565b431015611d1557611d1060646114c386600a6119a3565b611d17565b815b90508115611d935730600090815260076020526040902054611d39908361106c565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d8a9086815260200190565b60405180910390a35b611d9d848261187b565b9695505050505050565b6001600160a01b03821660009081526019602052604090205460ff1615611de9576001600160a01b03821660009081526019602052604090205460ff16611e07565b6006546001600160a01b031660009081526007602052604090205481145b6001600160a01b03929092166000908152601960205260409020805460ff19169215159290921790915550565b60008183611e555760405162461bcd60e51b81526004016109519190612105565b50600061187284866123a5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e9757611e976123b9565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f14919061230b565b81600181518110611f2757611f276123b9565b6001600160a01b039283166020918202929092010152601754611f4d91309116846110cb565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f86908590600090869030904290600401612413565b600060405180830381600087803b158015611fa057600080fd5b505af1158015611fb4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611fe992919061244f565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561202b573d6000803e3d6000fd5b505050565b6017546120489030906001600160a01b0316846110cb565b6017546001600160a01b031663f305d7198230856000806120716000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156120d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fe9190612470565b5050505050565b600060208083528351808285015260005b8181101561213257858101830151858201604001528201612116565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461216857600080fd5b50565b6000806040838503121561217e57600080fd5b823561218981612153565b946020939093013593505050565b600080604083850312156121aa57600080fd5b50508035926020909101359150565b6000806000606084860312156121ce57600080fd5b83356121d981612153565b925060208401356121e981612153565b929592945050506040919091013590565b60006020828403121561220c57600080fd5b5035919050565b60006020828403121561222557600080fd5b8135610a2381612153565b6000806040838503121561224357600080fd5b823561224e81612153565b91506020830135801515811461226357600080fd5b809150509250929050565b6000806040838503121561228157600080fd5b823561228c81612153565b9150602083013561226381612153565b600181811c908216806122b057607f821691505b6020821081036122d057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561231d57600080fd5b8151610a2381612153565b634e487b7160e01b600052601160045260246000fd5b8082018082111561092157610921612328565b634e487b7160e01b600052601260045260246000fd5b60008261237657612376612351565b500690565b8181038181111561092157610921612328565b808202811582820484141761092157610921612328565b6000826123b4576123b4612351565b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156124085781516001600160a01b0316875295820195908201906001016123e3565b509495945050505050565b85815284602082015260a06040820152600061243260a08301866123cf565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061246860408301846123cf565b949350505050565b60008060006060848603121561248557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122027a2cb9d2fb8e1f29fd81cadc9f8f9950d6fb75ffbd694a63669855e414039a164736f6c63430008110033
Deployed Bytecode Sourcemap
16016:15762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20160:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21680:186;;;;;;;;;;-1:-1:-1;21680:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;21680:186:0;1023:187:1;23019:255:0;;;;;;;;;;-1:-1:-1;23019:255:0;;;;;:::i;:::-;;:::i;:::-;;16310:102;;;;;;;;;;-1:-1:-1;16310:102:0;;;;-1:-1:-1;;;;;16310:102:0;;;;;;-1:-1:-1;;;;;1648:32:1;;;1630:51;;1618:2;1603:18;16310:102:0;1468:219:1;16419:103:0;;;;;;;;;;-1:-1:-1;16419:103:0;;;;-1:-1:-1;;;;;16419:103:0;;;17487:41;;;;;;;;;;-1:-1:-1;17487:41:0;;;;-1:-1:-1;;;;;17487:41:0;;;20437:100;;;;;;;;;;-1:-1:-1;20517:12:0;;20437:100;;;2073:25:1;;;2061:2;2046:18;20437:100:0;1927:177:1;22628:117:0;;;;;;;;;;;;;:::i;24761:446::-;;;;;;;;;;-1:-1:-1;24761:446:0;;;;;:::i;:::-;;:::i;16529:90::-;;;;;;;;;;;;;;;23282:128;;;;;;;;;;;;;:::i;20346:83::-;;;;;;;;;;-1:-1:-1;20412:9:0;;20346:83;;20412:9;;;;2920:36:1;;2908:2;2893:18;20346:83:0;2778:184:1;20848:293:0;;;;;;;;;;-1:-1:-1;20848:293:0;;;;;:::i;:::-;;:::i;22888:123::-;;;;;;;;;;-1:-1:-1;22888:123:0;;;;;:::i;:::-;;:::i;17226:58::-;;;;;;;;;;;;;;;;16916:44;;;;;;;;;;-1:-1:-1;16916:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17652:40;;;;;;;;;;-1:-1:-1;17652:40:0;;;;;;;;;;;16748:49;;;;;;;;;;-1:-1:-1;16748:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7312:90;;;;;;;;;;-1:-1:-1;7379:15:0;7312:90;;17050:34;;;;;;;;;;;;;;;;23577:883;;;;;;;;;;-1:-1:-1;23577:883:0;;;;;:::i;:::-;;:::i;22753:127::-;;;;;;;;;;;;;:::i;17091:37::-;;;;;;;;;;;;;;;;17008:33;;;;;;;;;;;;;;;;20545:119;;;;;;;;;;-1:-1:-1;20545:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;20638:18:0;20611:7;20638:18;;;:9;:18;;;;;;;20545:119;17291:54;;;;;;;;;;;;;;;;17352:52;;;;;;;;;;;;;;;;22466:154;;;;;;;;;;-1:-1:-1;22466:154:0;;;;;:::i;:::-;;:::i;16246:25::-;;;;;;;;;;-1:-1:-1;16246:25:0;;;;;;;;;;;16862:47;;;;;;;;;;-1:-1:-1;16862:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6537:79;;;;;;;;;;-1:-1:-1;6575:7:0;6602:6;-1:-1:-1;;;;;6602:6:0;6537:79;;6751:264;;;;;;;;;;;;;:::i;16969:32::-;;;;;;;;;;;;;;;;20251:87;;;;;;;;;;;;;:::i;17171:46::-;;;;;;;;;;;;;;;;21149:393;;;;;;;;;;-1:-1:-1;21149:393:0;;;;;:::i;:::-;;:::i;16278:23::-;;;;;;;;;;;;;;;;17135:29;;;;;;;;;;;;;;;;24561:192;;;;;;;;;;-1:-1:-1;24561:192:0;;;;;:::i;:::-;;:::i;17535:26::-;;;;;;;;;;-1:-1:-1;17535:26:0;;;;-1:-1:-1;;;;;17535:26:0;;;16804:51;;;;;;;;;;-1:-1:-1;16804:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21550:122;;;;;;;;;;-1:-1:-1;21640:24:0;;21550:122;;17699:44;;;;;;;;;;-1:-1:-1;17699:44:0;;;;;;;;;;;20672:168;;;;;;;;;;-1:-1:-1;20672:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;20805:18:0;;;20778:7;20805:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20672:168;17411:67;;;;;;;;;;;;;;;;7023:281;;;;;;;;;;-1:-1:-1;7023:281:0;;;;;:::i;:::-;;:::i;17750:35::-;;;;;;;;;;-1:-1:-1;17750:35:0;;;;;;;;;;;20160:83;20197:13;20230:5;20223:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20160:83;:::o;21680:186::-;21780:4;21797:39;846:10;21820:7;21829:6;21797:8;:39::i;:::-;-1:-1:-1;21854:4:0;21680:186;;;;;:::o;23019:255::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;;;;;;;;;23160:2:::1;23144:12;:18;;:41;;;;;23183:2;23166:13;:19;;23144:41;23136:50;;;::::0;::::1;;23197:13;:28:::0;;;;23236:14:::1;:30:::0;23019:255::o;22628:117::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;22683:13:::1;:20:::0;;-1:-1:-1;;22683:20:0::1;;;::::0;;22725:12:::1;22714:8;:23:::0;22628:117::o;24761:446::-;24893:4;24910:36;24920:6;24928:9;24939:6;24910:9;:36::i;:::-;-1:-1:-1;24957:220:0;24980:6;846:10;25028:138;25084:6;25028:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25028:19:0;;;;;;:11;:19;;;;;;;;846:10;25028:33;;;;;;;;;;:37;:138::i;:::-;24957:8;:220::i;:::-;-1:-1:-1;25195:4:0;24761:446;;;;;;:::o;23282:128::-;23389:11;-1:-1:-1;;;;;20638:18:0;23335:7;20638:18;;;:9;:18;;;;;;23362:12;;:40;;:16;:40::i;:::-;23355:47;;23282:128;:::o;20848:293::-;846:10;20961:4;21050:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21050:34:0;;;;;;;;;;20961:4;;20978:133;;21028:7;;21050:50;;21089:10;21050:38;:50::i;22888:123::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;22968:24:::1;:35:::0;22888:123::o;23577:883::-;23674:22;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;23709:35:::1;23780:16;23709:98;;23855:16;-1:-1:-1::0;;;;;23855:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23837:53:0::1;;23913:4;23933:16;-1:-1:-1::0;;;;;23933:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23837:130;::::0;-1:-1:-1;;;;;;23837:130:0::1;::::0;;;;;;-1:-1:-1;;;;;5450:15:1;;;23837:130:0::1;::::0;::::1;5432:34:1::0;5502:15;;5482:18;;;5475:43;5367:18;;23837:130:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23820:147:::0;-1:-1:-1;;;;;;23984:28:0;::::1;23980:226;;24098:16;-1:-1:-1::0;;;;;24098:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24080:74:0::1;;24163:4;24170:16;-1:-1:-1::0;;;;;24170:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24080:114;::::0;-1:-1:-1;;;;;;24080:114:0::1;::::0;;;;;;-1:-1:-1;;;;;5450:15:1;;;24080:114:0::1;::::0;::::1;5432:34:1::0;5502:15;;5482:18;;;5475:43;5367:18;;24080:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24063:131;;23980:226;24218:11;:28:::0;;-1:-1:-1;;;;;;24218:28:0;;::::1;-1:-1:-1::0;;;;;24218:28:0;;::::1;::::0;;::::1;::::0;;24280:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;24352:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;24352:48:0;;::::1;-1:-1:-1::0;24352:48:0;;::::1;::::0;;;24432:11;;;;::::1;24411:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;24218:28;24232:14;-1:-1:-1;23577:883:0:o;22753:127::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;22824:12:::1;::::0;22809::::1;:27:::0;;;22847:10:::1;:25:::0;22753:127::o;22466:154::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22580:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;22580:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22466:154::o;6751:264::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;6853:6:::1;::::0;;6818:118:::1;::::0;6882:42:::1;::::0;-1:-1:-1;;;;;6853:6:0;;::::1;::::0;6818:118:::1;::::0;::::1;6947:6;:60:::0;;-1:-1:-1;;;;;;6947:60:0::1;6964:42;6947:60;::::0;;6751:264::o;20251:87::-;20290:13;20323:7;20316:14;;;;;:::i;21149:393::-;21267:4;21284:228;846:10;21334:7;21356:145;21413:15;21356:145;;;;;;;;;;;;;;;;;846:10;21356:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21356:34:0;;;;;;;;;;;;:38;:145::i;24561:192::-;24664:4;24681:42;846:10;24705:9;24716:6;24681:9;:42::i;7023:281::-;6664:6;;-1:-1:-1;;;;;6664:6:0;846:10;6664:22;6656:67;;;;-1:-1:-1;;;6656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7126:22:0;::::1;7104:110;;;::::0;-1:-1:-1;;;7104:110:0;;5731:2:1;7104:110:0::1;::::0;::::1;5713:21:1::0;5770:2;5750:18;;;5743:30;5809:34;5789:18;;;5782:62;-1:-1:-1;;;5860:18:1;;;5853:36;5906:19;;7104:110:0::1;5529:402:1::0;7104:110:0::1;7251:6;::::0;;7230:38:::1;::::0;-1:-1:-1;;;;;7230:38:0;;::::1;::::0;7251:6;::::1;::::0;7230:38:::1;::::0;::::1;7279:6;:17:::0;;-1:-1:-1;;;;;;7279:17:0::1;-1:-1:-1::0;;;;;7279:17:0;;;::::1;::::0;;;::::1;::::0;;7023:281::o;1825:181::-;1883:7;;1915:5;1919:1;1915;:5;:::i;:::-;1903:17;;1944:1;1939;:6;;1931:46;;;;-1:-1:-1;;;1931:46:0;;6400:2:1;1931:46:0;;;6382:21:1;6439:2;6419:18;;;6412:30;6478:29;6458:18;;;6451:57;6525:18;;1931:46:0;6198:351:1;21874:337:0;-1:-1:-1;;;;;21967:19:0;;21959:68;;;;-1:-1:-1;;;21959:68:0;;6756:2:1;21959:68:0;;;6738:21:1;6795:2;6775:18;;;6768:30;6834:34;6814:18;;;6807:62;-1:-1:-1;;;6885:18:1;;;6878:34;6929:19;;21959:68:0;6554:400:1;21959:68:0;-1:-1:-1;;;;;22046:21:0;;22038:68;;;;-1:-1:-1;;;22038:68:0;;7161:2:1;22038:68:0;;;7143:21:1;7200:2;7180:18;;;7173:30;7239:34;7219:18;;;7212:62;-1:-1:-1;;;7290:18:1;;;7283:32;7332:19;;22038:68:0;6959:398:1;22038:68:0;-1:-1:-1;;;;;22119:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22171:32;;2073:25:1;;;22171:32:0;;2046:18:1;22171:32:0;;;;;;;21874:337;;;:::o;25215:2864::-;25381:16;;25358:40;;25336:4;;25358:40;;;;25381:16;;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;25358:40:0;;;;;;;;-1:-1:-1;;;;;25417:20:0;;25409:70;;;;-1:-1:-1;;;25409:70:0;;7564:2:1;25409:70:0;;;7546:21:1;7603:2;7583:18;;;7576:30;7642:34;7622:18;;;7615:62;-1:-1:-1;;;7693:18:1;;;7686:35;7738:19;;25409:70:0;7362:401:1;25409:70:0;-1:-1:-1;;;;;25498:23:0;;25490:71;;;;-1:-1:-1;;;25490:71:0;;7970:2:1;25490:71:0;;;7952:21:1;8009:2;7989:18;;;7982:30;8048:34;8028:18;;;8021:62;-1:-1:-1;;;8099:18:1;;;8092:33;8142:19;;25490:71:0;7768:399:1;25490:71:0;6575:7;6602:6;-1:-1:-1;;;;;25578:17:0;;;6602:6;;25578:17;;;;:41;;-1:-1:-1;6575:7:0;6602:6;-1:-1:-1;;;;;25599:20:0;;;6602:6;;25599:20;;25578:41;25574:124;;;25642:13;;;;;;;25634:64;;;;-1:-1:-1;;;25634:64:0;;8374:2:1;25634:64:0;;;8356:21:1;8413:2;8393:18;;;8386:30;8452:34;8432:18;;;8425:62;-1:-1:-1;;;8503:18:1;;;8496:36;8549:19;;25634:64:0;8172:402:1;25634:64:0;25715:16;;;;25711:2361;;;25755:41;25770:6;25778:9;25789:6;25755:14;:41::i;:::-;25748:48;;;;25711:2361;-1:-1:-1;;;;;25834:23:0;;;;;;:15;:23;;;;;;;;25833:24;:55;;;;-1:-1:-1;;;;;;25862:26:0;;;;;;:15;:26;;;;;;;;25861:27;25833:55;25829:232;;;25949:12;;25939:6;:22;;25909:136;;;;-1:-1:-1;;;25909:136:0;;8781:2:1;25909:136:0;;;8763:21:1;8820:2;8800:18;;;8793:30;8859:34;8839:18;;;8832:62;-1:-1:-1;;;8910:18:1;;;8903:38;8958:19;;25909:136:0;8579:404:1;25909:136:0;26075:15;26200:2;26147:15;26164:16;26130:51;;;;;;;;9145:19:1;;;9189:2;9180:12;;9173:28;9226:2;9217:12;;8988:247;26130:51:0;;;;;;;;;;;;;26120:62;;;;;;26094:103;;:108;;;;:::i;:::-;26093:115;;26206:2;26093:115;:::i;:::-;26075:133;;26223:20;26246:78;26306:3;26246:37;26275:7;26246:24;;:28;;:37;;;;:::i;:::-;:41;;:78::i;:::-;26388:4;26339:28;20638:18;;;:9;:18;;;;;;;;;26569:16;;-1:-1:-1;;;;;26605:20:0;;;;:12;:20;;;;;;;26496:184;;26440:36;;;;9696:41:1;;;26569:16:0;;;;26568:17;9753:18:1;;;9746:50;;;;26605:20:0;;;26604:21;9812:18:1;;;9805:50;26569:16:0;26644:21;;;;;;9898:14:1;9891:22;9886:2;9871:18;;9864:50;26496:184:0;;26223:101;;-1:-1:-1;20638:18:0;26440:36;;26496:184;;;;;;9683:3:1;26496:184:0;;;-1:-1:-1;;;;;26717:20:0;;;;;;:12;:20;;;;;;;;:70;;;;-1:-1:-1;;;;;;26759:28:0;;;;;;:17;:28;;;;;;;;26758:29;26717:70;:116;;;;-1:-1:-1;;;;;;26808:25:0;;;;;;:14;:25;;;;;;;;26717:116;26695:252;;;26913:4;26895:24;;;;:9;:24;;;;;;:36;;26924:6;26895:28;:36::i;:::-;26886:4;26868:24;;;;:9;:24;;;;;:63;26695:252;26983:23;:61;;;;-1:-1:-1;27028:16:0;;;;27027:17;26983:61;:103;;;;-1:-1:-1;;;;;;27066:20:0;;;;;;:12;:20;;;;;;;;27065:21;26983:103;:145;;;;-1:-1:-1;27107:21:0;;;;;;;26983:145;:192;;;;-1:-1:-1;;;;;;27150:25:0;;;;;;:17;:25;;;;;;;;27149:26;26983:192;26961:407;;;27214:25;;;;;;;27210:87;;;27285:12;27262:35;;27210:87;27316:36;27331:20;27316:14;:36::i;:::-;27402:102;;;;;;;;;;;-1:-1:-1;;;27402:102:0;;;;;;;;-1:-1:-1;;;;;27402:17:0;;-1:-1:-1;27402:17:0;;;:9;:17;;;;;;;;:102;;27442:6;;27402:21;:102::i;:::-;-1:-1:-1;;;;;27382:17:0;;;;;;:9;:17;;;;;;;;:122;;;;27542:17;:25;;;;;;;;;:74;;-1:-1:-1;;;;;;27588:28:0;;;;;;:17;:28;;;;;;;;27542:74;27541:156;;27663:34;27671:6;27679:9;27690:6;27663:7;:34::i;:::-;27541:156;;;27637:6;27541:156;27716:16;;27519:178;;-1:-1:-1;27716:16:0;;;;;:51;;;;-1:-1:-1;;;;;;27737:30:0;;;;;;:19;:30;;;;;;;;27736:31;27716:51;27712:134;;;27835:10;;27794:37;27819:11;27794:20;27804:9;-1:-1:-1;;;;;20638:18:0;20611:7;20638:18;;;:9;:18;;;;;;;20545:119;27794:20;:24;;:37::i;:::-;:51;;27786:60;;;;;;-1:-1:-1;;;;;27884:20:0;;;;;;:9;:20;;;;;;:37;;27909:11;27884:24;:37::i;:::-;-1:-1:-1;;;;;27861:20:0;;;;;;:9;:20;;;;;:60;27936:38;27871:9;27967:6;27936:19;:38::i;:::-;28011:9;-1:-1:-1;;;;;27994:40:0;28003:6;-1:-1:-1;;;;;27994:40:0;;28022:11;27994:40;;;;2073:25:1;;2061:2;2046:18;;1927:177;27994:40:0;;;;;;;;28056:4;28049:11;;;;;;;;;2158:226;2278:7;2314:12;2306:6;;;;2298:29;;;;-1:-1:-1;;;2298:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2338:9:0;2350:5;2354:1;2350;:5;:::i;:::-;2338:17;2158:226;-1:-1:-1;;;;;2158:226:0:o;2014:136::-;2072:7;2099:43;2103:1;2106;2099:43;;;;;;;;;;;;;;;;;:3;:43::i;28087:401::-;28251:90;;;;;;;;;;;-1:-1:-1;;;28251:90:0;;;;;;;;-1:-1:-1;;;;;28251:17:0;;28214:4;28251:17;;;:9;:17;;;;;;;:90;;28287:6;;28251:21;:90::i;:::-;-1:-1:-1;;;;;28231:17:0;;;;;;;:9;:17;;;;;;:110;;;;28375:20;;;;;;;:32;;28400:6;28375:24;:32::i;:::-;-1:-1:-1;;;;;28352:20:0;;;;;;;:9;:20;;;;;;;:55;;;;28423:35;;;;;;;;;;28451:6;2073:25:1;;2061:2;2046:18;;1927:177;28423:35:0;;;;;;;;-1:-1:-1;28476:4:0;28087:401;;;;;:::o;2392:250::-;2450:7;2474:1;2479;2474:6;2470:47;;-1:-1:-1;2504:1:0;2497:8;;2470:47;2529:9;2541:5;2545:1;2541;:5;:::i;:::-;2529:17;-1:-1:-1;2574:1:0;2565:5;2569:1;2529:17;2565:5;:::i;:::-;:10;2557:56;;;;-1:-1:-1;;;2557:56:0;;10558:2:1;2557:56:0;;;10540:21:1;10597:2;10577:18;;;10570:30;10636:34;10616:18;;;10609:62;-1:-1:-1;;;10687:18:1;;;10680:31;10728:19;;2557:56:0;10356:397:1;2650:132:0;2708:7;2735:39;2739:1;2742;2735:39;;;;;;;;;;;;;;;;;:3;:39::i;28496:1349::-;18590:16;:23;;-1:-1:-1;;18590:23:0;18609:4;18590:23;;;28651:24:::1;::::0;28616:15:::1;::::0;18590:16;;28590:107:::1;::::0;28695:1:::1;::::0;28590:86:::1;::::0;;;:7;;:25:::1;:42::i;:107::-;28568:129:::0;-1:-1:-1;28708:21:0::1;28732:24;:7:::0;28568:129;28732:11:::1;:24::i;:::-;28708:48;;28767:31;28784:13;28767:16;:31::i;:::-;28871:35;::::0;28834:21:::1;2073:25:1::0;;;28834:21:0;28871:35:::1;::::0;2061:2:1;2046:18;28871:35:0::1;;;;;;;28917:19;28939:76;28982:22;29002:1;28982:15;;:19;;:22;;;;:::i;:::-;28939:24;::::0;;:28:::1;:76::i;:::-;28917:98;;29026:26;29055:101;29154:1;29055:80;29123:11;29055:49;29088:15;;29055:14;:32;;:49;;;;:::i;:101::-;29026:130;;29167:21;29191:47;29226:11;29191:30;29210:10;;29191:14;:18;;:30;;;;:::i;:47::-;29167:71:::0;-1:-1:-1;29249:26:0::1;29278:81;29167:71:::0;29278:38:::1;:14:::0;29297:18;29278::::1;:38::i;:::-;:42:::0;::::1;:81::i;:::-;29249:110;;29377:25;29388:13;29377:25;;;;2073::1::0;;2061:2;2046:18;;1927:177;29377:25:0::1;;;;;;;;29418:35;::::0;2073:25:1;;;29418:35:0::1;::::0;2061:2:1;2046:18;29418:35:0::1;;;;;;;29469;::::0;2073:25:1;;;29469:35:0::1;::::0;2061:2:1;2046:18;29469:35:0::1;;;;;;;29521:22:::0;;29517:100:::1;;29579:17;::::0;29558:59:::1;::::0;-1:-1:-1;;;;;29579:17:0::1;29598:18:::0;29558:20:::1;:59::i;:::-;29634:17:::0;;29630:89:::1;;29687:16;::::0;29666:53:::1;::::0;-1:-1:-1;;;;;29687:16:0::1;29705:13:::0;29666:20:::1;:53::i;:::-;29757:1;29736:18;:22;:41;;;;;29776:1;29762:11;:15;29736:41;29732:105;;;29792:45;29805:11;29818:18;29792:12;:45::i;:::-;-1:-1:-1::0;;18636:16:0;:24;;-1:-1:-1;;18636:24:0;;;-1:-1:-1;;;;;;28496:1349:0:o;29853:739::-;-1:-1:-1;;;;;30029:20:0;;29973:7;30029:20;;;:12;:20;;;;;;29973:7;;30029:20;;30025:208;;;30078:34;30108:3;30078:25;30089:13;;30078:6;:10;;:25;;;;:::i;:34::-;30066:46;;30025:208;;;-1:-1:-1;;;;;30134:23:0;;;;;;:12;:23;;;;;;;;30130:103;;;30186:35;30217:3;30186:26;30197:14;;30186:6;:10;;:26;;;;:::i;:35::-;30174:47;;30130:103;30245:18;30282:8;;30293:1;30282:12;;;;:::i;:::-;30266;:28;;:92;;30335:23;30354:3;30335:14;:6;30346:2;30335:10;:14::i;:23::-;30266:92;;;30310:9;30266:92;30245:113;-1:-1:-1;30375:13:0;;30371:174;;30450:4;30432:24;;;;:9;:24;;;;;;:39;;30461:9;30432:28;:39::i;:::-;30423:4;30405:24;;;;:9;:24;;;;;;;:66;;;;30491:42;;-1:-1:-1;;;;;30491:42:0;;;;;;;30523:9;2073:25:1;;2061:2;2046:18;;1927:177;30491:42:0;;;;;;;;30371:174;30562:22;:6;30573:10;30562;:22::i;:::-;30555:29;29853:739;-1:-1:-1;;;;;;29853:739:0:o;22219:239::-;-1:-1:-1;;;;;22330:24:0;;;;;;:14;:24;;;;;;;;22329:25;:121;;-1:-1:-1;;;;;22426:24:0;;;;;;:14;:24;;;;;;;;22329:121;;;22391:17;;-1:-1:-1;;;;;22391:17:0;20611:7;20638:18;;;:9;:18;;;;;;22371:6;:38;22329:121;-1:-1:-1;;;;;22302:24:0;;;;;;;;:14;:24;;;;;:148;;-1:-1:-1;;22302:148:0;;;;;;;;;;;-1:-1:-1;22219:239:0:o;2790:225::-;2910:7;2945:12;2938:5;2930:28;;;;-1:-1:-1;;;2930:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2969:9:0;2981:5;2985:1;2981;:5;:::i;30600:656::-;30750:16;;;30764:1;30750:16;;;;;;;;30726:21;;30750:16;;;;;;;;;;-1:-1:-1;30750:16:0;30726:40;;30795:4;30777;30782:1;30777:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30777:23:0;;;:7;;;;;;;;;;:23;;;;30821:15;;:22;;;-1:-1:-1;;;30821:22:0;;;;:15;;;;;:20;;:22;;;;;30777:7;;30821:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30811:4;30816:1;30811:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30811:32:0;;;:7;;;;;;;;;:32;30888:15;;30856:62;;30873:4;;30888:15;30906:11;30856:8;:62::i;:::-;30957:15;;:240;;-1:-1:-1;;;30957:240:0;;-1:-1:-1;;;;;30957:15:0;;;;:66;;:240;;31038:11;;30957:15;;31108:4;;31135;;31171:15;;30957:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31213:35;31230:11;31243:4;31213:35;;;;;;;:::i;:::-;;;;;;;;30655:601;30600:656;:::o;23418:151::-;23535:26;;-1:-1:-1;;;;;23535:18:0;;;:26;;;;;23554:6;;23535:26;;;;23554:6;23535:18;:26;;;;;;;;;;;;;;;;;;;;;23418:151;;:::o;31264:511::-;31444:15;;31412:62;;31429:4;;-1:-1:-1;;;;;31444:15:0;31462:11;31412:8;:62::i;:::-;31515:15;;-1:-1:-1;;;;;31515:15:0;:31;31554:9;31587:4;31607:11;31515:15;;31719:7;6575;6602:6;-1:-1:-1;;;;;6602:6:0;;6537:79;31719:7;31515:252;;;;;;-1:-1:-1;;;;;;31515:252:0;;;-1:-1:-1;;;;;12771:15:1;;;31515:252:0;;;12753:34:1;12803:18;;;12796:34;;;;12846:18;;;12839:34;;;;12889:18;;;12882:34;12953:15;;;12932:19;;;12925:44;31741:15:0;12985:19:1;;;12978:35;12687:19;;31515:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;31264:511;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;2109:456::-;2186:6;2194;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:33;2408:32;2449:33;:::i;:::-;2109:456;;2501:7;;-1:-1:-1;;;2555:2:1;2540:18;;;;2527:32;;2109:456::o;2967:180::-;3026:6;3079:2;3067:9;3058:7;3054:23;3050:32;3047:52;;;3095:1;3092;3085:12;3047:52;-1:-1:-1;3118:23:1;;2967:180;-1:-1:-1;2967:180:1:o;3152:247::-;3211:6;3264:2;3252:9;3243:7;3239:23;3235:32;3232:52;;;3280:1;3277;3270:12;3232:52;3319:9;3306:23;3338:31;3363:5;3338:31;:::i;3404:416::-;3469:6;3477;3530:2;3518:9;3509:7;3505:23;3501:32;3498:52;;;3546:1;3543;3536:12;3498:52;3585:9;3572:23;3604:31;3629:5;3604:31;:::i;:::-;3654:5;-1:-1:-1;3711:2:1;3696:18;;3683:32;3753:15;;3746:23;3734:36;;3724:64;;3784:1;3781;3774:12;3724:64;3807:7;3797:17;;;3404:416;;;;;:::o;3825:388::-;3893:6;3901;3954:2;3942:9;3933:7;3929:23;3925:32;3922:52;;;3970:1;3967;3960:12;3922:52;4009:9;3996:23;4028:31;4053:5;4028:31;:::i;:::-;4078:5;-1:-1:-1;4135:2:1;4120:18;;4107:32;4148:33;4107:32;4148:33;:::i;4218:380::-;4297:1;4293:12;;;;4340;;;4361:61;;4415:4;4407:6;4403:17;4393:27;;4361:61;4468:2;4460:6;4457:14;4437:18;4434:38;4431:161;;4514:10;4509:3;4505:20;4502:1;4495:31;4549:4;4546:1;4539:15;4577:4;4574:1;4567:15;4431:161;;4218:380;;;:::o;4603:356::-;4805:2;4787:21;;;4824:18;;;4817:30;4883:34;4878:2;4863:18;;4856:62;4950:2;4935:18;;4603:356::o;4964:251::-;5034:6;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5135:9;5129:16;5154:31;5179:5;5154:31;:::i;5936:127::-;5997:10;5992:3;5988:20;5985:1;5978:31;6028:4;6025:1;6018:15;6052:4;6049:1;6042:15;6068:125;6133:9;;;6154:10;;;6151:36;;;6167:18;;:::i;9240:127::-;9301:10;9296:3;9292:20;9289:1;9282:31;9332:4;9329:1;9322:15;9356:4;9353:1;9346:15;9372:112;9404:1;9430;9420:35;;9435:18;;:::i;:::-;-1:-1:-1;9469:9:1;;9372:112::o;9925:128::-;9992:9;;;10013:11;;;10010:37;;;10027:18;;:::i;10058:168::-;10131:9;;;10162;;10179:15;;;10173:22;;10159:37;10149:71;;10200:18;;:::i;10231:120::-;10271:1;10297;10287:35;;10302:18;;:::i;:::-;-1:-1:-1;10336:9:1;;10231:120::o;10890:127::-;10951:10;10946:3;10942:20;10939:1;10932:31;10982:4;10979:1;10972:15;11006:4;11003:1;10996:15;11022:461;11075:3;11113:5;11107:12;11140:6;11135:3;11128:19;11166:4;11195:2;11190:3;11186:12;11179:19;;11232:2;11225:5;11221:14;11253:1;11263:195;11277:6;11274:1;11271:13;11263:195;;;11342:13;;-1:-1:-1;;;;;11338:39:1;11326:52;;11398:12;;;;11433:15;;;;11374:1;11292:9;11263:195;;;-1:-1:-1;11474:3:1;;11022:461;-1:-1:-1;;;;;11022:461:1:o;11488:582::-;11787:6;11776:9;11769:25;11830:6;11825:2;11814:9;11810:18;11803:34;11873:3;11868:2;11857:9;11853:18;11846:31;11750:4;11894:57;11946:3;11935:9;11931:19;11923:6;11894:57;:::i;:::-;-1:-1:-1;;;;;11987:32:1;;;;11982:2;11967:18;;11960:60;-1:-1:-1;12051:3:1;12036:19;12029:35;11886:65;11488:582;-1:-1:-1;;;11488:582:1:o;12075:332::-;12282:6;12271:9;12264:25;12325:2;12320;12309:9;12305:18;12298:30;12245:4;12345:56;12397:2;12386:9;12382:18;12374:6;12345:56;:::i;:::-;12337:64;12075:332;-1:-1:-1;;;;12075:332:1:o;13024:306::-;13112:6;13120;13128;13181:2;13169:9;13160:7;13156:23;13152:32;13149:52;;;13197:1;13194;13187:12;13149:52;13226:9;13220:16;13210:26;;13276:2;13265:9;13261:18;13255:25;13245:35;;13320:2;13309:9;13305:18;13299:25;13289:35;;13024:306;;;;;:::o
Swarm Source
ipfs://27a2cb9d2fb8e1f29fd81cadc9f8f9950d6fb75ffbd694a63669855e414039a1
Loading...
Loading
Loading...
Loading
OVERVIEW
On a mission to on board the next 1 Billion normie (new users) to base chain. Educational Memecoin.Loading...
Loading
Net Worth in USD
$5,989.09
Net Worth in ETH
2.901846
Token Allocations
ETH
98.23%
USDC
1.60%
BNB
0.12%
Others
0.05%
Multichain Portfolio | 33 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.