Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 58 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 15329109 | 1322 days ago | IN | 0 ETH | 0.00052353 | ||||
| Approve | 15321541 | 1324 days ago | IN | 0 ETH | 0.00135536 | ||||
| Approve | 15321367 | 1324 days ago | IN | 0 ETH | 0.0007509 | ||||
| Approve | 15318425 | 1324 days ago | IN | 0 ETH | 0.00123268 | ||||
| Approve | 15317868 | 1324 days ago | IN | 0 ETH | 0.00053644 | ||||
| Approve | 15317859 | 1324 days ago | IN | 0 ETH | 0.00097026 | ||||
| Approve | 15317511 | 1324 days ago | IN | 0 ETH | 0.00099215 | ||||
| Approve | 15317474 | 1324 days ago | IN | 0 ETH | 0.0009914 | ||||
| Approve | 15317450 | 1324 days ago | IN | 0 ETH | 0.00109752 | ||||
| Approve | 15317375 | 1324 days ago | IN | 0 ETH | 0.00139342 | ||||
| Approve | 15317326 | 1324 days ago | IN | 0 ETH | 0.00113089 | ||||
| Renounce Ownersh... | 15317302 | 1324 days ago | IN | 0 ETH | 0.00054622 | ||||
| Before Renounce ... | 15317298 | 1324 days ago | IN | 0 ETH | 0.0020503 | ||||
| Approve | 15317275 | 1324 days ago | IN | 0 ETH | 0.00145283 | ||||
| Approve | 15317269 | 1324 days ago | IN | 0 ETH | 0.0012666 | ||||
| Set All Fees Tri... | 15317269 | 1324 days ago | IN | 0 ETH | 0.00094094 | ||||
| Set Swap Setting... | 15317267 | 1324 days ago | IN | 0 ETH | 0.00069866 | ||||
| Approve | 15317256 | 1324 days ago | IN | 0 ETH | 0.00088467 | ||||
| Approve | 15317256 | 1324 days ago | IN | 0 ETH | 0.00154391 | ||||
| Approve | 15317246 | 1324 days ago | IN | 0 ETH | 0.00203816 | ||||
| Approve | 15317203 | 1324 days ago | IN | 0 ETH | 0.00117187 | ||||
| Approve | 15317199 | 1324 days ago | IN | 0 ETH | 0.0013392 | ||||
| Approve | 15317199 | 1324 days ago | IN | 0 ETH | 0.0013625 | ||||
| Approve | 15317195 | 1324 days ago | IN | 0 ETH | 0.00116715 | ||||
| Approve | 15317194 | 1324 days ago | IN | 0 ETH | 0.00118948 |
Latest 8 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 15317203 | 1324 days ago | 0.00001153 ETH | ||||
| Add Liquidity ET... | 15317203 | 1324 days ago | 0.03583889 ETH | ||||
| Transfer | 15317203 | 1324 days ago | 0.03583889 ETH | ||||
| Transfer | 15317153 | 1324 days ago | 0.00000839 ETH | ||||
| Add Liquidity ET... | 15317153 | 1324 days ago | 0.03398498 ETH | ||||
| Transfer | 15317153 | 1324 days ago | 0.03398498 ETH | ||||
| Add Liquidity ET... | 15317142 | 1324 days ago | 0.01757595 ETH | ||||
| Transfer | 15317142 | 1324 days ago | 0.01757595 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ElonFloki
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-08-10
*/
// SPDX-License-Identifier: MIT
// Copyright (c) ElonFloki.pro
pragma solidity ^0.8;
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
);
event TransferDetails(
address indexed from,
address indexed to,
uint256 total_Amount,
uint256 reflected_amount,
uint256 total_TransferAmount,
uint256 reflected_TransferAmount
);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
(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"
);
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(
data
);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data)
internal
view
returns (bytes memory)
{
return
functionStaticCall(
target,
data,
"Address: low-level static call failed"
);
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return
functionDelegateCall(
target,
data,
"Address: low-level delegate call failed"
);
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) private pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_owner = _msgSender();
emit OwnershipTransferred(address(0), _owner);
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract ElonFloki is Context, IERC20, Ownable {
using Address for address;
mapping(address => uint256) public _balance_reflected;
mapping(address => uint256) public _balance_total;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public _isExcluded;
bool public blacklistMode = true;
mapping(address => bool) public isBlacklisted;
mapping(address => bool) public preTrader;
bool public tradingOpen = false;
uint256 private constant MAX = ~uint256(0);
uint8 public constant decimals = 9;
uint256 public constant totalSupply = 10**9 * 10**decimals;
uint256 private _supply_reflected = (MAX - (MAX % totalSupply));
string public constant name = "Elon Floki";
string public constant symbol = "E-FLOKI";
uint256 private _fee_treasury_convert_limit = totalSupply / 5000; // 0,02%
uint256 private _fee_marketing_convert_limit = totalSupply / 5000; // 0,02%
uint256 private _fee_treasury_min_bal = 0;
uint256 private _fee_marketing_min_bal = 0;
uint256 private _fee_reflection = 0;
uint256 private _fee_reflection_old = _fee_reflection;
uint256 private _contractReflectionStored = 0;
uint256 private _fee_marketing = 2;
uint256 private _fee_marketing_old = _fee_marketing;
address payable public _wallet_marketing;
uint256 private _fee_treasury = 0;
uint256 private _fee_treasury_old = _fee_treasury;
address payable public _wallet_treasury;
uint256 private _fee_liquidity = 1;
uint256 private _fee_liquidity_old = _fee_liquidity;
uint256 private _fee_denominator = 100;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
uint256 private _maxWalletToken = totalSupply / 20; // 5%
uint256 private _maxTxAmount = totalSupply / 100; // 1%
mapping(address => bool) public isFeeExempt;
mapping(address => bool) public isTxLimitExempt;
mapping(address => bool) public isWalletLimitExempt;
address[] public _excluded;
uint256 private swapThreshold = totalSupply / 1000; // 0,1% per swap
uint256 private sellMultiplier = 100;
uint256 private buyMultiplier = 100;
uint256 private transferMultiplier = 100;
event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
address constant deadAddress = 0x000000000000000000000000000000000000dEaD;
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor(address wallet_marketing, address wallet_treasury) {
_balance_reflected[owner()] = _supply_reflected;
_wallet_marketing = payable(wallet_marketing);
_wallet_treasury = payable(wallet_treasury);
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
isFeeExempt[_wallet_marketing] = true;
isFeeExempt[_wallet_treasury] = true;
isFeeExempt[deadAddress] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[deadAddress] = true;
isTxLimitExempt[_wallet_marketing] = true;
isTxLimitExempt[_wallet_treasury] = true;
isWalletLimitExempt[msg.sender] = true;
isWalletLimitExempt[address(this)] = true;
isWalletLimitExempt[deadAddress] = true;
isWalletLimitExempt[_wallet_marketing] = true;
isWalletLimitExempt[_wallet_treasury] = true;
preTrader[owner()] = true;
preTrader[uniswapV2Pair] = true;
emit Transfer(address(0), owner(), totalSupply);
}
function beforeRenounceOwnership() public onlyOwner {
isFeeExempt[uniswapV2Pair] = true;
isTxLimitExempt[uniswapV2Pair] = true;
isWalletLimitExempt[uniswapV2Pair] = true;
tradingOpen = true;
}
function balanceOf(address account) public view override returns (uint256) {
if (_isExcluded[account]) return _balance_total[account];
return tokenFromReflection(_balance_reflected[account]);
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
require(
_allowances[sender][_msgSender()] >= amount,
"ERC20: transfer amount exceeds allowance"
);
_approve(
sender,
_msgSender(),
(_allowances[sender][_msgSender()] - amount)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
(_allowances[_msgSender()][spender] + addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
require(
_allowances[_msgSender()][spender] >= subtractedValue,
"ERC20: decreased allowance below zero"
);
_approve(
_msgSender(),
spender,
(_allowances[_msgSender()][spender] - subtractedValue)
);
return true;
}
function tokenInfo()
public
view
returns (
uint256 MaxTxAmount,
uint256 MaxWalletToken,
uint256 TotalSupply,
uint256 Reflected_Supply,
uint256 Reflection_Rate,
bool TradingOpen
)
{
return (
_maxTxAmount,
_maxWalletToken,
totalSupply,
_supply_reflected,
_getRate(),
tradingOpen
);
}
function feesInfo()
public
view
returns (
uint256 SwapThreshold,
uint256 contractTokenBalance,
uint256 Reflection_tokens_stored
)
{
return (
swapThreshold,
balanceOf(address(this)),
_contractReflectionStored
);
}
function walletsInfo()
public
view
returns (
uint256 Reflection_Fees,
uint256 Liquidity_Fee,
uint256 Treasury_Fee,
uint256 Treasury_Fee_Convert_Limit,
uint256 Treasury_Fee_Minimum_Balance,
uint256 Marketing_Fee,
uint256 Marketing_Fee_Convert_Limit,
uint256 Marketing_Fee_Minimum_Balance
)
{
return (
_fee_reflection,
_fee_liquidity,
_fee_treasury,
_fee_treasury_convert_limit,
_fee_treasury_min_bal,
_fee_marketing,
_fee_marketing_convert_limit,
_fee_marketing_min_bal
);
}
function changeWallets(address _newMarketing, address _newTreasury)
external
onlyOwner
{
_wallet_marketing = payable(_newMarketing);
_wallet_treasury = payable(_newTreasury);
}
function tokenFromReflection(uint256 rAmount)
public
view
returns (uint256)
{
require(
rAmount <= _supply_reflected,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return (rAmount / currentRate);
}
function excludeFromReward(address account) external onlyOwner {
require(!_isExcluded[account], "Account is already excluded");
if (_balance_reflected[account] > 0) {
_balance_total[account] = tokenFromReflection(
_balance_reflected[account]
);
}
_isExcluded[account] = true;
_excluded.push(account);
}
function includeInReward(address account) external onlyOwner {
require(_isExcluded[account], "Account is already included");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_balance_total[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
function toggleTradingStatus(bool _status) external onlyOwner {
tradingOpen = _status;
}
function setMaxTxPercent_base1000(uint256 maxTxPercentBase1000)
external
onlyOwner
{
_maxTxAmount = (totalSupply * maxTxPercentBase1000) / 1000;
}
function setMaxWalletPercent_base1000(uint256 maxWallPercentBase1000)
external
onlyOwner
{
_maxWalletToken = (totalSupply * maxWallPercentBase1000) / 1000;
}
function setSwapSettings(bool _status, uint256 _threshold)
external
onlyOwner
{
swapAndLiquifyEnabled = _status;
swapThreshold = _threshold;
}
function enableBlacklist(bool _status) external onlyOwner {
blacklistMode = _status;
}
function manageBlacklist(address[] calldata addresses, bool status)
external
onlyOwner
{
for (uint256 i; i < addresses.length; ++i) {
isBlacklisted[addresses[i]] = status;
}
}
function managePreTrader(address[] calldata addresses, bool status)
external
onlyOwner
{
for (uint256 i; i < addresses.length; ++i) {
preTrader[addresses[i]] = status;
}
}
function manageExcludeFromFee(address[] calldata addresses, bool status)
external
onlyOwner
{
for (uint256 i; i < addresses.length; ++i) {
isFeeExempt[addresses[i]] = status;
}
}
function manageTxLimitExempt(address[] calldata addresses, bool status)
external
onlyOwner
{
require(
addresses.length < 501,
"GAS Error: max limit is 500 addresses"
);
for (uint256 i = 0; i < addresses.length; ++i) {
isTxLimitExempt[addresses[i]] = status;
}
}
function manageWalletLimitExempt(address[] calldata addresses, bool status)
external
onlyOwner
{
require(
addresses.length < 501,
"GAS Error: max limit is 500 addresses"
);
for (uint256 i = 0; i < addresses.length; ++i) {
isWalletLimitExempt[addresses[i]] = status;
}
}
/* Airdrop Begins */
function multiTransfer(
address from,
address[] calldata addresses,
uint256[] calldata tokens
) external onlyOwner {
uint256 sccc = 0;
uint256 reflectRate = _getRate();
require(
addresses.length == tokens.length,
"Mismatch between Address and token count"
);
for (uint256 i = 0; i < addresses.length; i++) {
sccc = sccc + tokens[i];
}
require(balanceOf(msg.sender) >= sccc, "Not enough tokens to airdrop");
_balance_reflected[from] =
_balance_reflected[from] -
sccc *
reflectRate;
if (_isExcluded[from]) {
_balance_total[from] = _balance_total[from] - sccc;
}
for (uint256 i = 0; i < addresses.length; i++) {
if (_isExcluded[addresses[i]]) {
_balance_total[addresses[i]] =
_balance_total[addresses[i]] +
tokens[i];
}
_balance_reflected[addresses[i]] =
_balance_reflected[addresses[i]] +
tokens[i] *
reflectRate;
emit Transfer(from, addresses[i], tokens[i]);
}
}
function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
uint256 amountToClear = (amountPercentage * address(this).balance) /
100;
payable(msg.sender).transfer(amountToClear);
}
function clearStuckToken(address tokenAddress, uint256 tokens)
external
onlyOwner
returns (bool success)
{
if (tokens == 0) {
tokens = IERC20(tokenAddress).balanceOf(address(this));
}
return IERC20(tokenAddress).transfer(msg.sender, tokens);
}
//core
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply / tSupply;
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _supply_reflected;
uint256 tSupply = totalSupply;
for (uint256 i = 0; i < _excluded.length; i++) {
if (
_balance_reflected[_excluded[i]] > rSupply ||
_balance_total[_excluded[i]] > tSupply
) return (_supply_reflected, totalSupply);
rSupply = rSupply - _balance_reflected[_excluded[i]];
tSupply = tSupply - _balance_total[_excluded[i]];
}
if (rSupply < (_supply_reflected / totalSupply))
return (_supply_reflected, totalSupply);
return (rSupply, tSupply);
}
function _getValues(
uint256 tAmount,
address recipient,
address sender
)
private
view
returns (
uint256 rAmount,
uint256 rTransferAmount,
uint256 rReflection,
uint256 tTransferAmount,
uint256 tMarketing,
uint256 tLiquidity,
uint256 tTreasury,
uint256 tReflection
)
{
uint256 multiplier = transferMultiplier;
if (recipient == uniswapV2Pair) {
multiplier = sellMultiplier;
} else if (sender == uniswapV2Pair) {
multiplier = buyMultiplier;
}
tMarketing =
((tAmount * _fee_marketing) * multiplier) /
(_fee_denominator * 100);
tLiquidity =
((tAmount * _fee_liquidity) * multiplier) /
(_fee_denominator * 100);
tTreasury =
((tAmount * _fee_treasury) * multiplier) /
(_fee_denominator * 100);
tReflection =
((tAmount * _fee_reflection) * multiplier) /
(_fee_denominator * 100);
tTransferAmount =
tAmount -
(tMarketing + tLiquidity + tTreasury + tReflection);
rReflection = tReflection * _getRate();
rAmount = tAmount * _getRate();
rTransferAmount = tTransferAmount * _getRate();
}
function _feesToEthProcess(
address payable wallet,
uint256 tokensToConvert
) private lockTheSwap {
uint256 rTokensToConvert = tokensToConvert * _getRate();
_balance_reflected[wallet] =
_balance_reflected[wallet] -
rTokensToConvert;
if (_isExcluded[wallet]) {
_balance_total[wallet] = _balance_total[wallet] - tokensToConvert;
}
_balance_reflected[address(this)] =
_balance_reflected[address(this)] +
rTokensToConvert;
emit Transfer(wallet, address(this), tokensToConvert);
swapTokensForEthAndSend(tokensToConvert, wallet);
}
function _feesToEth(
uint256 tokensToConvert,
address payable feeWallet,
uint256 minBalanceToKeep
) private {
if (tokensToConvert == 0) {
return;
}
if (tokensToConvert > _maxTxAmount) {
tokensToConvert = _maxTxAmount;
}
if ((tokensToConvert + minBalanceToKeep) <= balanceOf(feeWallet)) {
_feesToEthProcess(feeWallet, tokensToConvert);
}
}
function _takeFee(uint256 feeAmount, address receiverWallet) private {
uint256 reflectedReeAmount = feeAmount * _getRate();
_balance_reflected[receiverWallet] =
_balance_reflected[receiverWallet] +
reflectedReeAmount;
if (_isExcluded[receiverWallet]) {
_balance_total[receiverWallet] =
_balance_total[receiverWallet] +
feeAmount;
}
if (feeAmount > 0) {
emit Transfer(msg.sender, receiverWallet, feeAmount);
}
}
function _setAllFees(
uint256 marketingFee,
uint256 liquidityFees,
uint256 treasuryFee,
uint256 reflectionFees
) private {
_fee_marketing = marketingFee;
_fee_liquidity = liquidityFees;
_fee_treasury = treasuryFee;
_fee_reflection = reflectionFees;
}
function setMultipliers(
uint256 _buy,
uint256 _sell,
uint256 _trans
) external onlyOwner {
sellMultiplier = _sell;
buyMultiplier = _buy;
transferMultiplier = _trans;
}
function setAllFeesTriggers(
uint256 marketing_fee_convert_limit,
uint256 treasury_fee_convert_limit
) external onlyOwner {
_fee_marketing_convert_limit = marketing_fee_convert_limit;
_fee_treasury_convert_limit = treasury_fee_convert_limit;
}
function setAllFeesMinimumBalance(
uint256 marketing_fee_minimum_balance,
uint256 treasury_fee_minimum_balance
) external onlyOwner {
_fee_treasury_min_bal = treasury_fee_minimum_balance;
_fee_marketing_min_bal = marketing_fee_minimum_balance;
}
function setAllFees(
uint256 Treasury_Fee,
uint256 Liquidity_Fees,
uint256 Reflection_Fees,
uint256 Marketing_Fee
) external onlyOwner {
uint256 total_fees = Marketing_Fee +
Liquidity_Fees +
Treasury_Fee +
Reflection_Fees;
require(total_fees < 31, "Max fee allowed is 30%");
_setAllFees(
Marketing_Fee,
Liquidity_Fees,
Treasury_Fee,
Reflection_Fees
);
}
function sendToken(
IERC20 token,
address recipient,
uint256 value
) external onlyOwner {
token.transfer(recipient, value);
}
function removeAllFee() private {
_fee_marketing_old = _fee_marketing;
_fee_liquidity_old = _fee_liquidity;
_fee_treasury_old = _fee_treasury;
_fee_reflection_old = _fee_reflection;
_setAllFees(0, 0, 0, 0);
}
function restoreAllFee() private {
_setAllFees(
_fee_marketing_old,
_fee_liquidity_old,
_fee_treasury_old,
_fee_reflection_old
);
}
function swapAndLiquify(uint256 tokensToSwap) private lockTheSwap {
uint256 tokensHalf = tokensToSwap / 2;
uint256 contractETHBalance = address(this).balance;
swapTokensForEth(tokensHalf);
uint256 ethSwapped = address(this).balance - contractETHBalance;
addLiquidity(tokensHalf, ethSwapped);
emit SwapAndLiquify(tokensToSwap, tokensHalf, ethSwapped);
}
function swapTokensForEth(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function swapTokensForEthAndSend(
uint256 tokenAmount,
address payable receiverWallet
) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
receiverWallet,
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0,
0,
owner(),
block.timestamp
);
}
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 _transfer(
address from,
address to,
uint256 amount
) private {
if (tradingOpen == false) {
require(preTrader[to] == true, "Can not transfer");
}
if (blacklistMode == true) {
require(isBlacklisted[from] == false, "Blacklisted");
}
require(
(amount <= _maxTxAmount) ||
isTxLimitExempt[from] ||
isTxLimitExempt[to],
"Max TX Limit Exceeded"
);
if (
!isWalletLimitExempt[from] &&
!isWalletLimitExempt[to] &&
to != uniswapV2Pair
) {
require(
(balanceOf(to) + amount) <= _maxWalletToken,
"max wallet limit reached"
);
}
// extra bracket to supress stack too deep error
{
uint256 contractTokenBalance = balanceOf(address(this));
if (contractTokenBalance >= _maxTxAmount) {
contractTokenBalance = _maxTxAmount - 1;
}
bool overMinTokenBalance = contractTokenBalance >= swapThreshold;
if (
overMinTokenBalance &&
!inSwapAndLiquify &&
from != uniswapV2Pair &&
swapAndLiquifyEnabled
) {
contractTokenBalance = swapThreshold;
swapAndLiquify(contractTokenBalance);
}
// Convert fees to eth
if (
!inSwapAndLiquify &&
from != uniswapV2Pair &&
swapAndLiquifyEnabled
) {
_feesToEth(
_fee_treasury_convert_limit,
_wallet_treasury,
_fee_treasury_min_bal
);
_feesToEth(
_fee_marketing_convert_limit,
_wallet_marketing,
_fee_marketing_min_bal
);
}
}
bool takeFee = true;
if (isFeeExempt[from] || isFeeExempt[to]) {
takeFee = false;
removeAllFee();
}
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rReflection,
uint256 tTransferAmount,
uint256 tMarketing,
uint256 tLiquidity,
uint256 tTreasury,
uint256 tReflection
) = _getValues(amount, to, from);
_transferStandard(
from,
to,
amount,
rAmount,
tTransferAmount,
rTransferAmount
);
_supply_reflected = _supply_reflected - rReflection;
_contractReflectionStored = _contractReflectionStored + tReflection;
if (!takeFee) {
restoreAllFee();
} else {
_takeFee(tMarketing, _wallet_marketing);
_takeFee(tLiquidity, address(this));
_takeFee(tTreasury, _wallet_treasury);
}
}
function _transferStandard(
address from,
address to,
uint256 tAmount,
uint256 rAmount,
uint256 tTransferAmount,
uint256 rTransferAmount
) private {
_balance_reflected[from] = _balance_reflected[from] - rAmount;
if (_isExcluded[from]) {
_balance_total[from] = _balance_total[from] - tAmount;
}
if (_isExcluded[to]) {
_balance_total[to] = _balance_total[to] + tTransferAmount;
}
_balance_reflected[to] = _balance_reflected[to] + rTransferAmount;
if (tTransferAmount > 0) {
emit Transfer(from, to, tTransferAmount);
}
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"wallet_marketing","type":"address"},{"internalType":"address","name":"wallet_treasury","type":"address"}],"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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"total_Amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reflected_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"total_TransferAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reflected_TransferAmount","type":"uint256"}],"name":"TransferDetails","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balance_reflected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balance_total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_excluded","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_wallet_marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_wallet_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeRenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketing","type":"address"},{"internalType":"address","name":"_newTreasury","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesInfo","outputs":[{"internalType":"uint256","name":"SwapThreshold","type":"uint256"},{"internalType":"uint256","name":"contractTokenBalance","type":"uint256"},{"internalType":"uint256","name":"Reflection_tokens_stored","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"managePreTrader","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"sendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Treasury_Fee","type":"uint256"},{"internalType":"uint256","name":"Liquidity_Fees","type":"uint256"},{"internalType":"uint256","name":"Reflection_Fees","type":"uint256"},{"internalType":"uint256","name":"Marketing_Fee","type":"uint256"}],"name":"setAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing_fee_minimum_balance","type":"uint256"},{"internalType":"uint256","name":"treasury_fee_minimum_balance","type":"uint256"}],"name":"setAllFeesMinimumBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing_fee_convert_limit","type":"uint256"},{"internalType":"uint256","name":"treasury_fee_convert_limit","type":"uint256"}],"name":"setAllFeesTriggers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercentBase1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercentBase1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"toggleTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenInfo","outputs":[{"internalType":"uint256","name":"MaxTxAmount","type":"uint256"},{"internalType":"uint256","name":"MaxWalletToken","type":"uint256"},{"internalType":"uint256","name":"TotalSupply","type":"uint256"},{"internalType":"uint256","name":"Reflected_Supply","type":"uint256"},{"internalType":"uint256","name":"Reflection_Rate","type":"uint256"},{"internalType":"bool","name":"TradingOpen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletsInfo","outputs":[{"internalType":"uint256","name":"Reflection_Fees","type":"uint256"},{"internalType":"uint256","name":"Liquidity_Fee","type":"uint256"},{"internalType":"uint256","name":"Treasury_Fee","type":"uint256"},{"internalType":"uint256","name":"Treasury_Fee_Convert_Limit","type":"uint256"},{"internalType":"uint256","name":"Treasury_Fee_Minimum_Balance","type":"uint256"},{"internalType":"uint256","name":"Marketing_Fee","type":"uint256"},{"internalType":"uint256","name":"Marketing_Fee_Convert_Limit","type":"uint256"},{"internalType":"uint256","name":"Marketing_Fee_Minimum_Balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c06040526005805460ff199081166001179091556008805490911690556200002b6009600a620006d1565b6200003b90633b9aca00620006e9565b620000499060001962000721565b620000579060001962000738565b6009556113886009600a6200006d9190620006d1565b6200007d90633b9aca00620006e9565b6200008991906200074e565b600a556113886009600a6200009f9190620006d1565b620000af90633b9aca00620006e9565b620000bb91906200074e565b600b556000600c819055600d819055600e819055600f8190556010819055600260118190556012556014818155601591909155600160178190556018556064601955601a805461ff0019166101001790556200011a6009600a620006d1565b6200012a90633b9aca00620006e9565b6200013691906200074e565b601b556064620001496009600a620006d1565b6200015990633b9aca00620006e9565b6200016591906200074e565b601c556103e8620001796009600a620006d1565b6200018990633b9aca00620006e9565b6200019591906200074e565b602155606460225560646023556064602455348015620001b457600080fd5b506040516200431638038062004316833981016040819052620001d79162000782565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620002306000546001600160a01b031690565b6001600160a01b039081168252602080830193909352604091820160002093909355601380546001600160a01b0319908116878616179091556016805490911693851693909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec9190620007ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003609190620007ba565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d49190620007ba565b6001600160a01b0390811660a0819052828216608052336000818152601d602090815260408083208054600160ff199182168117909255308086528386208054831684179055601380548a1687528487208054841685179055601680548b16885285882080548516861790557ffa758cef5bd0db441ee78e87b9ceab03f7b5d7b78ff593b3cf8150611abcb9998054851686179055888852601e875285882080548516861790557f8a622fd893f993f50f1795ae2bf707bdf4143f678ec4998626679a2f447616df805485168617905581548b168852858820805485168617905580548b1688528588208054851686179055978752601f8652848720805484168517905590865283862080548316841790557fef94442dfc0e910ca743614215a10fad3ff708bf5378f9c5c958c9192b3bf0048054831684179055548816855282852080548216831790559454871684528184208054861682179055835487168452600790925280832080548516831790559382529281208054909216909217905554166001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005926009600a620006d1565b620005a290633b9aca00620006e9565b60405190815260200160405180910390a3505050620007d8565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000613578160001904821115620005f757620005f7620005bc565b808516156200060557918102915b93841c9390800290620005d7565b509250929050565b6000826200062c57506001620006cb565b816200063b57506000620006cb565b81600181146200065457600281146200065f576200067f565b6001915050620006cb565b60ff841115620006735762000673620005bc565b50506001821b620006cb565b5060208310610133831016604e8410600b8410161715620006a4575081810a620006cb565b620006b08383620005d2565b8060001904821115620006c757620006c7620005bc565b0290505b92915050565b6000620006e260ff8416836200061b565b9392505050565b6000816000190483118215151615620007065762000706620005bc565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200073357620007336200070b565b500690565b81810381811115620006cb57620006cb620005bc565b6000826200076057620007606200070b565b500490565b80516001600160a01b03811681146200077d57600080fd5b919050565b600080604083850312156200079657600080fd5b620007a18362000765565b9150620007b16020840162000765565b90509250929050565b600060208284031215620007cd57600080fd5b620006e28262000765565b60805160a051613ab662000860600039600081816106ca015281816117ef015281816124530152818161253a015281816125a501528181612a270152612a690152600081816104d201528181612eb001528181612f6901528181612fa5015281816130170152818161303e015281816132950152818161334e015261338a0152613ab66000f3fe60806040526004361061036f5760003560e01c8063666a245d116101c6578063a457c2d7116100f7578063ce54f29c11610095578063f2fde38b1161006f578063f2fde38b14610b77578063fb2f349214610b97578063fe575a8714610bb7578063ffb54a9914610be757600080fd5b8063ce54f29c14610af1578063d0e1032614610b11578063dd62ed3e14610b3157600080fd5b8063b1eb20e9116100d1578063b1eb20e914610a44578063bd9ab53714610a71578063bdd795ef14610a91578063c867d60b14610ac157600080fd5b8063a457c2d7146109e4578063a61699c414610a04578063a9059cbb14610a2457600080fd5b806377b54bad116101645780638b42507f1161013e5780638b42507f146109435780638da5cb5b14610973578063919f58131461099157806395d89b41146109b157600080fd5b806377b54bad146108a9578063896648c1146108c95780638a948c79146108e357600080fd5b80636ce46bc3116101a05780636ce46bc31461083457806370a0823114610854578063715018a61461087457806376c25db51461088957600080fd5b8063666a245d146107b05780636a72bbe0146107d05780636addb663146107f057600080fd5b80632d838119116102a057806349bd5a5e1161023e578063500d0de111610218578063500d0de11461072b578063502054ca1461075b57806352390c02146107705780635cb91e971461079057600080fd5b806349bd5a5e146106b85780634a74bb02146106ec5780634d09deb31461070b57600080fd5b8063313ce5671161027a578063313ce567146106215780633685d4191461064857806339509351146106685780633f4218e01461068857600080fd5b80632d838119146105c15780632eb4f01a146105e15780632fdcfbd21461060157600080fd5b80631694505e1161030d5780631da1db5e116102e75780631da1db5e1461054157806323b872dd146105615780632aea52ab146105815780632c97d3d4146105a157600080fd5b80631694505e146104c057806318160ddd1461050c5780631ca0a28d1461052157600080fd5b8063095ea7b311610349578063095ea7b3146104205780630b285b1f146104505780630d153872146104805780630ecc200f146104a057600080fd5b8063053cfa251461037b57806306fdde03146103bb57806309302dc6146103fe57600080fd5b3661037657005b600080fd5b34801561038757600080fd5b506103a8610396366004613417565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156103c757600080fd5b506103f16040518060400160405280600a815260200169456c6f6e20466c6f6b6960b01b81525081565b6040516103b29190613434565b34801561040a57600080fd5b5061041e610419366004613482565b610c01565b005b34801561042c57600080fd5b5061044061043b36600461349b565b610c6c565b60405190151581526020016103b2565b34801561045c57600080fd5b5061044061046b366004613417565b60046020526000908152604090205460ff1681565b34801561048c57600080fd5b5061041e61049b366004613521565b610c83565b3480156104ac57600080fd5b5061041e6104bb366004613521565b610d43565b3480156104cc57600080fd5b506104f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103b2565b34801561051857600080fd5b506103a8610ddc565b34801561052d57600080fd5b5061041e61053c366004613578565b610df9565b34801561054d57600080fd5b5061041e61055c366004613482565b611225565b34801561056d57600080fd5b5061044061057c3660046135fb565b61129c565b34801561058d57600080fd5b5061041e61059c36600461363c565b611372565b3480156105ad57600080fd5b506016546104f4906001600160a01b031681565b3480156105cd57600080fd5b506103a86105dc366004613482565b6113af565b3480156105ed57600080fd5b5061041e6105fc366004613521565b611433565b34801561060d57600080fd5b5061041e61061c3660046135fb565b6114ed565b34801561062d57600080fd5b50610636600981565b60405160ff90911681526020016103b2565b34801561065457600080fd5b5061041e610663366004613417565b61158a565b34801561067457600080fd5b5061044061068336600461349b565b611743565b34801561069457600080fd5b506104406106a3366004613417565b601d6020526000908152604090205460ff1681565b3480156106c457600080fd5b506104f47f000000000000000000000000000000000000000000000000000000000000000081565b3480156106f857600080fd5b50601a5461044090610100900460ff1681565b34801561071757600080fd5b506104f4610726366004613482565b61177a565b34801561073757600080fd5b506107406117a4565b604080519384526020840192909252908201526060016103b2565b34801561076757600080fd5b5061041e6117c3565b34801561077c57600080fd5b5061041e61078b366004613417565b611863565b34801561079c57600080fd5b5061041e6107ab366004613521565b6119b5565b3480156107bc57600080fd5b506013546104f4906001600160a01b031681565b3480156107dc57600080fd5b5061041e6107eb36600461363c565b611a4e565b3480156107fc57600080fd5b50610805611a8b565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c0016103b2565b34801561084057600080fd5b5061041e61084f366004613659565b611adb565b34801561086057600080fd5b506103a861086f366004613417565b611b16565b34801561088057600080fd5b5061041e611b75565b34801561089557600080fd5b5061041e6108a4366004613685565b611be9565b3480156108b557600080fd5b506104406108c436600461349b565b611c1e565b3480156108d557600080fd5b506005546104409060ff1681565b3480156108ef57600080fd5b50600e54601754601454600a54600c54601154600b54600d54604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016103b2565b34801561094f57600080fd5b5061044061095e366004613417565b601e6020526000908152604090205460ff1681565b34801561097f57600080fd5b506000546001600160a01b03166104f4565b34801561099d57600080fd5b5061041e6109ac366004613685565b611d2d565b3480156109bd57600080fd5b506103f160405180604001604052806007815260200166452d464c4f4b4960c81b81525081565b3480156109f057600080fd5b506104406109ff36600461349b565b611d5f565b348015610a1057600080fd5b5061041e610a1f3660046136a7565b611e16565b348015610a3057600080fd5b50610440610a3f36600461349b565b611e6e565b348015610a5057600080fd5b506103a8610a5f366004613417565b60016020526000908152604090205481565b348015610a7d57600080fd5b5061041e610a8c366004613482565b611e7b565b348015610a9d57600080fd5b50610440610aac366004613417565b60076020526000908152604090205460ff1681565b348015610acd57600080fd5b50610440610adc366004613417565b601f6020526000908152604090205460ff1681565b348015610afd57600080fd5b5061041e610b0c3660046136e0565b611edd565b348015610b1d57600080fd5b5061041e610b2c366004613712565b611f90565b348015610b3d57600080fd5b506103a8610b4c3660046136a7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610b8357600080fd5b5061041e610b92366004613417565b611fd8565b348015610ba357600080fd5b5061041e610bb2366004613521565b6120c2565b348015610bc357600080fd5b50610440610bd2366004613417565b60066020526000908152604090205460ff1681565b348015610bf357600080fd5b506008546104409060ff1681565b6000546001600160a01b03163314610c345760405162461bcd60e51b8152600401610c2b90613730565b60405180910390fd5b6103e881610c446009600a61385f565b610c5290633b9aca0061386e565b610c5c919061386e565b610c66919061388d565b601b5550565b6000610c7933848461215b565b5060015b92915050565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610c2b90613730565b6101f58210610cce5760405162461bcd60e51b8152600401610c2b906138af565b60005b82811015610d3d5781601f6000868685818110610cf057610cf06138f4565b9050602002016020810190610d059190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d368161390a565b9050610cd1565b50505050565b6000546001600160a01b03163314610d6d5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d5781601d6000868685818110610d8f57610d8f6138f4565b9050602002016020810190610da49190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dd58161390a565b9050610d70565b610de86009600a61385f565b610df690633b9aca0061386e565b81565b6000546001600160a01b03163314610e235760405162461bcd60e51b8152600401610c2b90613730565b600080610e2e612280565b9050848314610e905760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c2b565b60005b85811015610ed357848482818110610ead57610ead6138f4565b9050602002013583610ebf9190613923565b925080610ecb8161390a565b915050610e93565b5081610ede33611b16565b1015610f2c5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f70000000006044820152606401610c2b565b610f36818361386e565b6001600160a01b038816600090815260016020526040902054610f599190613936565b6001600160a01b03881660009081526001602090815260408083209390935560049052205460ff1615610fc4576001600160a01b038716600090815260026020526040902054610faa908390613936565b6001600160a01b0388166000908152600260205260409020555b60005b8581101561121b5760046000888884818110610fe557610fe56138f4565b9050602002016020810190610ffa9190613417565b6001600160a01b0316815260208101919091526040016000205460ff16156110d15784848281811061102e5761102e6138f4565b905060200201356002600089898581811061104b5761104b6138f4565b90506020020160208101906110609190613417565b6001600160a01b03166001600160a01b031681526020019081526020016000205461108b9190613923565b600260008989858181106110a1576110a16138f4565b90506020020160208101906110b69190613417565b6001600160a01b031681526020810191909152604001600020555b818585838181106110e4576110e46138f4565b905060200201356110f5919061386e565b6001600089898581811061110b5761110b6138f4565b90506020020160208101906111209190613417565b6001600160a01b03166001600160a01b031681526020019081526020016000205461114b9190613923565b60016000898985818110611161576111616138f4565b90506020020160208101906111769190613417565b6001600160a01b031681526020810191909152604001600020558686828181106111a2576111a26138f4565b90506020020160208101906111b79190613417565b6001600160a01b0316886001600160a01b0316600080516020613a618339815191528787858181106111eb576111eb6138f4565b9050602002013560405161120191815260200190565b60405180910390a3806112138161390a565b915050610fc7565b5050505050505050565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610c2b90613730565b6000606461125d478461386e565b611267919061388d565b604051909150339082156108fc029083906000818181858888f19350505050158015611297573d6000803e3d6000fd5b505050565b60006112a98484846122a3565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561132d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c2b565b6001600160a01b038416600090815260036020908152604080832033808552925290912054611368918691611363908690613936565b61215b565b5060019392505050565b6000546001600160a01b0316331461139c5760405162461bcd60e51b8152600401610c2b90613730565b6005805460ff1916911515919091179055565b60006009548211156114165760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c2b565b6000611420612280565b905061142c818461388d565b9392505050565b6000546001600160a01b0316331461145d5760405162461bcd60e51b8152600401610c2b90613730565b6101f5821061147e5760405162461bcd60e51b8152600401610c2b906138af565b60005b82811015610d3d5781601e60008686858181106114a0576114a06138f4565b90506020020160208101906114b59190613417565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114e68161390a565b9050611481565b6000546001600160a01b031633146115175760405162461bcd60e51b8152600401610c2b90613730565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611566573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190613949565b6000546001600160a01b031633146115b45760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b03811660009081526004602052604090205460ff1661161c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610c2b565b60005b60205481101561173f57816001600160a01b031660208281548110611646576116466138f4565b6000918252602090912001546001600160a01b03160361172d576020805461167090600190613936565b81548110611680576116806138f4565b9060005260206000200160009054906101000a90046001600160a01b0316602082815481106116b1576116b16138f4565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600483529020805460ff1916905580548061170757611707613966565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806117378161390a565b91505061161f565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610c79918590611363908690613923565b6020818154811061178a57600080fd5b6000918252602090912001546001600160a01b0316905081565b60008060006021546117b530611b16565b601054925092509250909192565b6000546001600160a01b031633146117ed5760405162461bcd60e51b8152600401610c2b90613730565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152601d602090815260408083208054600160ff199182168117909255601e84528285208054821683179055601f90935292208054821683179055600880549091169091179055565b6000546001600160a01b0316331461188d5760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b03811660009081526004602052604090205460ff16156118f65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c2b565b6001600160a01b03811660009081526001602052604090205415611950576001600160a01b038116600090815260016020526040902054611936906113af565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b031660008181526004602090815260408220805460ff191660019081179091558154908101825591527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319169091179055565b6000546001600160a01b031633146119df5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d578160076000868685818110611a0157611a016138f4565b9050602002016020810190611a169190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a478161390a565b90506119e2565b6000546001600160a01b03163314611a785760405162461bcd60e51b8152600401610c2b90613730565b6008805460ff1916911515919091179055565b600080600080600080601c54601b546009600a611aa8919061385f565b611ab690633b9aca0061386e565b600954611ac1612280565b600854949b939a509198509650945060ff90911692509050565b6000546001600160a01b03163314611b055760405162461bcd60e51b8152600401610c2b90613730565b602291909155602391909155602455565b6001600160a01b03811660009081526004602052604081205460ff1615611b5357506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c7d906113af565b6000546001600160a01b03163314611b9f5760405162461bcd60e51b8152600401610c2b90613730565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314611c135760405162461bcd60e51b8152600401610c2b90613730565b600b91909155600a55565b600080546001600160a01b03163314611c495760405162461bcd60e51b8152600401610c2b90613730565b81600003611cbc576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb9919061397c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142c9190613949565b6000546001600160a01b03163314611d575760405162461bcd60e51b8152600401610c2b90613730565b600c55600d55565b3360009081526003602090815260408083206001600160a01b0386168452909152812054821115611de05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c2b565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610c7991908590611363908690613936565b6000546001600160a01b03163314611e405760405162461bcd60e51b8152600401610c2b90613730565b601380546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c793384846122a3565b6000546001600160a01b03163314611ea55760405162461bcd60e51b8152600401610c2b90613730565b6103e881611eb56009600a61385f565b611ec390633b9aca0061386e565b611ecd919061386e565b611ed7919061388d565b601c5550565b6000546001600160a01b03163314611f075760405162461bcd60e51b8152600401610c2b90613730565b60008285611f158685613923565b611f1f9190613923565b611f299190613923565b9050601f8110611f745760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732033302560501b6044820152606401610c2b565b601182905560178490556014859055600e8390555b5050505050565b6000546001600160a01b03163314611fba5760405162461bcd60e51b8152600401610c2b90613730565b601a80549215156101000261ff001990931692909217909155602155565b6000546001600160a01b031633146120025760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b0381166120675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146120ec5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d57816006600086868581811061210e5761210e6138f4565b90506020020160208101906121239190613417565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556121548161390a565b90506120ef565b6001600160a01b0383166121bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c2b565b6001600160a01b03821661221e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c2b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600080600061228d612756565b909250905061229c818361388d565b9250505090565b60085460ff161515600003612312576001600160a01b03821660009081526007602052604090205460ff1615156001146123125760405162461bcd60e51b815260206004820152601060248201526f21b0b7103737ba103a3930b739b332b960811b6044820152606401610c2b565b60055460ff161515600103612378576001600160a01b03831660009081526006602052604090205460ff16156123785760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c2b565b601c54811115806123a157506001600160a01b0383166000908152601e602052604090205460ff165b806123c457506001600160a01b0382166000908152601e602052604090205460ff165b6124085760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610c2b565b6001600160a01b0383166000908152601f602052604090205460ff1615801561244a57506001600160a01b0382166000908152601f602052604090205460ff16155b801561248857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b156124f257601b548161249a84611b16565b6124a49190613923565b11156124f25760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610c2b565b60006124fd30611b16565b9050601c54811061251a576001601c546125179190613936565b90505b602154811080159081906125315750601a5460ff16155b801561256f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156125825750601a54610100900460ff165b1561259557602154915061259582612942565b601a5460ff161580156125da57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156125ed5750601a54610100900460ff165b1561262c57600a54601654600c5461260f92916001600160a01b0316906129d1565b600b54601354600d5461262c92916001600160a01b0316906129d1565b50506001600160a01b0383166000908152601d602052604090205460019060ff168061267057506001600160a01b0383166000908152601d602052604090205460ff165b156126a7575060006126a7601180546012556017805460185560148054601555600e8054600f556000938490559183905582905555565b6000806000806000806000806126be8a8c8e612a12565b975097509750975097509750975097506126dc8c8c8c8b898c612bea565b856009546126ea9190613936565b6009556010546126fb908290613923565b601055886127105761270b612d5f565b612748565b6013546127279085906001600160a01b0316612d82565b6127318330612d82565b6016546127489083906001600160a01b0316612d82565b505050505050505050505050565b6000806000600954905060006009600a612770919061385f565b61277e90633b9aca0061386e565b905060005b6020548110156128e1578260016000602084815481106127a5576127a56138f4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061281057508160026000602084815481106127e9576127e96138f4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561283f576009546009600a612826919061385f565b61283490633b9aca0061386e565b945094505050509091565b6001600060208381548110612856576128566138f4565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128859084613936565b9250600260006020838154811061289e5761289e6138f4565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128cd9083613936565b9150806128d98161390a565b915050612783565b506128ee6009600a61385f565b6128fc90633b9aca0061386e565b600954612909919061388d565b821015612939576009546009600a612921919061385f565b61292f90633b9aca0061386e565b9350935050509091565b90939092509050565b601a805460ff19166001179055600061295c60028361388d565b90504761296882612e59565b60006129748247613936565b90506129808382613011565b60408051858152602081018590529081018290527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050601a805460ff191690555050565b826000036129de57505050565b601c548311156129ee57601c5492505b6129f782611b16565b612a018285613923565b11611297576112978284613110565b565b600080600080600080600080600060245490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b031603612a675750602254612aa5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a6001600160a01b031603612aa557506023545b601954612ab390606461386e565b816011548e612ac2919061386e565b612acc919061386e565b612ad6919061388d565b94506019546064612ae7919061386e565b816017548e612af6919061386e565b612b00919061386e565b612b0a919061388d565b93506019546064612b1b919061386e565b816014548e612b2a919061386e565b612b34919061386e565b612b3e919061388d565b92506019546064612b4f919061386e565b81600e548e612b5e919061386e565b612b68919061386e565b612b72919061388d565b91508183612b808688613923565b612b8a9190613923565b612b949190613923565b612b9e908d613936565b9550612ba8612280565b612bb2908361386e565b9650612bbc612280565b612bc6908d61386e565b9850612bd0612280565b612bda908761386e565b9750509397509397509397509397565b6001600160a01b038616600090815260016020526040902054612c0e908490613936565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615612c79576001600160a01b038616600090815260026020526040902054612c5f908590613936565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615612cd8576001600160a01b038516600090815260026020526040902054612cbe908390613923565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054612cfc908290613923565b6001600160a01b0386166000908152600160205260409020558115612d5757846001600160a01b0316866001600160a01b0316600080516020613a6183398151915284604051612d4e91815260200190565b60405180910390a35b505050505050565b612a10601254601854601554600f54601193909355601791909155601455600e55565b6000612d8c612280565b612d96908461386e565b6001600160a01b038316600090815260016020526040902054909150612dbd908290613923565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615612e28576001600160a01b038216600090815260026020526040902054612e0e908490613923565b6001600160a01b0383166000908152600260205260409020555b8215611297576040518381526001600160a01b038316903390600080516020613a6183398151915290602001612273565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e8e57612e8e6138f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f309190613995565b81600181518110612f4357612f436138f4565b60200260200101906001600160a01b031690816001600160a01b031681525050612f8e307f00000000000000000000000000000000000000000000000000000000000000008461215b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612fe39085906000908690309042906004016139f6565b600060405180830381600087803b158015612ffd57600080fd5b505af1158015612d57573d6000803e3d6000fd5b61303c307f00000000000000000000000000000000000000000000000000000000000000008461215b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806130836000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156130eb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f899190613a32565b601a805460ff191660011790556000613127612280565b613131908361386e565b6001600160a01b038416600090815260016020526040902054909150613158908290613936565b6001600160a01b03841660009081526001602090815260408083209390935560049052205460ff16156131c3576001600160a01b0383166000908152600260205260409020546131a9908390613936565b6001600160a01b0384166000908152600260205260409020555b306000908152600160205260409020546131de908290613923565b30600081815260016020526040908190209290925590516001600160a01b03851690600080516020613a618339815191529061321d9086815260200190565b60405180910390a361322f828461323e565b5050601a805460ff1916905550565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613273576132736138f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133159190613995565b81600181518110613328576133286138f4565b60200260200101906001600160a01b031690816001600160a01b031681525050613373307f00000000000000000000000000000000000000000000000000000000000000008561215b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906133c89086906000908690889042906004016139f6565b600060405180830381600087803b1580156133e257600080fd5b505af11580156133f6573d6000803e3d6000fd5b50505050505050565b6001600160a01b038116811461341457600080fd5b50565b60006020828403121561342957600080fd5b813561142c816133ff565b600060208083528351808285015260005b8181101561346157858101830151858201604001528201613445565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561349457600080fd5b5035919050565b600080604083850312156134ae57600080fd5b82356134b9816133ff565b946020939093013593505050565b60008083601f8401126134d957600080fd5b50813567ffffffffffffffff8111156134f157600080fd5b6020830191508360208260051b850101111561350c57600080fd5b9250929050565b801515811461341457600080fd5b60008060006040848603121561353657600080fd5b833567ffffffffffffffff81111561354d57600080fd5b613559868287016134c7565b909450925050602084013561356d81613513565b809150509250925092565b60008060008060006060868803121561359057600080fd5b853561359b816133ff565b9450602086013567ffffffffffffffff808211156135b857600080fd5b6135c489838a016134c7565b909650945060408801359150808211156135dd57600080fd5b506135ea888289016134c7565b969995985093965092949392505050565b60008060006060848603121561361057600080fd5b833561361b816133ff565b9250602084013561362b816133ff565b929592945050506040919091013590565b60006020828403121561364e57600080fd5b813561142c81613513565b60008060006060848603121561366e57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561369857600080fd5b50508035926020909101359150565b600080604083850312156136ba57600080fd5b82356136c5816133ff565b915060208301356136d5816133ff565b809150509250929050565b600080600080608085870312156136f657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561372557600080fd5b82356134b981613513565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137b657816000190482111561379c5761379c613765565b808516156137a957918102915b93841c9390800290613780565b509250929050565b6000826137cd57506001610c7d565b816137da57506000610c7d565b81600181146137f057600281146137fa57613816565b6001915050610c7d565b60ff84111561380b5761380b613765565b50506001821b610c7d565b5060208310610133831016604e8410600b8410161715613839575081810a610c7d565b613843838361377b565b806000190482111561385757613857613765565b029392505050565b600061142c60ff8416836137be565b600081600019048311821515161561388857613888613765565b500290565b6000826138aa57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161391c5761391c613765565b5060010190565b80820180821115610c7d57610c7d613765565b81810381811115610c7d57610c7d613765565b60006020828403121561395b57600080fd5b815161142c81613513565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561398e57600080fd5b5051919050565b6000602082840312156139a757600080fd5b815161142c816133ff565b600081518084526020808501945080840160005b838110156139eb5781516001600160a01b0316875295820195908201906001016139c6565b509495945050505050565b85815284602082015260a060408201526000613a1560a08301866139b2565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215613a4757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207703626d3f7c38d3623e5923ec656106976d3a90583ab05af6b87813621a878164736f6c6343000810003300000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db600000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db6
Deployed Bytecode
0x60806040526004361061036f5760003560e01c8063666a245d116101c6578063a457c2d7116100f7578063ce54f29c11610095578063f2fde38b1161006f578063f2fde38b14610b77578063fb2f349214610b97578063fe575a8714610bb7578063ffb54a9914610be757600080fd5b8063ce54f29c14610af1578063d0e1032614610b11578063dd62ed3e14610b3157600080fd5b8063b1eb20e9116100d1578063b1eb20e914610a44578063bd9ab53714610a71578063bdd795ef14610a91578063c867d60b14610ac157600080fd5b8063a457c2d7146109e4578063a61699c414610a04578063a9059cbb14610a2457600080fd5b806377b54bad116101645780638b42507f1161013e5780638b42507f146109435780638da5cb5b14610973578063919f58131461099157806395d89b41146109b157600080fd5b806377b54bad146108a9578063896648c1146108c95780638a948c79146108e357600080fd5b80636ce46bc3116101a05780636ce46bc31461083457806370a0823114610854578063715018a61461087457806376c25db51461088957600080fd5b8063666a245d146107b05780636a72bbe0146107d05780636addb663146107f057600080fd5b80632d838119116102a057806349bd5a5e1161023e578063500d0de111610218578063500d0de11461072b578063502054ca1461075b57806352390c02146107705780635cb91e971461079057600080fd5b806349bd5a5e146106b85780634a74bb02146106ec5780634d09deb31461070b57600080fd5b8063313ce5671161027a578063313ce567146106215780633685d4191461064857806339509351146106685780633f4218e01461068857600080fd5b80632d838119146105c15780632eb4f01a146105e15780632fdcfbd21461060157600080fd5b80631694505e1161030d5780631da1db5e116102e75780631da1db5e1461054157806323b872dd146105615780632aea52ab146105815780632c97d3d4146105a157600080fd5b80631694505e146104c057806318160ddd1461050c5780631ca0a28d1461052157600080fd5b8063095ea7b311610349578063095ea7b3146104205780630b285b1f146104505780630d153872146104805780630ecc200f146104a057600080fd5b8063053cfa251461037b57806306fdde03146103bb57806309302dc6146103fe57600080fd5b3661037657005b600080fd5b34801561038757600080fd5b506103a8610396366004613417565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156103c757600080fd5b506103f16040518060400160405280600a815260200169456c6f6e20466c6f6b6960b01b81525081565b6040516103b29190613434565b34801561040a57600080fd5b5061041e610419366004613482565b610c01565b005b34801561042c57600080fd5b5061044061043b36600461349b565b610c6c565b60405190151581526020016103b2565b34801561045c57600080fd5b5061044061046b366004613417565b60046020526000908152604090205460ff1681565b34801561048c57600080fd5b5061041e61049b366004613521565b610c83565b3480156104ac57600080fd5b5061041e6104bb366004613521565b610d43565b3480156104cc57600080fd5b506104f47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103b2565b34801561051857600080fd5b506103a8610ddc565b34801561052d57600080fd5b5061041e61053c366004613578565b610df9565b34801561054d57600080fd5b5061041e61055c366004613482565b611225565b34801561056d57600080fd5b5061044061057c3660046135fb565b61129c565b34801561058d57600080fd5b5061041e61059c36600461363c565b611372565b3480156105ad57600080fd5b506016546104f4906001600160a01b031681565b3480156105cd57600080fd5b506103a86105dc366004613482565b6113af565b3480156105ed57600080fd5b5061041e6105fc366004613521565b611433565b34801561060d57600080fd5b5061041e61061c3660046135fb565b6114ed565b34801561062d57600080fd5b50610636600981565b60405160ff90911681526020016103b2565b34801561065457600080fd5b5061041e610663366004613417565b61158a565b34801561067457600080fd5b5061044061068336600461349b565b611743565b34801561069457600080fd5b506104406106a3366004613417565b601d6020526000908152604090205460ff1681565b3480156106c457600080fd5b506104f47f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc81565b3480156106f857600080fd5b50601a5461044090610100900460ff1681565b34801561071757600080fd5b506104f4610726366004613482565b61177a565b34801561073757600080fd5b506107406117a4565b604080519384526020840192909252908201526060016103b2565b34801561076757600080fd5b5061041e6117c3565b34801561077c57600080fd5b5061041e61078b366004613417565b611863565b34801561079c57600080fd5b5061041e6107ab366004613521565b6119b5565b3480156107bc57600080fd5b506013546104f4906001600160a01b031681565b3480156107dc57600080fd5b5061041e6107eb36600461363c565b611a4e565b3480156107fc57600080fd5b50610805611a8b565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c0016103b2565b34801561084057600080fd5b5061041e61084f366004613659565b611adb565b34801561086057600080fd5b506103a861086f366004613417565b611b16565b34801561088057600080fd5b5061041e611b75565b34801561089557600080fd5b5061041e6108a4366004613685565b611be9565b3480156108b557600080fd5b506104406108c436600461349b565b611c1e565b3480156108d557600080fd5b506005546104409060ff1681565b3480156108ef57600080fd5b50600e54601754601454600a54600c54601154600b54600d54604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016103b2565b34801561094f57600080fd5b5061044061095e366004613417565b601e6020526000908152604090205460ff1681565b34801561097f57600080fd5b506000546001600160a01b03166104f4565b34801561099d57600080fd5b5061041e6109ac366004613685565b611d2d565b3480156109bd57600080fd5b506103f160405180604001604052806007815260200166452d464c4f4b4960c81b81525081565b3480156109f057600080fd5b506104406109ff36600461349b565b611d5f565b348015610a1057600080fd5b5061041e610a1f3660046136a7565b611e16565b348015610a3057600080fd5b50610440610a3f36600461349b565b611e6e565b348015610a5057600080fd5b506103a8610a5f366004613417565b60016020526000908152604090205481565b348015610a7d57600080fd5b5061041e610a8c366004613482565b611e7b565b348015610a9d57600080fd5b50610440610aac366004613417565b60076020526000908152604090205460ff1681565b348015610acd57600080fd5b50610440610adc366004613417565b601f6020526000908152604090205460ff1681565b348015610afd57600080fd5b5061041e610b0c3660046136e0565b611edd565b348015610b1d57600080fd5b5061041e610b2c366004613712565b611f90565b348015610b3d57600080fd5b506103a8610b4c3660046136a7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610b8357600080fd5b5061041e610b92366004613417565b611fd8565b348015610ba357600080fd5b5061041e610bb2366004613521565b6120c2565b348015610bc357600080fd5b50610440610bd2366004613417565b60066020526000908152604090205460ff1681565b348015610bf357600080fd5b506008546104409060ff1681565b6000546001600160a01b03163314610c345760405162461bcd60e51b8152600401610c2b90613730565b60405180910390fd5b6103e881610c446009600a61385f565b610c5290633b9aca0061386e565b610c5c919061386e565b610c66919061388d565b601b5550565b6000610c7933848461215b565b5060015b92915050565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610c2b90613730565b6101f58210610cce5760405162461bcd60e51b8152600401610c2b906138af565b60005b82811015610d3d5781601f6000868685818110610cf057610cf06138f4565b9050602002016020810190610d059190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d368161390a565b9050610cd1565b50505050565b6000546001600160a01b03163314610d6d5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d5781601d6000868685818110610d8f57610d8f6138f4565b9050602002016020810190610da49190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dd58161390a565b9050610d70565b610de86009600a61385f565b610df690633b9aca0061386e565b81565b6000546001600160a01b03163314610e235760405162461bcd60e51b8152600401610c2b90613730565b600080610e2e612280565b9050848314610e905760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c2b565b60005b85811015610ed357848482818110610ead57610ead6138f4565b9050602002013583610ebf9190613923565b925080610ecb8161390a565b915050610e93565b5081610ede33611b16565b1015610f2c5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f70000000006044820152606401610c2b565b610f36818361386e565b6001600160a01b038816600090815260016020526040902054610f599190613936565b6001600160a01b03881660009081526001602090815260408083209390935560049052205460ff1615610fc4576001600160a01b038716600090815260026020526040902054610faa908390613936565b6001600160a01b0388166000908152600260205260409020555b60005b8581101561121b5760046000888884818110610fe557610fe56138f4565b9050602002016020810190610ffa9190613417565b6001600160a01b0316815260208101919091526040016000205460ff16156110d15784848281811061102e5761102e6138f4565b905060200201356002600089898581811061104b5761104b6138f4565b90506020020160208101906110609190613417565b6001600160a01b03166001600160a01b031681526020019081526020016000205461108b9190613923565b600260008989858181106110a1576110a16138f4565b90506020020160208101906110b69190613417565b6001600160a01b031681526020810191909152604001600020555b818585838181106110e4576110e46138f4565b905060200201356110f5919061386e565b6001600089898581811061110b5761110b6138f4565b90506020020160208101906111209190613417565b6001600160a01b03166001600160a01b031681526020019081526020016000205461114b9190613923565b60016000898985818110611161576111616138f4565b90506020020160208101906111769190613417565b6001600160a01b031681526020810191909152604001600020558686828181106111a2576111a26138f4565b90506020020160208101906111b79190613417565b6001600160a01b0316886001600160a01b0316600080516020613a618339815191528787858181106111eb576111eb6138f4565b9050602002013560405161120191815260200190565b60405180910390a3806112138161390a565b915050610fc7565b5050505050505050565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610c2b90613730565b6000606461125d478461386e565b611267919061388d565b604051909150339082156108fc029083906000818181858888f19350505050158015611297573d6000803e3d6000fd5b505050565b60006112a98484846122a3565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561132d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c2b565b6001600160a01b038416600090815260036020908152604080832033808552925290912054611368918691611363908690613936565b61215b565b5060019392505050565b6000546001600160a01b0316331461139c5760405162461bcd60e51b8152600401610c2b90613730565b6005805460ff1916911515919091179055565b60006009548211156114165760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c2b565b6000611420612280565b905061142c818461388d565b9392505050565b6000546001600160a01b0316331461145d5760405162461bcd60e51b8152600401610c2b90613730565b6101f5821061147e5760405162461bcd60e51b8152600401610c2b906138af565b60005b82811015610d3d5781601e60008686858181106114a0576114a06138f4565b90506020020160208101906114b59190613417565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114e68161390a565b9050611481565b6000546001600160a01b031633146115175760405162461bcd60e51b8152600401610c2b90613730565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611566573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190613949565b6000546001600160a01b031633146115b45760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b03811660009081526004602052604090205460ff1661161c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610c2b565b60005b60205481101561173f57816001600160a01b031660208281548110611646576116466138f4565b6000918252602090912001546001600160a01b03160361172d576020805461167090600190613936565b81548110611680576116806138f4565b9060005260206000200160009054906101000a90046001600160a01b0316602082815481106116b1576116b16138f4565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600483529020805460ff1916905580548061170757611707613966565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806117378161390a565b91505061161f565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610c79918590611363908690613923565b6020818154811061178a57600080fd5b6000918252602090912001546001600160a01b0316905081565b60008060006021546117b530611b16565b601054925092509250909192565b6000546001600160a01b031633146117ed5760405162461bcd60e51b8152600401610c2b90613730565b7f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b03166000908152601d602090815260408083208054600160ff199182168117909255601e84528285208054821683179055601f90935292208054821683179055600880549091169091179055565b6000546001600160a01b0316331461188d5760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b03811660009081526004602052604090205460ff16156118f65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c2b565b6001600160a01b03811660009081526001602052604090205415611950576001600160a01b038116600090815260016020526040902054611936906113af565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b031660008181526004602090815260408220805460ff191660019081179091558154908101825591527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319169091179055565b6000546001600160a01b031633146119df5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d578160076000868685818110611a0157611a016138f4565b9050602002016020810190611a169190613417565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a478161390a565b90506119e2565b6000546001600160a01b03163314611a785760405162461bcd60e51b8152600401610c2b90613730565b6008805460ff1916911515919091179055565b600080600080600080601c54601b546009600a611aa8919061385f565b611ab690633b9aca0061386e565b600954611ac1612280565b600854949b939a509198509650945060ff90911692509050565b6000546001600160a01b03163314611b055760405162461bcd60e51b8152600401610c2b90613730565b602291909155602391909155602455565b6001600160a01b03811660009081526004602052604081205460ff1615611b5357506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610c7d906113af565b6000546001600160a01b03163314611b9f5760405162461bcd60e51b8152600401610c2b90613730565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314611c135760405162461bcd60e51b8152600401610c2b90613730565b600b91909155600a55565b600080546001600160a01b03163314611c495760405162461bcd60e51b8152600401610c2b90613730565b81600003611cbc576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb9919061397c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142c9190613949565b6000546001600160a01b03163314611d575760405162461bcd60e51b8152600401610c2b90613730565b600c55600d55565b3360009081526003602090815260408083206001600160a01b0386168452909152812054821115611de05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c2b565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610c7991908590611363908690613936565b6000546001600160a01b03163314611e405760405162461bcd60e51b8152600401610c2b90613730565b601380546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c793384846122a3565b6000546001600160a01b03163314611ea55760405162461bcd60e51b8152600401610c2b90613730565b6103e881611eb56009600a61385f565b611ec390633b9aca0061386e565b611ecd919061386e565b611ed7919061388d565b601c5550565b6000546001600160a01b03163314611f075760405162461bcd60e51b8152600401610c2b90613730565b60008285611f158685613923565b611f1f9190613923565b611f299190613923565b9050601f8110611f745760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732033302560501b6044820152606401610c2b565b601182905560178490556014859055600e8390555b5050505050565b6000546001600160a01b03163314611fba5760405162461bcd60e51b8152600401610c2b90613730565b601a80549215156101000261ff001990931692909217909155602155565b6000546001600160a01b031633146120025760405162461bcd60e51b8152600401610c2b90613730565b6001600160a01b0381166120675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146120ec5760405162461bcd60e51b8152600401610c2b90613730565b60005b82811015610d3d57816006600086868581811061210e5761210e6138f4565b90506020020160208101906121239190613417565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556121548161390a565b90506120ef565b6001600160a01b0383166121bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c2b565b6001600160a01b03821661221e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c2b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600080600061228d612756565b909250905061229c818361388d565b9250505090565b60085460ff161515600003612312576001600160a01b03821660009081526007602052604090205460ff1615156001146123125760405162461bcd60e51b815260206004820152601060248201526f21b0b7103737ba103a3930b739b332b960811b6044820152606401610c2b565b60055460ff161515600103612378576001600160a01b03831660009081526006602052604090205460ff16156123785760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610c2b565b601c54811115806123a157506001600160a01b0383166000908152601e602052604090205460ff165b806123c457506001600160a01b0382166000908152601e602052604090205460ff165b6124085760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610c2b565b6001600160a01b0383166000908152601f602052604090205460ff1615801561244a57506001600160a01b0382166000908152601f602052604090205460ff16155b801561248857507f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b0316826001600160a01b031614155b156124f257601b548161249a84611b16565b6124a49190613923565b11156124f25760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610c2b565b60006124fd30611b16565b9050601c54811061251a576001601c546125179190613936565b90505b602154811080159081906125315750601a5460ff16155b801561256f57507f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b0316856001600160a01b031614155b80156125825750601a54610100900460ff165b1561259557602154915061259582612942565b601a5460ff161580156125da57507f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b0316856001600160a01b031614155b80156125ed5750601a54610100900460ff165b1561262c57600a54601654600c5461260f92916001600160a01b0316906129d1565b600b54601354600d5461262c92916001600160a01b0316906129d1565b50506001600160a01b0383166000908152601d602052604090205460019060ff168061267057506001600160a01b0383166000908152601d602052604090205460ff165b156126a7575060006126a7601180546012556017805460185560148054601555600e8054600f556000938490559183905582905555565b6000806000806000806000806126be8a8c8e612a12565b975097509750975097509750975097506126dc8c8c8c8b898c612bea565b856009546126ea9190613936565b6009556010546126fb908290613923565b601055886127105761270b612d5f565b612748565b6013546127279085906001600160a01b0316612d82565b6127318330612d82565b6016546127489083906001600160a01b0316612d82565b505050505050505050505050565b6000806000600954905060006009600a612770919061385f565b61277e90633b9aca0061386e565b905060005b6020548110156128e1578260016000602084815481106127a5576127a56138f4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061281057508160026000602084815481106127e9576127e96138f4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561283f576009546009600a612826919061385f565b61283490633b9aca0061386e565b945094505050509091565b6001600060208381548110612856576128566138f4565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128859084613936565b9250600260006020838154811061289e5761289e6138f4565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128cd9083613936565b9150806128d98161390a565b915050612783565b506128ee6009600a61385f565b6128fc90633b9aca0061386e565b600954612909919061388d565b821015612939576009546009600a612921919061385f565b61292f90633b9aca0061386e565b9350935050509091565b90939092509050565b601a805460ff19166001179055600061295c60028361388d565b90504761296882612e59565b60006129748247613936565b90506129808382613011565b60408051858152602081018590529081018290527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050601a805460ff191690555050565b826000036129de57505050565b601c548311156129ee57601c5492505b6129f782611b16565b612a018285613923565b11611297576112978284613110565b565b600080600080600080600080600060245490507f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b03168b6001600160a01b031603612a675750602254612aa5565b7f000000000000000000000000a8cd555c5ff9dc8b2da94bd8a7aed82ca4cdbadc6001600160a01b03168a6001600160a01b031603612aa557506023545b601954612ab390606461386e565b816011548e612ac2919061386e565b612acc919061386e565b612ad6919061388d565b94506019546064612ae7919061386e565b816017548e612af6919061386e565b612b00919061386e565b612b0a919061388d565b93506019546064612b1b919061386e565b816014548e612b2a919061386e565b612b34919061386e565b612b3e919061388d565b92506019546064612b4f919061386e565b81600e548e612b5e919061386e565b612b68919061386e565b612b72919061388d565b91508183612b808688613923565b612b8a9190613923565b612b949190613923565b612b9e908d613936565b9550612ba8612280565b612bb2908361386e565b9650612bbc612280565b612bc6908d61386e565b9850612bd0612280565b612bda908761386e565b9750509397509397509397509397565b6001600160a01b038616600090815260016020526040902054612c0e908490613936565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615612c79576001600160a01b038616600090815260026020526040902054612c5f908590613936565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615612cd8576001600160a01b038516600090815260026020526040902054612cbe908390613923565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054612cfc908290613923565b6001600160a01b0386166000908152600160205260409020558115612d5757846001600160a01b0316866001600160a01b0316600080516020613a6183398151915284604051612d4e91815260200190565b60405180910390a35b505050505050565b612a10601254601854601554600f54601193909355601791909155601455600e55565b6000612d8c612280565b612d96908461386e565b6001600160a01b038316600090815260016020526040902054909150612dbd908290613923565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615612e28576001600160a01b038216600090815260026020526040902054612e0e908490613923565b6001600160a01b0383166000908152600260205260409020555b8215611297576040518381526001600160a01b038316903390600080516020613a6183398151915290602001612273565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e8e57612e8e6138f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f309190613995565b81600181518110612f4357612f436138f4565b60200260200101906001600160a01b031690816001600160a01b031681525050612f8e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461215b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612fe39085906000908690309042906004016139f6565b600060405180830381600087803b158015612ffd57600080fd5b505af1158015612d57573d6000803e3d6000fd5b61303c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461215b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806130836000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156130eb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f899190613a32565b601a805460ff191660011790556000613127612280565b613131908361386e565b6001600160a01b038416600090815260016020526040902054909150613158908290613936565b6001600160a01b03841660009081526001602090815260408083209390935560049052205460ff16156131c3576001600160a01b0383166000908152600260205260409020546131a9908390613936565b6001600160a01b0384166000908152600260205260409020555b306000908152600160205260409020546131de908290613923565b30600081815260016020526040908190209290925590516001600160a01b03851690600080516020613a618339815191529061321d9086815260200190565b60405180910390a361322f828461323e565b5050601a805460ff1916905550565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613273576132736138f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133159190613995565b81600181518110613328576133286138f4565b60200260200101906001600160a01b031690816001600160a01b031681525050613373307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8561215b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906133c89086906000908690889042906004016139f6565b600060405180830381600087803b1580156133e257600080fd5b505af11580156133f6573d6000803e3d6000fd5b50505050505050565b6001600160a01b038116811461341457600080fd5b50565b60006020828403121561342957600080fd5b813561142c816133ff565b600060208083528351808285015260005b8181101561346157858101830151858201604001528201613445565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561349457600080fd5b5035919050565b600080604083850312156134ae57600080fd5b82356134b9816133ff565b946020939093013593505050565b60008083601f8401126134d957600080fd5b50813567ffffffffffffffff8111156134f157600080fd5b6020830191508360208260051b850101111561350c57600080fd5b9250929050565b801515811461341457600080fd5b60008060006040848603121561353657600080fd5b833567ffffffffffffffff81111561354d57600080fd5b613559868287016134c7565b909450925050602084013561356d81613513565b809150509250925092565b60008060008060006060868803121561359057600080fd5b853561359b816133ff565b9450602086013567ffffffffffffffff808211156135b857600080fd5b6135c489838a016134c7565b909650945060408801359150808211156135dd57600080fd5b506135ea888289016134c7565b969995985093965092949392505050565b60008060006060848603121561361057600080fd5b833561361b816133ff565b9250602084013561362b816133ff565b929592945050506040919091013590565b60006020828403121561364e57600080fd5b813561142c81613513565b60008060006060848603121561366e57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561369857600080fd5b50508035926020909101359150565b600080604083850312156136ba57600080fd5b82356136c5816133ff565b915060208301356136d5816133ff565b809150509250929050565b600080600080608085870312156136f657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561372557600080fd5b82356134b981613513565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137b657816000190482111561379c5761379c613765565b808516156137a957918102915b93841c9390800290613780565b509250929050565b6000826137cd57506001610c7d565b816137da57506000610c7d565b81600181146137f057600281146137fa57613816565b6001915050610c7d565b60ff84111561380b5761380b613765565b50506001821b610c7d565b5060208310610133831016604e8410600b8410161715613839575081810a610c7d565b613843838361377b565b806000190482111561385757613857613765565b029392505050565b600061142c60ff8416836137be565b600081600019048311821515161561388857613888613765565b500290565b6000826138aa57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161391c5761391c613765565b5060010190565b80820180821115610c7d57610c7d613765565b81810381811115610c7d57610c7d613765565b60006020828403121561395b57600080fd5b815161142c81613513565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561398e57600080fd5b5051919050565b6000602082840312156139a757600080fd5b815161142c816133ff565b600081518084526020808501945080840160005b838110156139eb5781516001600160a01b0316875295820195908201906001016139c6565b509495945050505050565b85815284602082015260a060408201526000613a1560a08301866139b2565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215613a4757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207703626d3f7c38d3623e5923ec656106976d3a90583ab05af6b87813621a878164736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db600000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db6
-----Decoded View---------------
Arg [0] : wallet_marketing (address): 0x87376ACe613f5642b734e57Fea40a2936Ceb4dB6
Arg [1] : wallet_treasury (address): 0x87376ACe613f5642b734e57Fea40a2936Ceb4dB6
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db6
Arg [1] : 00000000000000000000000087376ace613f5642b734e57fea40a2936ceb4db6
Deployed Bytecode Sourcemap
7446:26311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7594:49;;;;;;;;;;-1:-1:-1;7594:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;548:25:1;;;536:2;521:18;7594:49:0;;;;;;;;8190:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8190:42:0;;;;;;;;;;;;:::i;17390:194::-;;;;;;;;;;-1:-1:-1;17390:194:0;;;;;:::i;:::-;;:::i;:::-;;12521:193;;;;;;;;;;-1:-1:-1;12521:193:0;;;;;:::i;:::-;;:::i;:::-;;;1807:14:1;;1800:22;1782:41;;1770:2;1755:18;12521:193:0;1642:187:1;7726:43:0;;;;;;;;;;-1:-1:-1;7726:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18993:372;;;;;;;;;;-1:-1:-1;18993:372:0;;;;;:::i;:::-;;:::i;18376:237::-;;;;;;;;;;-1:-1:-1;18376:237:0;;;;;:::i;:::-;;:::i;9147:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3090:32:1;;;3072:51;;3060:2;3045:18;9147:51:0;2900:229:1;8051:58:0;;;;;;;;;;;;;:::i;19401:1269::-;;;;;;;;;;-1:-1:-1;19401:1269:0;;;;;:::i;:::-;;:::i;20678:230::-;;;;;;;;;;-1:-1:-1;20678:230:0;;;;;:::i;:::-;;:::i;12722:496::-;;;;;;;;;;-1:-1:-1;12722:496:0;;;;;:::i;:::-;;:::i;17788:100::-;;;;;;;;;;-1:-1:-1;17788:100:0;;;;;:::i;:::-;;:::i;8951:39::-;;;;;;;;;;-1:-1:-1;8951:39:0;;;;-1:-1:-1;;;;;8951:39:0;;;15855:331;;;;;;;;;;-1:-1:-1;15855:331:0;;;;;:::i;:::-;;:::i;18621:364::-;;;;;;;;;;-1:-1:-1;18621:364:0;;;;;:::i;:::-;;:::i;27022:171::-;;;;;;;;;;-1:-1:-1;27022:171:0;;;;;:::i;:::-;;:::i;8010:34::-;;;;;;;;;;;;8043:1;8010:34;;;;;5624:4:1;5612:17;;;5594:36;;5582:2;5567:18;8010:34:0;5452:184:1;16597:484:0;;;;;;;;;;-1:-1:-1;16597:484:0;;;;;:::i;:::-;;:::i;13226:299::-;;;;;;;;;;-1:-1:-1;13226:299:0;;;;;:::i;:::-;;:::i;9453:43::-;;;;;;;;;;-1:-1:-1;9453:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9205:38;;;;;;;;;;;;;;;9278:40;;;;;;;;;;-1:-1:-1;9278:40:0;;;;;;;;;;;9615:26;;;;;;;;;;-1:-1:-1;9615:26:0;;;;;:::i;:::-;;:::i;14510:354::-;;;;;;;;;;;;;:::i;:::-;;;;6051:25:1;;;6107:2;6092:18;;6085:34;;;;6135:18;;;6128:34;6039:2;6024:18;14510:354:0;5849:319:1;11657:233:0;;;;;;;;;;;;;:::i;16194:395::-;;;;;;;;;;-1:-1:-1;16194:395:0;;;;;:::i;:::-;;:::i;18138:230::-;;;;;;;;;;-1:-1:-1;18138:230:0;;;;;:::i;:::-;;:::i;8806:40::-;;;;;;;;;;-1:-1:-1;8806:40:0;;;;-1:-1:-1;;;;;8806:40:0;;;17089:102;;;;;;;;;;-1:-1:-1;17089:102:0;;;;;:::i;:::-;;:::i;14001:501::-;;;;;;;;;;;;;:::i;:::-;;;;6454:25:1;;;6510:2;6495:18;;6488:34;;;;6538:18;;;6531:34;;;;6596:2;6581:18;;6574:34;6639:3;6624:19;;6617:35;6696:14;6689:22;6683:3;6668:19;;6661:51;6441:3;6426:19;14001:501:0;6173:545:1;25652:232:0;;;;;;;;;;-1:-1:-1;25652:232:0;;;;;:::i;:::-;;:::i;11898:216::-;;;;;;;;;;-1:-1:-1;11898:216:0;;;;;:::i;:::-;;:::i;6052:148::-;;;;;;;;;;;;;:::i;25892:289::-;;;;;;;;;;-1:-1:-1;25892:289:0;;;;;:::i;:::-;;:::i;20916:320::-;;;;;;;;;;-1:-1:-1;20916:320:0;;;;;:::i;:::-;;:::i;7778:32::-;;;;;;;;;;-1:-1:-1;7778:32:0;;;;;;;;14872:745;;;;;;;;;;-1:-1:-1;15339:15:0;;15369:14;;15398:13;;15426:27;;15468:21;;15504:14;;15533:28;;15576:22;;14872:745;;;7640:25:1;;;7696:2;7681:18;;7674:34;;;;7724:18;;;7717:34;;;;7782:2;7767:18;;7760:34;;;;7825:3;7810:19;;7803:35;7869:3;7854:19;;7847:35;7913:3;7898:19;;7891:35;7957:3;7942:19;;7935:35;7627:3;7612:19;14872:745:0;7297:679:1;9503:47:0;;;;;;;;;;-1:-1:-1;9503:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5829:87;;;;;;;;;;-1:-1:-1;5875:7:0;5902:6;-1:-1:-1;;;;;5902:6:0;5829:87;;26189:291;;;;;;;;;;-1:-1:-1;26189:291:0;;;;;:::i;:::-;;:::i;8239:41::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8239:41:0;;;;;13533:460;;;;;;;;;;-1:-1:-1;13533:460:0;;;;;:::i;:::-;;:::i;15625:222::-;;;;;;;;;;-1:-1:-1;15625:222:0;;;;;:::i;:::-;;:::i;12122:199::-;;;;;;;;;;-1:-1:-1;12122:199:0;;;;;:::i;:::-;;:::i;7534:53::-;;;;;;;;;;-1:-1:-1;7534:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;17199:183;;;;;;;;;;-1:-1:-1;17199:183:0;;;;;:::i;:::-;;:::i;7869:41::-;;;;;;;;;;-1:-1:-1;7869:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9557:51;;;;;;;;;;-1:-1:-1;9557:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26488:526;;;;;;;;;;-1:-1:-1;26488:526:0;;;;;:::i;:::-;;:::i;17592:188::-;;;;;;;;;;-1:-1:-1;17592:188:0;;;;;:::i;:::-;;:::i;12329:184::-;;;;;;;;;;-1:-1:-1;12329:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;12478:18:0;;;12446:7;12478:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12329:184;6208:281;;;;;;;;;;-1:-1:-1;6208:281:0;;;;;:::i;:::-;;:::i;17896:234::-;;;;;;;;;;-1:-1:-1;17896:234:0;;;;;:::i;:::-;;:::i;7817:45::-;;;;;;;;;;-1:-1:-1;7817:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7919:31;;;;;;;;;;-1:-1:-1;7919:31:0;;;;;;;;17390:194;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;;;;;;;;;17572:4:::1;17546:22:::0;8097:12:::1;8043:1;8097:2;:12;:::i;:::-;8089:20;::::0;:5:::1;:20;:::i;:::-;17532:36;;;;:::i;:::-;17531:45;;;;:::i;:::-;17513:15;:63:::0;-1:-1:-1;17390:194:0:o;12521:193::-;12623:4;12645:39;1252:10;12668:7;12677:6;12645:8;:39::i;:::-;-1:-1:-1;12702:4:0;12521:193;;;;;:::o;18993:372::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;19163:3:::1;19144:22:::0;::::1;19122:109;;;;-1:-1:-1::0;;;19122:109:0::1;;;;;;;:::i;:::-;19247:9;19242:116;19262:20:::0;;::::1;19242:116;;;19340:6;19304:19;:33;19324:9;;19334:1;19324:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19304:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19304:33:0;:42;;-1:-1:-1;;19304:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19284:3:::1;::::0;::::1;:::i;:::-;;;19242:116;;;;18993:372:::0;;;:::o;18376:237::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;18507:9:::1;18502:104;18518:20:::0;;::::1;18502:104;;;18588:6;18560:11;:25;18572:9;;18582:1;18572:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18560:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18560:25:0;:34;;-1:-1:-1;;18560:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18540:3:::1;::::0;::::1;:::i;:::-;;;18502:104;;8051:58:::0;8097:12;8043:1;8097:2;:12;:::i;:::-;8089:20;;:5;:20;:::i;:::-;8051:58;:::o;19401:1269::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;19559:12:::1;19586:19:::0;19608:10:::1;:8;:10::i;:::-;19586:32:::0;-1:-1:-1;19651:33:0;;::::1;19629:123;;;::::0;-1:-1:-1;;;19629:123:0;;12229:2:1;19629:123:0::1;::::0;::::1;12211:21:1::0;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:1;;;12351:38;12406:19;;19629:123:0::1;12027:404:1::0;19629:123:0::1;19770:9;19765:97;19785:20:::0;;::::1;19765:97;;;19841:6;;19848:1;19841:9;;;;;;;:::i;:::-;;;;;;;19834:4;:16;;;;:::i;:::-;19827:23:::0;-1:-1:-1;19807:3:0;::::1;::::0;::::1;:::i;:::-;;;;19765:97;;;;19905:4;19880:21;19890:10;19880:9;:21::i;:::-;:29;;19872:70;;;::::0;-1:-1:-1;;;19872:70:0;;12768:2:1;19872:70:0::1;::::0;::::1;12750:21:1::0;12807:2;12787:18;;;12780:30;12846;12826:18;;;12819:58;12894:18;;19872:70:0::1;12566:352:1::0;19872:70:0::1;20035:31;20055:11:::0;20035:4;:31:::1;:::i;:::-;-1:-1:-1::0;;;;;19995:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;:71:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;19955:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;;;:111;;;;20083:11:::1;:17:::0;;;;::::1;;20079:100;;;-1:-1:-1::0;;;;;20140:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;:27:::1;::::0;20163:4;;20140:27:::1;:::i;:::-;-1:-1:-1::0;;;;;20117:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;:50;20079:100:::1;20196:9;20191:472;20211:20:::0;;::::1;20191:472;;;20257:11;:25;20269:9;;20279:1;20269:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20257:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20257:25:0;;::::1;;20253:179;;;20407:6;;20414:1;20407:9;;;;;;;:::i;:::-;;;;;;;20355:14;:28;20370:9;;20380:1;20370:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20355:28:0::1;-1:-1:-1::0;;;;;20355:28:0::1;;;;;;;;;;;;;:61;;;;:::i;:::-;20303:14;:28;20318:9;;20328:1;20318:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20303:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20303:28:0;:113;20253:179:::1;20579:11;20550:6;;20557:1;20550:9;;;;;;;:::i;:::-;;;;;;;:40;;;;:::i;:::-;20498:18;:32;20517:9;;20527:1;20517:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20498:32:0::1;-1:-1:-1::0;;;;;20498:32:0::1;;;;;;;;;;;;;:92;;;;:::i;:::-;20446:18;:32;20465:9;;20475:1;20465:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20446:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20446:32:0;:144;20627:9;;20637:1;20627:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20612:39:0::1;20621:4;-1:-1:-1::0;;;;;20612:39:0::1;-1:-1:-1::0;;;;;;;;;;;20641:6:0::1;;20648:1;20641:9;;;;;;;:::i;:::-;;;;;;;20612:39;;;;548:25:1::0;;536:2;521:18;;402:177;20612:39:0::1;;;;;;;;20233:3:::0;::::1;::::0;::::1;:::i;:::-;;;;20191:472;;;;19548:1122;;19401:1269:::0;;;;;:::o;20678:230::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;20761:21:::1;20843:3;20786:40;20805:21;20786:16:::0;:40:::1;:::i;:::-;20785:61;;;;:::i;:::-;20857:43;::::0;20761:85;;-1:-1:-1;20865:10:0::1;::::0;20857:43;::::1;;;::::0;20761:85;;20857:43:::1;::::0;;;20761:85;20865:10;20857:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20750:158;20678:230:::0;:::o;12722:496::-;12854:4;12871:36;12881:6;12889:9;12900:6;12871:9;:36::i;:::-;-1:-1:-1;;;;;12940:19:0;;;;;;:11;:19;;;;;;;;1252:10;12940:33;;;;;;;;:43;-1:-1:-1;12940:43:0;12918:133;;;;-1:-1:-1;;;12918:133:0;;13258:2:1;12918:133:0;;;13240:21:1;13297:2;13277:18;;;13270:30;13336:34;13316:18;;;13309:62;-1:-1:-1;;;13387:18:1;;;13380:38;13435:19;;12918:133:0;13056:404:1;12918:133:0;-1:-1:-1;;;;;13134:19:0;;;;;;:11;:19;;;;;;;;1252:10;13134:33;;;;;;;;;13062:126;;13085:6;;13134:42;;13170:6;;13134:42;:::i;:::-;13062:8;:126::i;:::-;-1:-1:-1;13206:4:0;12722:496;;;;;:::o;17788:100::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;17857:13:::1;:23:::0;;-1:-1:-1;;17857:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17788:100::o;15855:331::-;15949:7;16007:17;;15996:7;:28;;15974:120;;;;-1:-1:-1;;;15974:120:0;;13667:2:1;15974:120:0;;;13649:21:1;13706:2;13686:18;;;13679:30;13745:34;13725:18;;;13718:62;-1:-1:-1;;;13796:18:1;;;13789:40;13846:19;;15974:120:0;13465:406:1;15974:120:0;16105:19;16127:10;:8;:10::i;:::-;16105:32;-1:-1:-1;16156:21:0;16105:32;16156:7;:21;:::i;:::-;16148:30;15855:331;-1:-1:-1;;;15855:331:0:o;18621:364::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;18787:3:::1;18768:22:::0;::::1;18746:109;;;;-1:-1:-1::0;;;18746:109:0::1;;;;;;;:::i;:::-;18871:9;18866:112;18886:20:::0;;::::1;18866:112;;;18960:6;18928:15;:29;18944:9;;18954:1;18944:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18928:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18928:29:0;:38;;-1:-1:-1;;18928:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18908:3:::1;::::0;::::1;:::i;:::-;;;18866:112;;27022:171:::0;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;27153:32:::1;::::0;-1:-1:-1;;;27153:32:0;;-1:-1:-1;;;;;14068:32:1;;;27153::0::1;::::0;::::1;14050:51:1::0;14117:18;;;14110:34;;;27153:14:0;::::1;::::0;::::1;::::0;14023:18:1;;27153:32:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16597:484::-:0;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16677:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;16669:60;;;::::0;-1:-1:-1;;;16669:60:0;;14607:2:1;16669:60:0::1;::::0;::::1;14589:21:1::0;14646:2;14626:18;;;14619:30;14685:29;14665:18;;;14658:57;14732:18;;16669:60:0::1;14405:351:1::0;16669:60:0::1;16745:9;16740:334;16764:9;:16:::0;16760:20;::::1;16740:334;;;16822:7;-1:-1:-1::0;;;;;16806:23:0::1;:9;16816:1;16806:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16806:12:0::1;:23:::0;16802:261:::1;;16865:9;16875:16:::0;;:20:::1;::::0;16894:1:::1;::::0;16875:20:::1;:::i;:::-;16865:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16865:31:0::1;16850:9;16860:1;16850:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;16850:46:0::1;-1:-1:-1::0;;;;;16850:46:0;;::::1;;::::0;;16915:23;;::::1;::::0;;:14:::1;:23:::0;;;;;;:27;;;16961:11:::1;:20:::0;;;;:28;;-1:-1:-1;;16961:28:0::1;::::0;;17008:15;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17008:15:0;;;;;-1:-1:-1;;;;;;17008:15:0::1;::::0;;;;;16740:334:::1;16597:484:::0;:::o;16802:261::-:1;16782:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16740:334;;;;16597:484:::0;:::o;13226:299::-;1252:10;13341:4;13436:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13436:34:0;;;;;;;;;;13341:4;;13363:132;;13413:7;;13436:47;;13473:10;;13436:47;:::i;9615:26::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9615:26:0;;-1:-1:-1;9615:26:0;:::o;14510:354::-;14592:21;14628:28;14671:32;14753:13;;14781:24;14799:4;14781:9;:24::i;:::-;14820:25;;14731:125;;;;;;14510:354;;;:::o;11657:233::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;11732:13:::1;-1:-1:-1::0;;;;;11720:26:0::1;;::::0;;;:11:::1;:26;::::0;;;;;;;:33;;11749:4:::1;-1:-1:-1::0;;11720:33:0;;::::1;::::0;::::1;::::0;;;11764:15:::1;:30:::0;;;;;:37;;;::::1;::::0;::::1;::::0;;11812:19:::1;:34:::0;;;;;:41;;;::::1;::::0;::::1;::::0;;11864:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;11657:233::o;16194:395::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16277:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;16276:21;16268:61;;;::::0;-1:-1:-1;;;16268:61:0;;15095:2:1;16268:61:0::1;::::0;::::1;15077:21:1::0;15134:2;15114:18;;;15107:30;15173:29;15153:18;;;15146:57;15220:18;;16268:61:0::1;14893:351:1::0;16268:61:0::1;-1:-1:-1::0;;;;;16344:27:0;::::1;16374:1;16344:27:::0;;;:18:::1;:27;::::0;;;;;:31;16340:170:::1;;-1:-1:-1::0;;;;;16456:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;16418:80:::1;::::0;:19:::1;:80::i;:::-;-1:-1:-1::0;;;;;16392:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;:106;16340:170:::1;-1:-1:-1::0;;;;;16520:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;;;:27;;-1:-1:-1;;16520:27:0::1;16543:4;16520:27:::0;;::::1;::::0;;;16558:23;;;;::::1;::::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16558:23:0::1;::::0;;::::1;::::0;;16194:395::o;18138:230::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;18264:9:::1;18259:102;18275:20:::0;;::::1;18259:102;;;18343:6;18317:9;:23;18327:9;;18337:1;18327:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18317:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18317:23:0;:32;;-1:-1:-1;;18317:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18297:3:::1;::::0;::::1;:::i;:::-;;;18259:102;;17089::::0;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;17162:11:::1;:21:::0;;-1:-1:-1;;17162:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17089:102::o;14001:501::-;14084:19;14118:22;14155:19;14189:24;14228:23;14266:16;14332:12;;14359:15;;8043:1;8097:2;:12;;;;:::i;:::-;8089:20;;:5;:20;:::i;:::-;14415:17;;14447:10;:8;:10::i;:::-;14472:11;;14310:184;;;;-1:-1:-1;14310:184:0;;-1:-1:-1;14310:184:0;-1:-1:-1;14310:184:0;-1:-1:-1;14472:11:0;;;;;-1:-1:-1;14001:501:0;-1:-1:-1;14001:501:0:o;25652:232::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;25785:14:::1;:22:::0;;;;25818:13:::1;:20:::0;;;;25849:18:::1;:27:::0;25652:232::o;11898:216::-;-1:-1:-1;;;;;11988:20:0;;11964:7;11988:20;;;:11;:20;;;;;;;;11984:56;;;-1:-1:-1;;;;;;12017:23:0;;;;;:14;:23;;;;;;;11898:216::o;11984:56::-;-1:-1:-1;;;;;12078:27:0;;;;;;:18;:27;;;;;;12058:48;;:19;:48::i;6052:148::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;6159:1:::1;6143:6:::0;;6122:40:::1;::::0;-1:-1:-1;;;;;6143:6:0;;::::1;::::0;6122:40:::1;::::0;6159:1;;6122:40:::1;6190:1;6173:19:::0;;-1:-1:-1;;;;;;6173:19:0::1;::::0;;6052:148::o;25892:289::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;26048:28:::1;:58:::0;;;;26117:27:::1;:56:::0;25892:289::o;20916:320::-;21034:12;5902:6;;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;21068:6:::1;21078:1;21068:11:::0;21064:98:::1;;21105:45;::::0;-1:-1:-1;;;21105:45:0;;21144:4:::1;21105:45;::::0;::::1;3072:51:1::0;-1:-1:-1;;;;;21105:30:0;::::1;::::0;::::1;::::0;3045:18:1;;21105:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21096:54;;21064:98;21179:49;::::0;-1:-1:-1;;;21179:49:0;;21209:10:::1;21179:49;::::0;::::1;14050:51:1::0;14117:18;;;14110:34;;;-1:-1:-1;;;;;21179:29:0;::::1;::::0;::::1;::::0;14023:18:1;;21179:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;26189:291::-:0;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;26355:21:::1;:52:::0;26418:22:::1;:54:::0;26189:291::o;13533:460::-;1252:10;13653:4;13697:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13697:34:0;;;;;;;;;;:53;-1:-1:-1;13697:53:0;13675:140;;;;-1:-1:-1;;;13675:140:0;;15640:2:1;13675:140:0;;;15622:21:1;15679:2;15659:18;;;15652:30;15718:34;15698:18;;;15691:62;-1:-1:-1;;;15769:18:1;;;15762:35;15814:19;;13675:140:0;15438:401:1;13675:140:0;1252:10;13899:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13899:34:0;;;;;;;;;;13826:137;;1252:10;13876:7;;13899:52;;13936:15;;13899:52;:::i;15625:222::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;15746:17:::1;:42:::0;;-1:-1:-1;;;;;15746:42:0;;::::1;-1:-1:-1::0;;;;;;15746:42:0;;::::1;;::::0;;;15799:16:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;15625:222::o;12122:199::-;12227:4;12249:42;1252:10;12273:9;12284:6;12249:9;:42::i;17199:183::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;17370:4:::1;17346:20:::0;8097:12:::1;8043:1;8097:2;:12;:::i;:::-;8089:20;::::0;:5:::1;:20;:::i;:::-;17332:34;;;;:::i;:::-;17331:43;;;;:::i;:::-;17316:12;:58:::0;-1:-1:-1;17199:183:0:o;26488:526::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;26675:18:::1;26783:15:::0;26755:12;26696:43:::1;26725:14:::0;26696:13;:43:::1;:::i;:::-;:71;;;;:::i;:::-;:102;;;;:::i;:::-;26675:123;;26830:2;26817:10;:15;26809:50;;;::::0;-1:-1:-1;;;26809:50:0;;16046:2:1;26809:50:0::1;::::0;::::1;16028:21:1::0;16085:2;16065:18;;;16058:30;-1:-1:-1;;;16104:18:1;;;16097:52;16166:18;;26809:50:0::1;15844:346:1::0;26809:50:0::1;25485:14:::0;:29;;;25525:14;:30;;;25566:13;:27;;;25604:15;:32;;;26870:136:::1;26664:350;26488:526:::0;;;;:::o;17592:188::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;17704:21:::1;:31:::0;;;::::1;;;;-1:-1:-1::0;;17704:31:0;;::::1;::::0;;;::::1;::::0;;;17746:13:::1;:26:::0;17592:188::o;6208:281::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6311:22:0;::::1;6289:110;;;::::0;-1:-1:-1;;;6289:110:0;;16397:2:1;6289:110:0::1;::::0;::::1;16379:21:1::0;16436:2;16416:18;;;16409:30;16475:34;16455:18;;;16448:62;-1:-1:-1;;;16526:18:1;;;16519:36;16572:19;;6289:110:0::1;16195:402:1::0;6289:110:0::1;6436:6;::::0;;6415:38:::1;::::0;-1:-1:-1;;;;;6415:38:0;;::::1;::::0;6436:6;::::1;::::0;6415:38:::1;::::0;::::1;6464:6;:17:::0;;-1:-1:-1;;;;;;6464:17:0::1;-1:-1:-1::0;;;;;6464:17:0;;;::::1;::::0;;;::::1;::::0;;6208:281::o;17896:234::-;5875:7;5902:6;-1:-1:-1;;;;;5902:6:0;1252:10;5964:23;5956:68;;;;-1:-1:-1;;;5956:68:0;;;;;;;:::i;:::-;18022:9:::1;18017:106;18033:20:::0;;::::1;18017:106;;;18105:6;18075:13;:27;18089:9;;18099:1;18089:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18075:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18075:27:0;:36;;-1:-1:-1;;18075:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18055:3:::1;::::0;::::1;:::i;:::-;;;18017:106;;29497:371:::0;-1:-1:-1;;;;;29624:19:0;;29616:68;;;;-1:-1:-1;;;29616:68:0;;16804:2:1;29616:68:0;;;16786:21:1;16843:2;16823:18;;;16816:30;16882:34;16862:18;;;16855:62;-1:-1:-1;;;16933:18:1;;;16926:34;16977:19;;29616:68:0;16602:400:1;29616:68:0;-1:-1:-1;;;;;29703:21:0;;29695:68;;;;-1:-1:-1;;;29695:68:0;;17209:2:1;29695:68:0;;;17191:21:1;17248:2;17228:18;;;17221:30;17287:34;17267:18;;;17260:62;-1:-1:-1;;;17338:18:1;;;17331:32;17380:19;;29695:68:0;17007:398:1;29695:68:0;-1:-1:-1;;;;;29776:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;29828:32;;548:25:1;;;29828:32:0;;521:18:1;29828:32:0;;;;;;;;29497:371;;;:::o;21256:161::-;21298:7;21319:15;21336;21355:19;:17;:19::i;:::-;21318:56;;-1:-1:-1;21318:56:0;-1:-1:-1;21392:17:0;21318:56;;21392:17;:::i;:::-;21385:24;;;;21256:161;:::o;29876:3135::-;29994:11;;;;:20;;:11;:20;29990:103;;-1:-1:-1;;;;;30039:13:0;;;;;;:9;:13;;;;;;;;:21;;:13;:21;30031:50;;;;-1:-1:-1;;;30031:50:0;;17612:2:1;30031:50:0;;;17594:21:1;17651:2;17631:18;;;17624:30;-1:-1:-1;;;17670:18:1;;;17663:46;17726:18;;30031:50:0;17410:340:1;30031:50:0;30109:13;;;;:21;;:13;:21;30105:106;;-1:-1:-1;;;;;30155:19:0;;;;;;:13;:19;;;;;;;;:28;30147:52;;;;-1:-1:-1;;;30147:52:0;;17957:2:1;30147:52:0;;;17939:21:1;17996:2;17976:18;;;17969:30;-1:-1:-1;;;18015:18:1;;;18008:41;18066:18;;30147:52:0;17755:335:1;30147:52:0;30256:12;;30246:6;:22;;30245:66;;;-1:-1:-1;;;;;;30290:21:0;;;;;;:15;:21;;;;;;;;30245:66;:106;;;-1:-1:-1;;;;;;30332:19:0;;;;;;:15;:19;;;;;;;;30245:106;30223:177;;;;-1:-1:-1;;;30223:177:0;;18297:2:1;30223:177:0;;;18279:21:1;18336:2;18316:18;;;18309:30;-1:-1:-1;;;18355:18:1;;;18348:51;18416:18;;30223:177:0;18095:345:1;30223:177:0;-1:-1:-1;;;;;30432:25:0;;;;;;:19;:25;;;;;;;;30431:26;:67;;;;-1:-1:-1;;;;;;30475:23:0;;;;;;:19;:23;;;;;;;;30474:24;30431:67;:103;;;;;30521:13;-1:-1:-1;;;;;30515:19:0;:2;-1:-1:-1;;;;;30515:19:0;;;30431:103;30413:289;;;30615:15;;30604:6;30588:13;30598:2;30588:9;:13::i;:::-;:22;;;;:::i;:::-;30587:43;;30561:129;;;;-1:-1:-1;;;30561:129:0;;18647:2:1;30561:129:0;;;18629:21:1;18686:2;18666:18;;;18659:30;18725:26;18705:18;;;18698:54;18769:18;;30561:129:0;18445:348:1;30561:129:0;30787:28;30818:24;30836:4;30818:9;:24::i;:::-;30787:55;;30887:12;;30863:20;:36;30859:116;;30958:1;30943:12;;:16;;;;:::i;:::-;30920:39;;30859:116;31042:13;;31018:37;;;;;;;31092:57;;-1:-1:-1;31133:16:0;;;;31132:17;31092:57;:99;;;;;31178:13;-1:-1:-1;;;;;31170:21:0;:4;-1:-1:-1;;;;;31170:21:0;;;31092:99;:141;;;;-1:-1:-1;31212:21:0;;;;;;;31092:141;31070:305;;;31291:13;;31268:36;;31323;31338:20;31323:14;:36::i;:::-;31450:16;;;;31449:17;:59;;;;;31495:13;-1:-1:-1;;;;;31487:21:0;:4;-1:-1:-1;;;;;31487:21:0;;;31449:59;:101;;;;-1:-1:-1;31529:21:0;;;;;;;31449:101;31427:520;;;31618:27;;31668:16;;31707:21;;31585:162;;31618:27;-1:-1:-1;;;;;31668:16:0;;31585:10;:162::i;:::-;31799:28;;31850:17;;31890:22;;31766:165;;31799:28;-1:-1:-1;;;;;31850:17:0;;31766:10;:165::i;:::-;-1:-1:-1;;;;;;;32004:17:0;;31970:12;32004:17;;;:11;:17;;;;;;31985:4;;32004:17;;;:36;;-1:-1:-1;;;;;;32025:15:0;;;;;;:11;:15;;;;;;;;32004:36;32000:113;;;-1:-1:-1;32067:5:0;32087:14;27265;;;27244:18;:35;27311:14;;;27290:18;:35;27356:13;;;27336:17;:33;27402:15;;;27380:19;:37;-1:-1:-1;25485:29:0;;;;25525:30;;;;25566:27;;;25604:32;27201:260;32087:14;32140:15;32170:23;32208:19;32242:23;32280:18;32313;32346:17;32378:19;32411:28;32422:6;32430:2;32434:4;32411:10;:28::i;:::-;32125:314;;;;;;;;;;;;;;;;32452:167;32484:4;32503:2;32520:6;32541:7;32563:15;32593;32452:17;:167::i;:::-;32672:11;32652:17;;:31;;;;:::i;:::-;32632:17;:51;32722:25;;:39;;32750:11;;32722:39;:::i;:::-;32694:25;:67;32779:7;32774:230;;32803:15;:13;:15::i;:::-;32774:230;;;32872:17;;32851:39;;32860:10;;-1:-1:-1;;;;;32872:17:0;32851:8;:39::i;:::-;32905:35;32914:10;32934:4;32905:8;:35::i;:::-;32975:16;;32955:37;;32964:9;;-1:-1:-1;;;;;32975:16:0;32955:8;:37::i;:::-;29979:3032;;;;;;;;;29876:3135;;;:::o;21425:703::-;21476:7;21485;21505:15;21523:17;;21505:35;;21551:15;8043:1;8097:2;:12;;;;:::i;:::-;8089:20;;:5;:20;:::i;:::-;21551:29;;21596:9;21591:382;21615:9;:16;21611:20;;21591:382;;;21710:7;21675:18;:32;21694:9;21704:1;21694:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21694:12:0;21675:32;;;;;;;;;;;;;:42;;:101;;;21769:7;21738:14;:28;21753:9;21763:1;21753:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21753:12:0;21738:28;;;;;;;;;;;;;:38;21675:101;21653:178;;;21800:17;;8043:1;8097:2;:12;;;;:::i;:::-;8089:20;;:5;:20;:::i;:::-;21792:39;;;;;;;21425:703;;:::o;21653:178::-;21866:18;:32;21885:9;21895:1;21885:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21885:12:0;21866:32;;;;;;;;;;;;;21856:42;;:7;:42;:::i;:::-;21846:52;;21933:14;:28;21948:9;21958:1;21948:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21948:12:0;21933:28;;;;;;;;;;;;;21923:38;;:7;:38;:::i;:::-;21913:48;-1:-1:-1;21633:3:0;;;;:::i;:::-;;;;21591:382;;;-1:-1:-1;8097:12:0;8043:1;8097:2;:12;:::i;:::-;8089:20;;:5;:20;:::i;:::-;21998:17;;:31;;;;:::i;:::-;21987:7;:43;21983:101;;;22053:17;;8043:1;8097:2;:12;;;;:::i;:::-;8089:20;;:5;:20;:::i;:::-;22045:39;;;;;;21425:703;;:::o;21983:101::-;22103:7;;22112;;-1:-1:-1;21425:703:0;-1:-1:-1;21425:703:0:o;27683:415::-;10179:16;:23;;-1:-1:-1;;10179:23:0;10198:4;10179:23;;;:16;27781::::1;27796:1;27781:12:::0;:16:::1;:::i;:::-;27760:37:::0;-1:-1:-1;27837:21:0::1;27871:28;27760:37:::0;27871:16:::1;:28::i;:::-;27910:18;27931:42;27955:18:::0;27931:21:::1;:42;:::i;:::-;27910:63;;27984:36;27997:10;28009;27984:12;:36::i;:::-;28038:52;::::0;;6051:25:1;;;6107:2;6092:18;;6085:34;;;6135:18;;;6128:34;;;28038:52:0::1;::::0;6039:2:1;6024:18;28038:52:0::1;;;;;;;-1:-1:-1::0;;10225:16:0;:24;;-1:-1:-1;;10225:24:0;;;-1:-1:-1;;27683:415:0:o;24267:472::-;24422:15;24441:1;24422:20;24418:59;;24267:472;;;:::o;24418:59::-;24511:12;;24493:15;:30;24489:93;;;24558:12;;24540:30;;24489:93;24638:20;24648:9;24638;:20::i;:::-;24599:34;24617:16;24599:15;:34;:::i;:::-;24598:60;24594:138;;24675:45;24693:9;24704:15;24675:17;:45::i;27430:23::-;27201:260::o;22136:1426::-;22305:15;22335:23;22373:19;22407:23;22445:18;22478;22511:17;22543:19;22590:18;22611;;22590:39;;22659:13;-1:-1:-1;;;;;22646:26:0;:9;-1:-1:-1;;;;;22646:26:0;;22642:174;;-1:-1:-1;22702:14:0;;22642:174;;;22748:13;-1:-1:-1;;;;;22738:23:0;:6;-1:-1:-1;;;;;22738:23:0;;22734:82;;-1:-1:-1;22791:13:0;;22734:82;22912:16;;:22;;22931:3;22912:22;:::i;:::-;22884:10;22866:14;;22856:7;:24;;;;:::i;:::-;22855:39;;;;:::i;:::-;22854:81;;;;:::i;:::-;22828:107;;23030:16;;23049:3;23030:22;;;;:::i;:::-;23002:10;22984:14;;22974:7;:24;;;;:::i;:::-;22973:39;;;;:::i;:::-;22972:81;;;;:::i;:::-;22946:107;;23146:16;;23165:3;23146:22;;;;:::i;:::-;23118:10;23101:13;;23091:7;:23;;;;:::i;:::-;23090:38;;;;:::i;:::-;23089:80;;;;:::i;:::-;23064:105;;23266:16;;23285:3;23266:22;;;;:::i;:::-;23238:10;23219:15;;23209:7;:25;;;;:::i;:::-;23208:40;;;;:::i;:::-;23207:82;;;;:::i;:::-;23180:109;-1:-1:-1;23180:109:0;23383:9;23357:23;23370:10;23357;:23;:::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;23333:74;;:7;:74;:::i;:::-;23302:105;;23446:10;:8;:10::i;:::-;23432:24;;:11;:24;:::i;:::-;23418:38;;23487:10;:8;:10::i;:::-;23477:20;;:7;:20;:::i;:::-;23467:30;;23544:10;:8;:10::i;:::-;23526:28;;:15;:28;:::i;:::-;23508:46;;22579:983;22136:1426;;;;;;;;;;;:::o;33019:698::-;-1:-1:-1;;;;;33263:24:0;;;;;;:18;:24;;;;;;:34;;33290:7;;33263:34;:::i;:::-;-1:-1:-1;;;;;33236:24:0;;;;;;:18;:24;;;;;;;;:61;;;;33314:11;:17;;;;;;33310:103;;;-1:-1:-1;;;;;33371:20:0;;;;;;:14;:20;;;;;;:30;;33394:7;;33371:30;:::i;:::-;-1:-1:-1;;;;;33348:20:0;;;;;;:14;:20;;;;;:53;33310:103;-1:-1:-1;;;;;33429:15:0;;;;;;:11;:15;;;;;;;;33425:105;;;-1:-1:-1;;;;;33482:18:0;;;;;;:14;:18;;;;;;:36;;33503:15;;33482:36;:::i;:::-;-1:-1:-1;;;;;33461:18:0;;;;;;:14;:18;;;;;:57;33425:105;-1:-1:-1;;;;;33565:22:0;;;;;;:18;:22;;;;;;:40;;33590:15;;33565:40;:::i;:::-;-1:-1:-1;;;;;33540:22:0;;;;;;:18;:22;;;;;:65;33622:19;;33618:92;;33678:2;-1:-1:-1;;;;;33663:35:0;33672:4;-1:-1:-1;;;;;33663:35:0;-1:-1:-1;;;;;;;;;;;33682:15:0;33663:35;;;;548:25:1;;536:2;521:18;;402:177;33663:35:0;;;;;;;;33618:92;33019:698;;;;;;:::o;27469:206::-;27513:154;27539:18;;27572;;27605:17;;27637:19;;25485:14;:29;;;;25525:14;:30;;;;25566:13;:27;25604:15;:32;25312:332;24747:557;24827:26;24868:10;:8;:10::i;:::-;24856:22;;:9;:22;:::i;:::-;-1:-1:-1;;;;;24939:34:0;;;;;;:18;:34;;;;;;24827:51;;-1:-1:-1;24939:68:0;;24827:51;;24939:68;:::i;:::-;-1:-1:-1;;;;;24889:34:0;;;;;;:18;:34;;;;;;;;:118;;;;25024:11;:27;;;;;;25020:169;;;-1:-1:-1;;;;;25118:30:0;;;;;;:14;:30;;;;;;:59;;25168:9;;25118:59;:::i;:::-;-1:-1:-1;;;;;25068:30:0;;;;;;:14;:30;;;;;:109;25020:169;25203:13;;25199:98;;25238:47;;548:25:1;;;-1:-1:-1;;;;;25238:47:0;;;25247:10;;-1:-1:-1;;;;;;;;;;;25238:47:0;536:2:1;521:18;25238:47:0;402:177:1;28106:471:0;28196:16;;;28210:1;28196:16;;;;;;;;28172:21;;28196:16;;;;;;;;;;-1:-1:-1;28196:16:0;28172:40;;28241:4;28223;28228:1;28223:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;28223:23:0;;;-1:-1:-1;;;;;28223:23:0;;;;;28267:15;-1:-1:-1;;;;;28267:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28257:4;28262:1;28257:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;28257:32:0;;;-1:-1:-1;;;;;28257:32:0;;;;;28300:62;28317:4;28332:15;28350:11;28300:8;:62::i;:::-;28373:196;;-1:-1:-1;;;28373:196:0;;-1:-1:-1;;;;;28373:15:0;:66;;;;:196;;28454:11;;28480:1;;28496:4;;28523;;28543:15;;28373:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29129:360;29210:62;29227:4;29242:15;29260:11;29210:8;:62::i;:::-;29283:15;-1:-1:-1;;;;;29283:31:0;;29322:9;29355:4;29375:11;29401:1;29417;29433:7;5875;5902:6;-1:-1:-1;;;;;5902:6:0;;5829:87;29433:7;29283:198;;;;;;-1:-1:-1;;;;;;29283:198:0;;;-1:-1:-1;;;;;20598:15:1;;;29283:198:0;;;20580:34:1;20630:18;;;20623:34;;;;20673:18;;;20666:34;;;;20716:18;;;20709:34;20780:15;;;20759:19;;;20752:44;29455:15:0;20812:19:1;;;20805:35;20514:19;;29283:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23570:689::-;10179:16;:23;;-1:-1:-1;;10179:23:0;10198:4;10179:23;;;:16;23747:10:::1;:8;:10::i;:::-;23729:28;::::0;:15;:28:::1;:::i;:::-;-1:-1:-1::0;;;;;23810:26:0;::::1;;::::0;;;:18:::1;:26;::::0;;;;;23702:55;;-1:-1:-1;23810:58:0::1;::::0;23702:55;;23810:58:::1;:::i;:::-;-1:-1:-1::0;;;;;23768:26:0;::::1;;::::0;;;:18:::1;:26;::::0;;;;;;;:100;;;;23885:11:::1;:19:::0;;;;::::1;;23881:117;;;-1:-1:-1::0;;;;;23946:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;;:40:::1;::::0;23971:15;;23946:40:::1;:::i;:::-;-1:-1:-1::0;;;;;23921:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;:65;23881:117:::1;24086:4;24059:33;::::0;;;:18:::1;:33;::::0;;;;;:65:::1;::::0;24108:16;;24059:65:::1;:::i;:::-;24037:4;24010:33;::::0;;;:18:::1;:33;::::0;;;;;;:114;;;;24142:48;;-1:-1:-1;;;;;24142:48:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;24142:48:0;::::1;::::0;24174:15;548:25:1;;536:2;521:18;;402:177;24142:48:0::1;;;;;;;;24203;24227:15;24244:6;24203:23;:48::i;:::-;-1:-1:-1::0;;10225:16:0;:24;;-1:-1:-1;;10225:24:0;;;-1:-1:-1;23570:689:0:o;28585:536::-;28739:16;;;28753:1;28739:16;;;;;;;;28715:21;;28739:16;;;;;;;;;;-1:-1:-1;28739:16:0;28715:40;;28784:4;28766;28771:1;28766:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;28766:23:0;;;-1:-1:-1;;;;;28766:23:0;;;;;28810:15;-1:-1:-1;;;;;28810:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28800:4;28805:1;28800:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;28800:32:0;;;-1:-1:-1;;;;;28800:32:0;;;;;28843:62;28860:4;28875:15;28893:11;28843:8;:62::i;:::-;28916:197;;-1:-1:-1;;;28916:197:0;;-1:-1:-1;;;;;28916:15:0;:66;;;;:197;;28997:11;;29023:1;;29039:4;;29058:14;;29087:15;;28916:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28704:417;28585:536;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;584:548::-;696:4;725:2;754;743:9;736:21;786:6;780:13;829:6;824:2;813:9;809:18;802:34;854:1;864:140;878:6;875:1;872:13;864:140;;;973:14;;;969:23;;963:30;939:17;;;958:2;935:26;928:66;893:10;;864:140;;;868:3;1053:1;1048:2;1039:6;1028:9;1024:22;1020:31;1013:42;1123:2;1116;1112:7;1107:2;1099:6;1095:15;1091:29;1080:9;1076:45;1072:54;1064:62;;;;584:548;;;;:::o;1137:180::-;1196:6;1249:2;1237:9;1228:7;1224:23;1220:32;1217:52;;;1265:1;1262;1255:12;1217:52;-1:-1:-1;1288:23:1;;1137:180;-1:-1:-1;1137:180:1:o;1322:315::-;1390:6;1398;1451:2;1439:9;1430:7;1426:23;1422:32;1419:52;;;1467:1;1464;1457:12;1419:52;1506:9;1493:23;1525:31;1550:5;1525:31;:::i;:::-;1575:5;1627:2;1612:18;;;;1599:32;;-1:-1:-1;;;1322:315:1:o;1834:367::-;1897:8;1907:6;1961:3;1954:4;1946:6;1942:17;1938:27;1928:55;;1979:1;1976;1969:12;1928:55;-1:-1:-1;2002:20:1;;2045:18;2034:30;;2031:50;;;2077:1;2074;2067:12;2031:50;2114:4;2106:6;2102:17;2090:29;;2174:3;2167:4;2157:6;2154:1;2150:14;2142:6;2138:27;2134:38;2131:47;2128:67;;;2191:1;2188;2181:12;2128:67;1834:367;;;;;:::o;2206:118::-;2292:5;2285:13;2278:21;2271:5;2268:32;2258:60;;2314:1;2311;2304:12;2329:566;2421:6;2429;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2546:9;2533:23;2579:18;2571:6;2568:30;2565:50;;;2611:1;2608;2601:12;2565:50;2650:70;2712:7;2703:6;2692:9;2688:22;2650:70;:::i;:::-;2739:8;;-1:-1:-1;2624:96:1;-1:-1:-1;;2824:2:1;2809:18;;2796:32;2837:28;2796:32;2837:28;:::i;:::-;2884:5;2874:15;;;2329:566;;;;;:::o;3134:908::-;3265:6;3273;3281;3289;3297;3350:2;3338:9;3329:7;3325:23;3321:32;3318:52;;;3366:1;3363;3356:12;3318:52;3405:9;3392:23;3424:31;3449:5;3424:31;:::i;:::-;3474:5;-1:-1:-1;3530:2:1;3515:18;;3502:32;3553:18;3583:14;;;3580:34;;;3610:1;3607;3600:12;3580:34;3649:70;3711:7;3702:6;3691:9;3687:22;3649:70;:::i;:::-;3738:8;;-1:-1:-1;3623:96:1;-1:-1:-1;3826:2:1;3811:18;;3798:32;;-1:-1:-1;3842:16:1;;;3839:36;;;3871:1;3868;3861:12;3839:36;;3910:72;3974:7;3963:8;3952:9;3948:24;3910:72;:::i;:::-;3134:908;;;;-1:-1:-1;3134:908:1;;-1:-1:-1;4001:8:1;;3884:98;3134:908;-1:-1:-1;;;3134:908:1:o;4047:456::-;4124:6;4132;4140;4193:2;4181:9;4172:7;4168:23;4164:32;4161:52;;;4209:1;4206;4199:12;4161:52;4248:9;4235:23;4267:31;4292:5;4267:31;:::i;:::-;4317:5;-1:-1:-1;4374:2:1;4359:18;;4346:32;4387:33;4346:32;4387:33;:::i;:::-;4047:456;;4439:7;;-1:-1:-1;;;4493:2:1;4478:18;;;;4465:32;;4047:456::o;4508:241::-;4564:6;4617:2;4605:9;4596:7;4592:23;4588:32;4585:52;;;4633:1;4630;4623:12;4585:52;4672:9;4659:23;4691:28;4713:5;4691:28;:::i;6723:316::-;6800:6;6808;6816;6869:2;6857:9;6848:7;6844:23;6840:32;6837:52;;;6885:1;6882;6875:12;6837:52;-1:-1:-1;;6908:23:1;;;6978:2;6963:18;;6950:32;;-1:-1:-1;7029:2:1;7014:18;;;7001:32;;6723:316;-1:-1:-1;6723:316:1:o;7044:248::-;7112:6;7120;7173:2;7161:9;7152:7;7148:23;7144:32;7141:52;;;7189:1;7186;7179:12;7141:52;-1:-1:-1;;7212:23:1;;;7282:2;7267:18;;;7254:32;;-1:-1:-1;7044:248:1:o;7981:388::-;8049:6;8057;8110:2;8098:9;8089:7;8085:23;8081:32;8078:52;;;8126:1;8123;8116:12;8078:52;8165:9;8152:23;8184:31;8209:5;8184:31;:::i;:::-;8234:5;-1:-1:-1;8291:2:1;8276:18;;8263:32;8304:33;8263:32;8304:33;:::i;:::-;8356:7;8346:17;;;7981:388;;;;;:::o;8374:385::-;8460:6;8468;8476;8484;8537:3;8525:9;8516:7;8512:23;8508:33;8505:53;;;8554:1;8551;8544:12;8505:53;-1:-1:-1;;8577:23:1;;;8647:2;8632:18;;8619:32;;-1:-1:-1;8698:2:1;8683:18;;8670:32;;8749:2;8734:18;8721:32;;-1:-1:-1;8374:385:1;-1:-1:-1;8374:385:1:o;8764:309::-;8829:6;8837;8890:2;8878:9;8869:7;8865:23;8861:32;8858:52;;;8906:1;8903;8896:12;8858:52;8945:9;8932:23;8964:28;8986:5;8964:28;:::i;9078:356::-;9280:2;9262:21;;;9299:18;;;9292:30;9358:34;9353:2;9338:18;;9331:62;9425:2;9410:18;;9078:356::o;9439:127::-;9500:10;9495:3;9491:20;9488:1;9481:31;9531:4;9528:1;9521:15;9555:4;9552:1;9545:15;9571:422;9660:1;9703:5;9660:1;9717:270;9738:7;9728:8;9725:21;9717:270;;;9797:4;9793:1;9789:6;9785:17;9779:4;9776:27;9773:53;;;9806:18;;:::i;:::-;9856:7;9846:8;9842:22;9839:55;;;9876:16;;;;9839:55;9955:22;;;;9915:15;;;;9717:270;;;9721:3;9571:422;;;;;:::o;9998:806::-;10047:5;10077:8;10067:80;;-1:-1:-1;10118:1:1;10132:5;;10067:80;10166:4;10156:76;;-1:-1:-1;10203:1:1;10217:5;;10156:76;10248:4;10266:1;10261:59;;;;10334:1;10329:130;;;;10241:218;;10261:59;10291:1;10282:10;;10305:5;;;10329:130;10366:3;10356:8;10353:17;10350:43;;;10373:18;;:::i;:::-;-1:-1:-1;;10429:1:1;10415:16;;10444:5;;10241:218;;10543:2;10533:8;10530:16;10524:3;10518:4;10515:13;10511:36;10505:2;10495:8;10492:16;10487:2;10481:4;10478:12;10474:35;10471:77;10468:159;;;-1:-1:-1;10580:19:1;;;10612:5;;10468:159;10659:34;10684:8;10678:4;10659:34;:::i;:::-;10729:6;10725:1;10721:6;10717:19;10708:7;10705:32;10702:58;;;10740:18;;:::i;:::-;10778:20;;9998:806;-1:-1:-1;;;9998:806:1:o;10809:140::-;10867:5;10896:47;10937:4;10927:8;10923:19;10917:4;10896:47;:::i;10954:168::-;10994:7;11060:1;11056;11052:6;11048:14;11045:1;11042:21;11037:1;11030:9;11023:17;11019:45;11016:71;;;11067:18;;:::i;:::-;-1:-1:-1;11107:9:1;;10954:168::o;11127:217::-;11167:1;11193;11183:132;;11237:10;11232:3;11228:20;11225:1;11218:31;11272:4;11269:1;11262:15;11300:4;11297:1;11290:15;11183:132;-1:-1:-1;11329:9:1;;11127:217::o;11349:401::-;11551:2;11533:21;;;11590:2;11570:18;;;11563:30;11629:34;11624:2;11609:18;;11602:62;-1:-1:-1;;;11695:2:1;11680:18;;11673:35;11740:3;11725:19;;11349:401::o;11755:127::-;11816:10;11811:3;11807:20;11804:1;11797:31;11847:4;11844:1;11837:15;11871:4;11868:1;11861:15;11887:135;11926:3;11947:17;;;11944:43;;11967:18;;:::i;:::-;-1:-1:-1;12014:1:1;12003:13;;11887:135::o;12436:125::-;12501:9;;;12522:10;;;12519:36;;;12535:18;;:::i;12923:128::-;12990:9;;;13011:11;;;13008:37;;;13025:18;;:::i;14155:245::-;14222:6;14275:2;14263:9;14254:7;14250:23;14246:32;14243:52;;;14291:1;14288;14281:12;14243:52;14323:9;14317:16;14342:28;14364:5;14342:28;:::i;14761:127::-;14822:10;14817:3;14813:20;14810:1;14803:31;14853:4;14850:1;14843:15;14877:4;14874:1;14867:15;15249:184;15319:6;15372:2;15360:9;15351:7;15347:23;15343:32;15340:52;;;15388:1;15385;15378:12;15340:52;-1:-1:-1;15411:16:1;;15249:184;-1:-1:-1;15249:184:1:o;18930:251::-;19000:6;19053:2;19041:9;19032:7;19028:23;19024:32;19021:52;;;19069:1;19066;19059:12;19021:52;19101:9;19095:16;19120:31;19145:5;19120:31;:::i;19186:461::-;19239:3;19277:5;19271:12;19304:6;19299:3;19292:19;19330:4;19359:2;19354:3;19350:12;19343:19;;19396:2;19389:5;19385:14;19417:1;19427:195;19441:6;19438:1;19435:13;19427:195;;;19506:13;;-1:-1:-1;;;;;19502:39:1;19490:52;;19562:12;;;;19597:15;;;;19538:1;19456:9;19427:195;;;-1:-1:-1;19638:3:1;;19186:461;-1:-1:-1;;;;;19186:461:1:o;19652:582::-;19951:6;19940:9;19933:25;19994:6;19989:2;19978:9;19974:18;19967:34;20037:3;20032:2;20021:9;20017:18;20010:31;19914:4;20058:57;20110:3;20099:9;20095:19;20087:6;20058:57;:::i;:::-;-1:-1:-1;;;;;20151:32:1;;;;20146:2;20131:18;;20124:60;-1:-1:-1;20215:3:1;20200:19;20193:35;20050:65;19652:582;-1:-1:-1;;;19652:582:1:o;20851:306::-;20939:6;20947;20955;21008:2;20996:9;20987:7;20983:23;20979:32;20976:52;;;21024:1;21021;21014:12;20976:52;21053:9;21047:16;21037:26;;21103:2;21092:9;21088:18;21082:25;21072:35;;21147:2;21136:9;21132:18;21126:25;21116:35;;20851:306;;;;;:::o
Swarm Source
ipfs://7703626d3f7c38d3623e5923ec656106976d3a90583ab05af6b87813621a8781
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.04
Net Worth in ETH
0.00002
Token Allocations
ETH
100.00%
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,976.46 | 0.00001992 | $0.039372 |
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.