Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 5,245 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 37771050 | 39 hrs ago | IN | 0 ETH | 0.00000027 | ||||
| Approve | 37770973 | 39 hrs ago | IN | 0 ETH | 0.00000051 | ||||
| Transfer | 37770174 | 40 hrs ago | IN | 0 ETH | 0.00000063 | ||||
| Approve | 37531672 | 7 days ago | IN | 0 ETH | 0.00000038 | ||||
| Transfer | 37427527 | 9 days ago | IN | 0 ETH | 0.00000056 | ||||
| Approve | 37419762 | 9 days ago | IN | 0 ETH | 0.00000024 | ||||
| Transfer | 37220089 | 14 days ago | IN | 0 ETH | 0.00000077 | ||||
| Approve | 37170085 | 15 days ago | IN | 0 ETH | 0.00000051 | ||||
| Approve | 36879453 | 22 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 36864482 | 22 days ago | IN | 0 ETH | 0.00000134 | ||||
| Approve | 36864430 | 22 days ago | IN | 0 ETH | 0.0000015 | ||||
| Transfer | 36684188 | 26 days ago | IN | 0 ETH | 0.00000068 | ||||
| Transfer | 36613566 | 28 days ago | IN | 0 ETH | 0.0000008 | ||||
| Transfer | 36582194 | 29 days ago | IN | 0 ETH | 0.0000004 | ||||
| Transfer | 36563018 | 29 days ago | IN | 0 ETH | 0.00000037 | ||||
| Transfer | 36545501 | 30 days ago | IN | 0 ETH | 0.00000025 | ||||
| Approve | 36201790 | 37 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 35973905 | 43 days ago | IN | 0 ETH | 0.00000011 | ||||
| Approve | 35961800 | 43 days ago | IN | 0 ETH | 0.00000034 | ||||
| Approve | 35939895 | 44 days ago | IN | 0 ETH | 0.00000005 | ||||
| Approve | 35708330 | 49 days ago | IN | 0 ETH | 0.00000091 | ||||
| Transfer | 35547613 | 53 days ago | IN | 0 ETH | 0.00000022 | ||||
| Approve | 35504539 | 54 days ago | IN | 0 ETH | 0.00000011 | ||||
| Approve | 35463962 | 55 days ago | IN | 0 ETH | 0.00000025 | ||||
| Approve | 35463952 | 55 days ago | IN | 0 ETH | 0.00000025 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 14726252 | 535 days ago | 0.03796921 ETH | ||||
| 14726252 | 535 days ago | 0.03796921 ETH | ||||
| 14726252 | 535 days ago | 0.07593842 ETH | ||||
| 14726250 | 535 days ago | 0.03933486 ETH | ||||
| 14726250 | 535 days ago | 0.03933486 ETH | ||||
| 14726250 | 535 days ago | 0.07866973 ETH | ||||
| 14726250 | 535 days ago | 0.04065638 ETH | ||||
| 14726250 | 535 days ago | 0.04065638 ETH | ||||
| 14726250 | 535 days ago | 0.08131276 ETH | ||||
| 14726247 | 535 days ago | 0.04192568 ETH | ||||
| 14726247 | 535 days ago | 0.04192568 ETH | ||||
| 14726247 | 535 days ago | 0.08385136 ETH | ||||
| 14726247 | 535 days ago | 0.04319827 ETH | ||||
| 14726247 | 535 days ago | 0.04319827 ETH | ||||
| 14726247 | 535 days ago | 0.08639654 ETH | ||||
| 14726245 | 535 days ago | 0.04466958 ETH | ||||
| 14726245 | 535 days ago | 0.04466958 ETH | ||||
| 14726245 | 535 days ago | 0.08933916 ETH | ||||
| 14726245 | 535 days ago | 0.04656843 ETH | ||||
| 14726245 | 535 days ago | 0.04656843 ETH | ||||
| 14726245 | 535 days ago | 0.09313687 ETH | ||||
| 14726128 | 535 days ago | 0.03049352 ETH | ||||
| 14726128 | 535 days ago | 0.03049352 ETH | ||||
| 14726128 | 535 days ago | 0.06098704 ETH | ||||
| 14726085 | 535 days ago | 0.02938485 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BADCAT
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2024-05-20
*/
// SPDX-License-Identifier: MIT
// https://t.me/badcat_base
pragma solidity 0.8.21;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b > a) return(false, 0); return(true, a - b);}}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
if(c / a != b) return(false, 0); return(true, c);}}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b == 0) return(false, 0); return(true, a / b);}}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b == 0) return(false, 0); return(true, a % b);}}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b <= a, errorMessage); return a - b;}}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b > 0, errorMessage); return a / b;}}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b > 0, errorMessage); return a % b;}}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Ownable {
address internal owner;
constructor(address _owner) {owner = _owner;}
modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
function isOwner(address account) public view returns (bool) {return account == owner;}
function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
event OwnershipTransferred(address owner);
}
interface IFactory{
function createPair(address tokenA, address tokenB) external returns (address pair);
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline) external;
}
contract BADCAT is IERC20, Ownable {
using SafeMath for uint256;
string private constant _name = 'BADCAT';
string private constant _symbol = 'BADCAT';
uint8 private constant _decimals = 9;
uint256 private _totalSupply = 420000000000 * (10 ** _decimals);
uint256 private _maxTxAmount = 1050000001 * (10 ** _decimals); // Maximum amount for a single transaction
uint256 private _maxTransferAmount = 1050000001 * (10 ** _decimals); // Maximum amount for a single transfer
uint256 private _maxWalletToken = 1050000001 * (10 ** _decimals); // Maximum token amount that can be held in a wallet
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isFeeExempt;
IRouter router;
address public pair;
bool private tradingAllowed = false;
uint256 private liquidityFee = 0;
uint256 private marketingFee = 3000;
uint256 private developmentFee = 0;
uint256 public totalFee = 3000;
uint256 public sellFee = 3000;
uint256 public transferFee = 0;
uint256 private denominator = 10000;
bool private swapEnabled = true;
uint256 private swapTimes;
bool private swapping;
uint256 public swapThreshold = ( _totalSupply * 10 ) / 10000;
uint256 public _minTokenAmount = ( _totalSupply * 10 ) / 100000;
modifier lockTheSwap {swapping = true; _; swapping = false;}
uint256 public tradingStartTime;
uint256 private lastFeeUpdateTime;
address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
address internal development_receiver = 0x4236e6A50B7c093C5c7EFAE5B4CAAdF084156C15;
address internal marketing_receiver = 0x4236e6A50B7c093C5c7EFAE5B4CAAdF084156C15;
address internal liquidity_receiver = 0x4236e6A50B7c093C5c7EFAE5B4CAAdF084156C15;
constructor() Ownable(msg.sender) {
IRouter _router = IRouter(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
router = _router;
pair = _pair;
isFeeExempt[address(this)] = true;
isFeeExempt[liquidity_receiver] = true;
isFeeExempt[marketing_receiver] = true;
isFeeExempt[development_receiver] = true;
isFeeExempt[msg.sender] = true;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable {}
function name() public pure returns (string memory) {return _name;}
function symbol() public pure returns (string memory) {return _symbol;}
function decimals() public pure returns (uint8) {return _decimals;}
event TradingEnabled(uint256 timestamp);
function enableTrading() external onlyOwner {
require(!tradingAllowed, "Trading is already enabled"); // Prevent this from being run if trading is already enabled
tradingAllowed = true;
tradingStartTime = block.timestamp;
lastFeeUpdateTime = block.timestamp - 1 minutes; // To force immediate update on first transfer
emit TradingEnabled(block.timestamp);
}
function getOwner() external view override returns (address) { return owner; }
function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
function setisfeeExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(address(0)));}
function getMaxWalletTokenAmount() public view returns (uint256) {return _maxWalletToken;}
function getMaxTxAmount() public view returns (uint256) {return _maxTxAmount;}
function getMaxTransferAmount() public view returns (uint256) {return _maxTransferAmount;}
function preTxCheck(address sender, address recipient, uint256 amount) internal view {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(amount > uint256(0), "Transfer amount must be greater than zero");
require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
}
function _transfer(address sender, address recipient, uint256 amount) private {
preTxCheck(sender, recipient, amount);
updateFees();
checkTradingAllowed(sender, recipient);
checkMaxWallet(sender, recipient, amount);
swapbackCounters(sender, recipient);
checkTxLimit(sender, recipient, amount);
swapBack(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount);
uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
}
function updateFees() internal {
if (block.timestamp < lastFeeUpdateTime + 1 minutes) {
// If less than a minute has passed since the last update, do nothing
return;
}
// Update the lastFeeUpdateTime to the current time
lastFeeUpdateTime = block.timestamp;
uint256 timeElapsed = block.timestamp - tradingStartTime;
if (timeElapsed < 1 minutes) {
liquidityFee = 0;
marketingFee = 3000;
developmentFee = 0;
totalFee = 3000;
sellFee = 3000;
transferFee = 0;
} else if (timeElapsed < 5 minutes) {
liquidityFee = 0;
marketingFee = 2000;
developmentFee = 0;
totalFee = 2000;
sellFee = 3000;
transferFee = 0;
} else if (timeElapsed < 10 minutes) {
liquidityFee = 0;
marketingFee = 1000;
developmentFee = 0;
totalFee = 1000;
sellFee = 2000;
transferFee = 0;
} else if (timeElapsed < 15 minutes) {
liquidityFee = 0;
marketingFee = 500;
developmentFee = 0;
totalFee = 500;
sellFee = 2000;
transferFee = 0;
} else {
liquidityFee = 0;
marketingFee = 1;
developmentFee = 0;
totalFee = 0;
sellFee = 0;
transferFee = 0;
}
}
function setTaxes(uint256 _liquidity, uint256 _marketing, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
// Set the individual fees
liquidityFee = _liquidity;
marketingFee = _marketing;
developmentFee = _development;
totalFee = _total;
sellFee = _sell;
transferFee = _trans;
// Validate that totalFee and sellFee do not exceed 3% of the total represented by denominator
require(totalFee <= denominator.div(100).mul(3), "Total fee cannot exceed 3%");
require(sellFee <= denominator.div(100).mul(3), "Sell fee cannot exceed 3%");
require(transferFee <= denominator.div(100).mul(3), "Total fee cannot exceed 3%");
}
function setLimits(uint256 maxTxAmount, uint256 maxTransferAmount, uint256 maxWalletToken) external onlyOwner {
uint256 minimumLimit = totalSupply().mul(25).div(10000); // 0.25% of total supply
// Ensure the limits cannot be set below 0.25% of the total supply
require(maxTxAmount * (10**_decimals) >= minimumLimit, "Max transaction limit cannot be lower than 0.25% of the total supply");
require(maxTransferAmount * (10**_decimals) >= minimumLimit, "Max transfer limit cannot be lower than 0.25% of the total supply");
require(maxWalletToken * (10**_decimals) >= minimumLimit, "Max wallet token amount cannot be lower than 0.25% of the total supply");
// Set the new limits if they are above the minimum limit
_maxTxAmount = maxTxAmount * (10**_decimals);
_maxTransferAmount = maxTransferAmount * (10**_decimals);
_maxWalletToken = maxWalletToken * (10**_decimals);
}
function changeReceiverAddresses(address _liquidity_receiver, address _marketing_receiver, address _development_receiver) external onlyOwner {
liquidity_receiver = _liquidity_receiver;
marketing_receiver = _marketing_receiver;
development_receiver = _development_receiver;
}
function checkTradingAllowed(address sender, address recipient) internal view {
if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
}
function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");
}
}
function swapbackCounters(address sender, address recipient) internal {
if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
}
function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
if(sender != pair) {require(amount <= _maxTransferAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
}
function swapAndLiquify(uint256 tokens) private lockTheSwap {
uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
uint256 initialBalance = address(this).balance;
swapTokensForETH(toSwap);
uint256 deltaBalance = address(this).balance.sub(initialBalance);
uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
uint256 remainingBalance = address(this).balance;
if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
}
function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
_approve(address(this), address(router), tokenAmount);
router.addLiquidityETH{value: ETHAmount}(
address(this),
tokenAmount,
0,
0,
liquidity_receiver,
block.timestamp);
}
function swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tokenAmount);
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp);
}
function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
bool aboveMin = amount >= _minTokenAmount;
bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(1) && aboveThreshold;
}
function swapBack(address sender, address recipient, uint256 amount) internal {
if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
}
function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
return !isFeeExempt[sender] && !isFeeExempt[recipient];
}
function getTotalFee(address sender, address recipient) internal view returns (uint256) {
if(recipient == pair){return sellFee;}
if(sender == pair){return totalFee;}
return transferFee;
}
function setMinTokenAmountForSwap(uint256 newMinTokenAmount) external onlyOwner {
require(newMinTokenAmount > 0, "Minimum token amount must be greater than 0");
_minTokenAmount = newMinTokenAmount * (10 ** _decimals);
}
function changeSwapthreshold(uint256 _swapThreshold) public onlyOwner {
require(_swapThreshold > 0, "Swap threshold must be greater than 0");
swapThreshold = _swapThreshold * (10 ** _decimals);
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
if(getTotalFee(sender, recipient) > 0){
uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);} return amount;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
// Function to withdraw tokens from the contract
function withdrawAllTokens(address tokenAddress, address to) external onlyOwner {
require(tokenAddress != address(0), "Token address cannot be the zero address");
require(to != address(0), "Withdrawal address cannot be the zero address");
// Get the total balance of the token held by the contract
uint256 amount = IERC20(tokenAddress).balanceOf(address(this));
require(amount > 0, "No tokens to withdraw");
// Transfer all tokens to the specified address
require(IERC20(tokenAddress).transfer(to, amount), "Token transfer failed");
}
// Function to withdraw Ether from the contract
function withdrawAllETH() external onlyOwner {
// Check that there is ETH to withdraw
uint256 amount = address(this).balance;
require(amount > 0, "No ETH to withdraw");
// Transfer all ETH to the owner
payable(owner).transfer(amount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_minTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidity_receiver","type":"address"},{"internalType":"address","name":"_marketing_receiver","type":"address"},{"internalType":"address","name":"_development_receiver","type":"address"}],"name":"changeReceiverAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"changeSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWalletTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxTransferAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinTokenAmount","type":"uint256"}],"name":"setMinTokenAmountForSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisfeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAllETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawAllTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052620000126009600a620004bb565b62000023906461c9f36800620004d2565b600155620000346009600a620004bb565b6200004490633e95ba81620004d2565b600255620000556009600a620004bb565b6200006590633e95ba81620004d2565b600355620000766009600a620004bb565b6200008690633e95ba81620004d2565b6004556009805460ff60a01b191690555f600a818155610bb8600b819055600c839055600d819055600e55600f9190915561271060108190556011805460ff19166001908117909155549091620000de9190620004d2565b620000ea9190620004ec565b601455620186a0600154600a620001029190620004d2565b6200010e9190620004ec565b60155560188054734236e6a50b7c093c5c7efae5b4caadf084156c156001600160a01b0319918216811790925560198054821683179055601a805490911690911790553480156200015d575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051734752ba5dbc23f44d87826276bf6fd6b1c372ad249291839163c45a0155916004808201926020929091908290030181865afa158015620001c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e891906200050c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025a91906200050c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cb91906200050c565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055305f908152600760209081526040808320805460ff199081166001908117909255601a5486168552828520805482168317905560195486168552828520805482168317905560185490951684528184208054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000534565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040057815f1904821115620003e457620003e4620003ac565b80851615620003f257918102915b93841c9390800290620003c5565b509250929050565b5f826200041857506001620004b5565b816200042657505f620004b5565b81600181146200043f57600281146200044a576200046a565b6001915050620004b5565b60ff8411156200045e576200045e620003ac565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200048f575081810a620004b5565b6200049b8383620003c0565b805f1904821115620004b157620004b1620003ac565b0290505b92915050565b5f620004cb60ff84168362000408565b9392505050565b8082028115828204841417620004b557620004b5620003ac565b5f826200050757634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200051d575f80fd5b81516001600160a01b0381168114620004cb575f80fd5b6123ac80620005425f395ff3fe6080604052600436106101de575f3560e01c806370b7b80c116100fd578063a8aa1b3111610092578063dac9853e11610062578063dac9853e14610534578063dd62ed3e14610553578063f036452a14610597578063f2fde38b146105ab575f80fd5b8063a8aa1b31146104c2578063a9059cbb146104e1578063acb2ad6f14610500578063d37e917714610515575f80fd5b80638a8c523c116100cd5780638a8c523c1461047b57806390386bbf1461048f57806395d89b41146102325780639abba4e6146104a3575f80fd5b806370b7b80c1461040357806381f876441461041857806383ddf8281461042c578063893d20e81461044b575f80fd5b80632b14ca56116101735780633f4218e0116101435780633f4218e01461036e57806350f760e91461039c5780636d8b0527146103bb57806370a08231146103cf575f80fd5b80632b14ca56146102fc5780632f54bf6e14610311578063313ce5671461033e57806338ffa79814610359575f80fd5b806318160ddd116101ae57806318160ddd14610295578063189ae5f2146102a95780631df4ccfc146102c857806323b872dd146102dd575f80fd5b80630445b667146101e957806304d4c9901461021157806306fdde0314610232578063095ea7b314610266575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fe60145481565b6040519081526020015b60405180910390f35b34801561021c575f80fd5b5061023061022b366004611ebc565b6105ca565b005b34801561023d575f80fd5b50604080518082018252600681526510905110d05560d21b602082015290516102089190611efb565b348015610271575f80fd5b50610285610280366004611f5a565b610766565b6040519015158152602001610208565b3480156102a0575f80fd5b506101fe61077c565b3480156102b4575f80fd5b506102306102c3366004611f84565b6107b8565b3480156102d3575f80fd5b506101fe600d5481565b3480156102e8575f80fd5b506102856102f7366004611fad565b610a16565b348015610307575f80fd5b506101fe600e5481565b34801561031c575f80fd5b5061028561032b366004611feb565b5f546001600160a01b0391821691161490565b348015610349575f80fd5b5060405160098152602001610208565b348015610364575f80fd5b506101fe60155481565b348015610379575f80fd5b50610285610388366004611feb565b60076020525f908152604090205460ff1681565b3480156103a7575f80fd5b506102306103b6366004612006565b610a7e565b3480156103c6575f80fd5b506002546101fe565b3480156103da575f80fd5b506101fe6103e9366004611feb565b6001600160a01b03165f9081526005602052604090205490565b34801561040e575f80fd5b506101fe60165481565b348015610423575f80fd5b506004546101fe565b348015610437575f80fd5b5061023061044636600461203d565b610ce4565b348015610456575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610208565b348015610486575f80fd5b50610230610d4c565b34801561049a575f80fd5b50610230610e2c565b3480156104ae575f80fd5b506102306104bd366004612085565b610ed2565b3480156104cd575f80fd5b50600954610463906001600160a01b031681565b3480156104ec575f80fd5b506102856104fb366004611f5a565b610f74565b34801561050b575f80fd5b506101fe600f5481565b348015610520575f80fd5b5061023061052f3660046120a9565b610f80565b34801561053f575f80fd5b5061023061054e366004612085565b610fd3565b34801561055e575f80fd5b506101fe61056d366004612006565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156105a2575f80fd5b506003546101fe565b3480156105b6575f80fd5b506102306105c5366004611feb565b61107b565b5f546001600160a01b031633146105fc5760405162461bcd60e51b81526004016105f3906120d5565b60405180910390fd5b600a869055600b859055600c849055600d839055600e829055600f8190556010546106359060039061062f9060646110f7565b90611102565b600d5411156106865760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b6106a1600361062f60646010546110f790919063ffffffff16565b600e5411156106f25760405162461bcd60e51b815260206004820152601960248201527f53656c6c206665652063616e6e6f74206578636565642033250000000000000060448201526064016105f3565b61070d600361062f60646010546110f790919063ffffffff16565b600f54111561075e5760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b505050505050565b5f61077233848461110d565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546107b391611230565b905090565b5f546001600160a01b031633146107e15760405162461bcd60e51b81526004016105f3906120d5565b5f6107fb6127106107f5601961062f61077c565b906110f7565b90508061080a6009600a6121e9565b61081490866121f7565b10156108965760405162461bcd60e51b8152602060048201526044602482018190527f4d6178207472616e73616374696f6e206c696d69742063616e6e6f7420626520908201527f6c6f776572207468616e20302e323525206f662074686520746f74616c20737560648201526370706c7960e01b608482015260a4016105f3565b806108a36009600a6121e9565b6108ad90856121f7565b101561092b5760405162461bcd60e51b815260206004820152604160248201527f4d6178207472616e73666572206c696d69742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e323525206f662074686520746f74616c20737570706c6064820152607960f81b608482015260a4016105f3565b806109386009600a6121e9565b61094290846121f7565b10156109c55760405162461bcd60e51b815260206004820152604660248201527f4d61782077616c6c657420746f6b656e20616d6f756e742063616e6e6f74206260448201527f65206c6f776572207468616e20302e323525206f662074686520746f74616c20606482015265737570706c7960d01b608482015260a4016105f3565b6109d16009600a6121e9565b6109db90856121f7565b6002556109ea6009600a6121e9565b6109f490846121f7565b600355610a036009600a6121e9565b610a0d90836121f7565b60045550505050565b5f610a2284848461123b565b610a738433610a6e8560405180606001604052806028815260200161234f602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190611365565b61110d565b5060015b9392505050565b5f546001600160a01b03163314610aa75760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b038216610b0e5760405162461bcd60e51b815260206004820152602860248201527f546f6b656e20616464726573732063616e6e6f7420626520746865207a65726f604482015267206164647265737360c01b60648201526084016105f3565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602d60248201527f5769746864726177616c20616464726573732063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016105f3565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610bbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be2919061220e565b90505f8111610c2b5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016105f3565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610c77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9b9190612225565b610cdf5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b60448201526064016105f3565b505050565b5f546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016105f3906120d5565b601a80546001600160a01b039485166001600160a01b031991821617909155601980549385169382169390931790925560188054919093169116179055565b5f546001600160a01b03163314610d755760405162461bcd60e51b81526004016105f3906120d5565b600954600160a01b900460ff1615610dcf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016105f3565b6009805460ff60a01b1916600160a01b179055426016819055610df490603c90612240565b6017556040514281527fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e9239060200160405180910390a1565b5f546001600160a01b03163314610e555760405162461bcd60e51b81526004016105f3906120d5565b4780610e985760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b60448201526064016105f3565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610ece573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610efb5760405162461bcd60e51b81526004016105f3906120d5565b5f8111610f585760405162461bcd60e51b815260206004820152602560248201527f53776170207468726573686f6c64206d75737420626520677265617465722074604482015264068616e20360dc1b60648201526084016105f3565b610f646009600a6121e9565b610f6e90826121f7565b60145550565b5f61077233848461123b565b5f546001600160a01b03163314610fa95760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016105f3906120d5565b5f811161105f5760405162461bcd60e51b815260206004820152602b60248201527f4d696e696d756d20746f6b656e20616d6f756e74206d7573742062652067726560448201526a061746572207468616e20360ac1b60648201526084016105f3565b61106b6009600a6121e9565b61107590826121f7565b60155550565b5f546001600160a01b031633146110a45760405162461bcd60e51b81526004016105f3906120d5565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f610a778284612253565b5f610a7782846121f7565b6001600160a01b03831661116f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f3565b6001600160a01b0382166111d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f3565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610a778284612240565b611246838383611390565b61124e611538565b6112588383611635565b6112638383836116c4565b61126d83836117ad565b611278838383611802565b61128383838361192b565b6001600160a01b0383165f908152600560205260409020546112a59082611230565b6001600160a01b0384165f908152600560205260408120919091556112ca848461194f565b6112d457816112df565b6112df848484611993565b6001600160a01b0384165f908152600560205260409020549091506113049082611a4e565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113579085815260200190565b60405180910390a350505050565b5f81848411156113885760405162461bcd60e51b81526004016105f39190611efb565b505050900390565b6001600160a01b0383166113f45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f3565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f3565b5f81116114b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f3565b6001600160a01b0383165f90815260056020526040902054811115610cdf5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105f3565b60175461154690603c612272565b42101561154f57565b4260178190556016545f916115649190612240565b9050603c811015611590575f600a819055610bb8600b819055600c829055600d819055600e55600f5550565b61012c8110156115bc575f600a8190556107d0600b819055600c829055600d55610bb8600e55600f5550565b6102588110156115e8575f600a8190556103e8600b819055600c829055600d556107d0600e55600f5550565b610384811015611614575f600a8190556101f4600b819055600c829055600d556107d0600e55600f5550565b5f600a8190556001600b55600c819055600d819055600e819055600f555b50565b6001600160a01b0382165f9081526007602052604090205460ff1615801561167557506001600160a01b0381165f9081526007602052604090205460ff16155b15610ece57600954600160a01b900460ff16610ece5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105f3565b6001600160a01b0383165f9081526007602052604090205460ff1615801561170457506001600160a01b0382165f9081526007602052604090205460ff16155b801561171e57506009546001600160a01b03838116911614155b801561173557506001600160a01b03821661dead14155b15610cdf576004546001600160a01b0383165f9081526005602052604090205461175f9083611a4e565b1115610cdf5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105f3565b6009546001600160a01b0382811691161480156117e257506001600160a01b0382165f9081526007602052604090205460ff16155b15610ece57600160125f8282546117f99190612272565b90915550505050565b6009546001600160a01b038481169116146118a1576003548111158061183f57506001600160a01b0383165f9081526007602052604090205460ff165b8061186157506001600160a01b0382165f9081526007602052604090205460ff165b6118a15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b600254811115806118c957506001600160a01b0383165f9081526007602052604090205460ff165b806118eb57506001600160a01b0382165f9081526007602052604090205460ff165b610cdf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b611936838383611a59565b15610cdf57611946601454611b09565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff16158015610a775750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f8061199f8585611c79565b1115611a47575f6119c16119b38686611c79565b60105461062f9086906110f7565b305f908152600560205260409020549091506119dd9082611a4e565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a2d9085815260200190565b60405180910390a3611a3f8382611230565b915050610a77565b5092915050565b5f610a778284612272565b601554601454305f9081526005602052604081205460135491938510159211159060ff16158015611a8c575060115460ff165b8015611aa15750600954600160a01b900460ff165b8015611aaa5750815b8015611ace57506001600160a01b0386165f9081526007602052604090205460ff16155b8015611ae757506009546001600160a01b038681169116145b8015611af65750600160125410155b8015611aff5750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f93611b429360029361062f939192611b3c928391611a4e565b90611a4e565b90505f611b5e826107f5600a548661110290919063ffffffff16565b90505f611b6b8483611230565b905047611b7782611cc3565b5f611b824783611230565b90505f611ba4611b9d600a548861123090919063ffffffff16565b83906110f7565b90505f611bbc600a548361110290919063ffffffff16565b90508015611bce57611bce8682611e0b565b600b545f90611be29061062f856002611102565b90508015611c23576019546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c21573d5f803e3d5ffd5b505b478015611c63576018546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c61573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b0390811690831603611c9a5750600e54610776565b6009546001600160a01b0390811690841603611cb95750600d54610776565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611cf657611cf6612285565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d719190612299565b81600181518110611d8457611d84612285565b6001600160a01b039283166020918202929092010152600854611daa913091168461110d565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790611de29085905f908690309042906004016122b4565b5f604051808303815f87803b158015611df9575f80fd5b505af115801561075e573d5f803e3d5ffd5b600854611e239030906001600160a01b03168461110d565b600854601a5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e90573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611eb59190612323565b5050505050565b5f805f805f8060c08789031215611ed1575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b81811015611f2657858101830151858201604001528201611f0a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611632575f80fd5b5f8060408385031215611f6b575f80fd5b8235611f7681611f46565b946020939093013593505050565b5f805f60608486031215611f96575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611fbf575f80fd5b8335611fca81611f46565b92506020840135611fda81611f46565b929592945050506040919091013590565b5f60208284031215611ffb575f80fd5b8135610a7781611f46565b5f8060408385031215612017575f80fd5b823561202281611f46565b9150602083013561203281611f46565b809150509250929050565b5f805f6060848603121561204f575f80fd5b833561205a81611f46565b9250602084013561206a81611f46565b9150604084013561207a81611f46565b809150509250925092565b5f60208284031215612095575f80fd5b5035919050565b8015158114611632575f80fd5b5f80604083850312156120ba575f80fd5b82356120c581611f46565b915060208301356120328161209c565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561214357815f1904821115612129576121296120f5565b8085161561213657918102915b93841c939080029061210e565b509250929050565b5f8261215957506001610776565b8161216557505f610776565b816001811461217b5760028114612185576121a1565b6001915050610776565b60ff841115612196576121966120f5565b50506001821b610776565b5060208310610133831016604e8410600b84101617156121c4575081810a610776565b6121ce8383612109565b805f19048211156121e1576121e16120f5565b029392505050565b5f610a7760ff84168361214b565b8082028115828204841417610776576107766120f5565b5f6020828403121561221e575f80fd5b5051919050565b5f60208284031215612235575f80fd5b8151610a778161209c565b81810381811115610776576107766120f5565b5f8261226d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610776576107766120f5565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156122a9575f80fd5b8151610a7781611f46565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123025784516001600160a01b0316835293830193918301916001016122dd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612335575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057987a1b669b2f092295e495c44e5cb01713a3a821b16c743b3fb1e91c9354a664736f6c63430008150033
Deployed Bytecode
0x6080604052600436106101de575f3560e01c806370b7b80c116100fd578063a8aa1b3111610092578063dac9853e11610062578063dac9853e14610534578063dd62ed3e14610553578063f036452a14610597578063f2fde38b146105ab575f80fd5b8063a8aa1b31146104c2578063a9059cbb146104e1578063acb2ad6f14610500578063d37e917714610515575f80fd5b80638a8c523c116100cd5780638a8c523c1461047b57806390386bbf1461048f57806395d89b41146102325780639abba4e6146104a3575f80fd5b806370b7b80c1461040357806381f876441461041857806383ddf8281461042c578063893d20e81461044b575f80fd5b80632b14ca56116101735780633f4218e0116101435780633f4218e01461036e57806350f760e91461039c5780636d8b0527146103bb57806370a08231146103cf575f80fd5b80632b14ca56146102fc5780632f54bf6e14610311578063313ce5671461033e57806338ffa79814610359575f80fd5b806318160ddd116101ae57806318160ddd14610295578063189ae5f2146102a95780631df4ccfc146102c857806323b872dd146102dd575f80fd5b80630445b667146101e957806304d4c9901461021157806306fdde0314610232578063095ea7b314610266575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fe60145481565b6040519081526020015b60405180910390f35b34801561021c575f80fd5b5061023061022b366004611ebc565b6105ca565b005b34801561023d575f80fd5b50604080518082018252600681526510905110d05560d21b602082015290516102089190611efb565b348015610271575f80fd5b50610285610280366004611f5a565b610766565b6040519015158152602001610208565b3480156102a0575f80fd5b506101fe61077c565b3480156102b4575f80fd5b506102306102c3366004611f84565b6107b8565b3480156102d3575f80fd5b506101fe600d5481565b3480156102e8575f80fd5b506102856102f7366004611fad565b610a16565b348015610307575f80fd5b506101fe600e5481565b34801561031c575f80fd5b5061028561032b366004611feb565b5f546001600160a01b0391821691161490565b348015610349575f80fd5b5060405160098152602001610208565b348015610364575f80fd5b506101fe60155481565b348015610379575f80fd5b50610285610388366004611feb565b60076020525f908152604090205460ff1681565b3480156103a7575f80fd5b506102306103b6366004612006565b610a7e565b3480156103c6575f80fd5b506002546101fe565b3480156103da575f80fd5b506101fe6103e9366004611feb565b6001600160a01b03165f9081526005602052604090205490565b34801561040e575f80fd5b506101fe60165481565b348015610423575f80fd5b506004546101fe565b348015610437575f80fd5b5061023061044636600461203d565b610ce4565b348015610456575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610208565b348015610486575f80fd5b50610230610d4c565b34801561049a575f80fd5b50610230610e2c565b3480156104ae575f80fd5b506102306104bd366004612085565b610ed2565b3480156104cd575f80fd5b50600954610463906001600160a01b031681565b3480156104ec575f80fd5b506102856104fb366004611f5a565b610f74565b34801561050b575f80fd5b506101fe600f5481565b348015610520575f80fd5b5061023061052f3660046120a9565b610f80565b34801561053f575f80fd5b5061023061054e366004612085565b610fd3565b34801561055e575f80fd5b506101fe61056d366004612006565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156105a2575f80fd5b506003546101fe565b3480156105b6575f80fd5b506102306105c5366004611feb565b61107b565b5f546001600160a01b031633146105fc5760405162461bcd60e51b81526004016105f3906120d5565b60405180910390fd5b600a869055600b859055600c849055600d839055600e829055600f8190556010546106359060039061062f9060646110f7565b90611102565b600d5411156106865760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b6106a1600361062f60646010546110f790919063ffffffff16565b600e5411156106f25760405162461bcd60e51b815260206004820152601960248201527f53656c6c206665652063616e6e6f74206578636565642033250000000000000060448201526064016105f3565b61070d600361062f60646010546110f790919063ffffffff16565b600f54111561075e5760405162461bcd60e51b815260206004820152601a60248201527f546f74616c206665652063616e6e6f742065786365656420332500000000000060448201526064016105f3565b505050505050565b5f61077233848461110d565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546107b391611230565b905090565b5f546001600160a01b031633146107e15760405162461bcd60e51b81526004016105f3906120d5565b5f6107fb6127106107f5601961062f61077c565b906110f7565b90508061080a6009600a6121e9565b61081490866121f7565b10156108965760405162461bcd60e51b8152602060048201526044602482018190527f4d6178207472616e73616374696f6e206c696d69742063616e6e6f7420626520908201527f6c6f776572207468616e20302e323525206f662074686520746f74616c20737560648201526370706c7960e01b608482015260a4016105f3565b806108a36009600a6121e9565b6108ad90856121f7565b101561092b5760405162461bcd60e51b815260206004820152604160248201527f4d6178207472616e73666572206c696d69742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e323525206f662074686520746f74616c20737570706c6064820152607960f81b608482015260a4016105f3565b806109386009600a6121e9565b61094290846121f7565b10156109c55760405162461bcd60e51b815260206004820152604660248201527f4d61782077616c6c657420746f6b656e20616d6f756e742063616e6e6f74206260448201527f65206c6f776572207468616e20302e323525206f662074686520746f74616c20606482015265737570706c7960d01b608482015260a4016105f3565b6109d16009600a6121e9565b6109db90856121f7565b6002556109ea6009600a6121e9565b6109f490846121f7565b600355610a036009600a6121e9565b610a0d90836121f7565b60045550505050565b5f610a2284848461123b565b610a738433610a6e8560405180606001604052806028815260200161234f602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190611365565b61110d565b5060015b9392505050565b5f546001600160a01b03163314610aa75760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b038216610b0e5760405162461bcd60e51b815260206004820152602860248201527f546f6b656e20616464726573732063616e6e6f7420626520746865207a65726f604482015267206164647265737360c01b60648201526084016105f3565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602d60248201527f5769746864726177616c20616464726573732063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016105f3565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610bbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be2919061220e565b90505f8111610c2b5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016105f3565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610c77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9b9190612225565b610cdf5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b60448201526064016105f3565b505050565b5f546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016105f3906120d5565b601a80546001600160a01b039485166001600160a01b031991821617909155601980549385169382169390931790925560188054919093169116179055565b5f546001600160a01b03163314610d755760405162461bcd60e51b81526004016105f3906120d5565b600954600160a01b900460ff1615610dcf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016105f3565b6009805460ff60a01b1916600160a01b179055426016819055610df490603c90612240565b6017556040514281527fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e9239060200160405180910390a1565b5f546001600160a01b03163314610e555760405162461bcd60e51b81526004016105f3906120d5565b4780610e985760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b60448201526064016105f3565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610ece573d5f803e3d5ffd5b5050565b5f546001600160a01b03163314610efb5760405162461bcd60e51b81526004016105f3906120d5565b5f8111610f585760405162461bcd60e51b815260206004820152602560248201527f53776170207468726573686f6c64206d75737420626520677265617465722074604482015264068616e20360dc1b60648201526084016105f3565b610f646009600a6121e9565b610f6e90826121f7565b60145550565b5f61077233848461123b565b5f546001600160a01b03163314610fa95760405162461bcd60e51b81526004016105f3906120d5565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610ffc5760405162461bcd60e51b81526004016105f3906120d5565b5f811161105f5760405162461bcd60e51b815260206004820152602b60248201527f4d696e696d756d20746f6b656e20616d6f756e74206d7573742062652067726560448201526a061746572207468616e20360ac1b60648201526084016105f3565b61106b6009600a6121e9565b61107590826121f7565b60155550565b5f546001600160a01b031633146110a45760405162461bcd60e51b81526004016105f3906120d5565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f610a778284612253565b5f610a7782846121f7565b6001600160a01b03831661116f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f3565b6001600160a01b0382166111d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f3565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610a778284612240565b611246838383611390565b61124e611538565b6112588383611635565b6112638383836116c4565b61126d83836117ad565b611278838383611802565b61128383838361192b565b6001600160a01b0383165f908152600560205260409020546112a59082611230565b6001600160a01b0384165f908152600560205260408120919091556112ca848461194f565b6112d457816112df565b6112df848484611993565b6001600160a01b0384165f908152600560205260409020549091506113049082611a4e565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113579085815260200190565b60405180910390a350505050565b5f81848411156113885760405162461bcd60e51b81526004016105f39190611efb565b505050900390565b6001600160a01b0383166113f45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f3565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f3565b5f81116114b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f3565b6001600160a01b0383165f90815260056020526040902054811115610cdf5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105f3565b60175461154690603c612272565b42101561154f57565b4260178190556016545f916115649190612240565b9050603c811015611590575f600a819055610bb8600b819055600c829055600d819055600e55600f5550565b61012c8110156115bc575f600a8190556107d0600b819055600c829055600d55610bb8600e55600f5550565b6102588110156115e8575f600a8190556103e8600b819055600c829055600d556107d0600e55600f5550565b610384811015611614575f600a8190556101f4600b819055600c829055600d556107d0600e55600f5550565b5f600a8190556001600b55600c819055600d819055600e819055600f555b50565b6001600160a01b0382165f9081526007602052604090205460ff1615801561167557506001600160a01b0381165f9081526007602052604090205460ff16155b15610ece57600954600160a01b900460ff16610ece5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105f3565b6001600160a01b0383165f9081526007602052604090205460ff1615801561170457506001600160a01b0382165f9081526007602052604090205460ff16155b801561171e57506009546001600160a01b03838116911614155b801561173557506001600160a01b03821661dead14155b15610cdf576004546001600160a01b0383165f9081526005602052604090205461175f9083611a4e565b1115610cdf5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105f3565b6009546001600160a01b0382811691161480156117e257506001600160a01b0382165f9081526007602052604090205460ff16155b15610ece57600160125f8282546117f99190612272565b90915550505050565b6009546001600160a01b038481169116146118a1576003548111158061183f57506001600160a01b0383165f9081526007602052604090205460ff165b8061186157506001600160a01b0382165f9081526007602052604090205460ff165b6118a15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b600254811115806118c957506001600160a01b0383165f9081526007602052604090205460ff165b806118eb57506001600160a01b0382165f9081526007602052604090205460ff165b610cdf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105f3565b611936838383611a59565b15610cdf57611946601454611b09565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff16158015610a775750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f8061199f8585611c79565b1115611a47575f6119c16119b38686611c79565b60105461062f9086906110f7565b305f908152600560205260409020549091506119dd9082611a4e565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a2d9085815260200190565b60405180910390a3611a3f8382611230565b915050610a77565b5092915050565b5f610a778284612272565b601554601454305f9081526005602052604081205460135491938510159211159060ff16158015611a8c575060115460ff165b8015611aa15750600954600160a01b900460ff165b8015611aaa5750815b8015611ace57506001600160a01b0386165f9081526007602052604090205460ff16155b8015611ae757506009546001600160a01b038681169116145b8015611af65750600160125410155b8015611aff5750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f93611b429360029361062f939192611b3c928391611a4e565b90611a4e565b90505f611b5e826107f5600a548661110290919063ffffffff16565b90505f611b6b8483611230565b905047611b7782611cc3565b5f611b824783611230565b90505f611ba4611b9d600a548861123090919063ffffffff16565b83906110f7565b90505f611bbc600a548361110290919063ffffffff16565b90508015611bce57611bce8682611e0b565b600b545f90611be29061062f856002611102565b90508015611c23576019546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c21573d5f803e3d5ffd5b505b478015611c63576018546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c61573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b0390811690831603611c9a5750600e54610776565b6009546001600160a01b0390811690841603611cb95750600d54610776565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611cf657611cf6612285565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d719190612299565b81600181518110611d8457611d84612285565b6001600160a01b039283166020918202929092010152600854611daa913091168461110d565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790611de29085905f908690309042906004016122b4565b5f604051808303815f87803b158015611df9575f80fd5b505af115801561075e573d5f803e3d5ffd5b600854611e239030906001600160a01b03168461110d565b600854601a5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e90573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611eb59190612323565b5050505050565b5f805f805f8060c08789031215611ed1575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b81811015611f2657858101830151858201604001528201611f0a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611632575f80fd5b5f8060408385031215611f6b575f80fd5b8235611f7681611f46565b946020939093013593505050565b5f805f60608486031215611f96575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611fbf575f80fd5b8335611fca81611f46565b92506020840135611fda81611f46565b929592945050506040919091013590565b5f60208284031215611ffb575f80fd5b8135610a7781611f46565b5f8060408385031215612017575f80fd5b823561202281611f46565b9150602083013561203281611f46565b809150509250929050565b5f805f6060848603121561204f575f80fd5b833561205a81611f46565b9250602084013561206a81611f46565b9150604084013561207a81611f46565b809150509250925092565b5f60208284031215612095575f80fd5b5035919050565b8015158114611632575f80fd5b5f80604083850312156120ba575f80fd5b82356120c581611f46565b915060208301356120328161209c565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561214357815f1904821115612129576121296120f5565b8085161561213657918102915b93841c939080029061210e565b509250929050565b5f8261215957506001610776565b8161216557505f610776565b816001811461217b5760028114612185576121a1565b6001915050610776565b60ff841115612196576121966120f5565b50506001821b610776565b5060208310610133831016604e8410600b84101617156121c4575081810a610776565b6121ce8383612109565b805f19048211156121e1576121e16120f5565b029392505050565b5f610a7760ff84168361214b565b8082028115828204841417610776576107766120f5565b5f6020828403121561221e575f80fd5b5051919050565b5f60208284031215612235575f80fd5b8151610a778161209c565b81810381811115610776576107766120f5565b5f8261226d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610776576107766120f5565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156122a9575f80fd5b8151610a7781611f46565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123025784516001600160a01b0316835293830193918301916001016122dd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612335575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057987a1b669b2f092295e495c44e5cb01713a3a821b16c743b3fb1e91c9354a664736f6c63430008150033
Deployed Bytecode Sourcemap
4638:15755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5906:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5906:60:0;;;;;;;;11799:769;;;;;;;;;;-1:-1:-1;11799:769:0;;;;;:::i;:::-;;:::i;:::-;;7153:67;;;;;;;;;;-1:-1:-1;7213:5:0;;;;;;;;;;;-1:-1:-1;;;7213:5:0;;;;7153:67;;;;7213:5;7153:67;:::i;8561:133::-;;;;;;;;;;-1:-1:-1;8561:133:0;;;;;:::i;:::-;;:::i;:::-;;;1898:14:1;;1891:22;1873:41;;1861:2;1846:18;8561:133:0;1733:187:1;8700:111:0;;;;;;;;;;;;;:::i;12576:959::-;;;;;;;;;;-1:-1:-1;12576:959:0;;;;;:::i;:::-;;:::i;5655:30::-;;;;;;;;;;;;;;;;18721:309;;;;;;;;;;-1:-1:-1;18721:309:0;;;;;:::i;:::-;;:::i;5692:29::-;;;;;;;;;;;;;;;;3026:87;;;;;;;;;;-1:-1:-1;3026:87:0;;;;;:::i;:::-;3081:4;3106:5;-1:-1:-1;;;;;3095:16:0;;;3106:5;;3095:16;;3026:87;7303:67;;;;;;;;;;-1:-1:-1;7303:67:0;;4844:1;3101:36:1;;3089:2;3074:18;7303:67:0;2959:184:1;5973:63:0;;;;;;;;;;;;;;;;5393:44;;;;;;;;;;-1:-1:-1;5393:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19435:606;;;;;;;;;;-1:-1:-1;19435:606:0;;;;;:::i;:::-;;:::i;8913:78::-;;;;;;;;;;-1:-1:-1;8977:12:0;;8913:78;;7923:103;;;;;;;;;;-1:-1:-1;7923:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8006:18:0;7989:7;8006:18;;;:9;:18;;;;;;;7923:103;6111:31;;;;;;;;;;;;;;;;8817:90;;;;;;;;;;-1:-1:-1;8890:15:0;;8817:90;;13543:306;;;;;;;;;;-1:-1:-1;13543:306:0;;;;;:::i;:::-;;:::i;7839:78::-;;;;;;;;;;-1:-1:-1;7891:7:0;7909:5;-1:-1:-1;;;;;7909:5:0;7839:78;;;-1:-1:-1;;;;;4239:32:1;;;4221:51;;4209:2;4194:18;7839:78:0;4075:203:1;7422:409:0;;;;;;;;;;;;;:::i;20102:288::-;;;;;;;;;;;;;:::i;18039:218::-;;;;;;;;;;-1:-1:-1;18039:218:0;;;;;:::i;:::-;;:::i;5465:19::-;;;;;;;;;;-1:-1:-1;5465:19:0;;;;-1:-1:-1;;;;;5465:19:0;;;8032:139;;;;;;;;;;-1:-1:-1;8032:139:0;;;;;:::i;:::-;;:::i;5728:30::-;;;;;;;;;;;;;;;;8444:111;;;;;;;;;;-1:-1:-1;8444:111:0;;;;;:::i;:::-;;:::i;17789:242::-;;;;;;;;;;-1:-1:-1;17789:242:0;;;;;:::i;:::-;;:::i;8177:127::-;;;;;;;;;;-1:-1:-1;8177:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8275:18:0;;;8258:7;8275:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8177:127;8997:90;;;;;;;;;;-1:-1:-1;9067:18:0;;8997:90;;3119:111;;;;;;;;;;-1:-1:-1;3119:111:0;;;;;:::i;:::-;;:::i;11799:769::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;;;;;;;;;11992:12:::1;:25:::0;;;12028:12:::1;:25:::0;;;12064:14:::1;:29:::0;;;12104:8:::1;:17:::0;;;12132:7:::1;:15:::0;;;12158:11:::1;:20:::0;;;12323:11:::1;::::0;:27:::1;::::0;12348:1:::1;::::0;12323:20:::1;::::0;12339:3:::1;12323:15;:20::i;:::-;:24:::0;::::1;:27::i;:::-;12311:8;;:39;;12303:78;;;::::0;-1:-1:-1;;;12303:78:0;;5774:2:1;12303:78:0::1;::::0;::::1;5756:21:1::0;5813:2;5793:18;;;5786:30;5852:28;5832:18;;;5825:56;5898:18;;12303:78:0::1;5572:350:1::0;12303:78:0::1;12411:27;12436:1;12411:20;12427:3;12411:11;;:15;;:20;;;;:::i;:27::-;12400:7;;:38;;12392:76;;;::::0;-1:-1:-1;;;12392:76:0;;6129:2:1;12392:76:0::1;::::0;::::1;6111:21:1::0;6168:2;6148:18;;;6141:30;6207:27;6187:18;;;6180:55;6252:18;;12392:76:0::1;5927:349:1::0;12392:76:0::1;12502:27;12527:1;12502:20;12518:3;12502:11;;:15;;:20;;;;:::i;:27::-;12487:11;;:42;;12479:81;;;::::0;-1:-1:-1;;;12479:81:0;;5774:2:1;12479:81:0::1;::::0;::::1;5756:21:1::0;5813:2;5793:18;;;5786:30;5852:28;5832:18;;;5825:56;5898:18;;12479:81:0::1;5572:350:1::0;12479:81:0::1;11799:769:::0;;;;;;:::o;8561:133::-;8636:4;8643:37;8652:10;8664:7;8673:6;8643:8;:37::i;:::-;-1:-1:-1;8688:4:0;8561:133;;;;;:::o;8700:111::-;8753:7;8006:18;;;:9;:18;;;;8770:12;;:39;;:16;:39::i;:::-;8763:46;;8700:111;:::o;12576:959::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;12697:20:::1;12720:32;12746:5;12720:21;12738:2;12720:13;:11;:13::i;:21::-;:25:::0;::::1;:32::i;:::-;12697:55:::0;-1:-1:-1;12697:55:0;12890:13:::1;4844:1;12890:2;:13;:::i;:::-;12875:29;::::0;:11;:29:::1;:::i;:::-;:45;;12867:126;;;::::0;-1:-1:-1;;;12867:126:0;;8171:2:1;12867:126:0::1;::::0;::::1;8153:21:1::0;8210:2;8190:18;;;8183:30;;;8249:34;8229:18;;;8222:62;8320:34;8300:18;;;8293:62;-1:-1:-1;;;8371:19:1;;;8364:35;8416:19;;12867:126:0::1;7969:472:1::0;12867:126:0::1;13051:12:::0;13033:13:::1;4844:1;13033:2;:13;:::i;:::-;13012:35;::::0;:17;:35:::1;:::i;:::-;:51;;13004:129;;;::::0;-1:-1:-1;;;13004:129:0;;8648:2:1;13004:129:0::1;::::0;::::1;8630:21:1::0;8687:2;8667:18;;;8660:30;8726:34;8706:18;;;8699:62;8797:34;8777:18;;;8770:62;-1:-1:-1;;;8848:19:1;;;8841:32;8890:19;;13004:129:0::1;8446:469:1::0;13004:129:0::1;13188:12:::0;13170:13:::1;4844:1;13170:2;:13;:::i;:::-;13152:32;::::0;:14;:32:::1;:::i;:::-;:48;;13144:131;;;::::0;-1:-1:-1;;;13144:131:0;;9122:2:1;13144:131:0::1;::::0;::::1;9104:21:1::0;9161:2;9141:18;;;9134:30;9200:34;9180:18;;;9173:62;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:19:1;;;9315:37;9369:19;;13144:131:0::1;8920:474:1::0;13144:131:0::1;13385:13;4844:1;13385:2;:13;:::i;:::-;13370:29;::::0;:11;:29:::1;:::i;:::-;13355:12;:44:::0;13452:13:::1;4844:1;13452:2;:13;:::i;:::-;13431:35;::::0;:17;:35:::1;:::i;:::-;13410:18;:56:::0;13513:13:::1;4844:1;13513:2;:13;:::i;:::-;13495:32;::::0;:14;:32:::1;:::i;:::-;13477:15;:50:::0;-1:-1:-1;;;;12576:959:0:o;18721:309::-;18819:4;18836:36;18846:6;18854:9;18865:6;18836:9;:36::i;:::-;18883:117;18892:6;18900:10;18912:87;18948:6;18912:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18912:19:0;;;;;;:11;:19;;;;;;;;18932:10;18912:31;;;;;;;;;:87;:35;:87::i;:::-;18883:8;:117::i;:::-;-1:-1:-1;19018:4:0;18721:309;;;;;;:::o;19435:606::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19534:26:0;::::1;19526:79;;;::::0;-1:-1:-1;;;19526:79:0;;9601:2:1;19526:79:0::1;::::0;::::1;9583:21:1::0;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;-1:-1:-1;;;9730:18:1;;;9723:38;9778:19;;19526:79:0::1;9399:404:1::0;19526:79:0::1;-1:-1:-1::0;;;;;19624:16:0;::::1;19616:74;;;::::0;-1:-1:-1;;;19616:74:0;;10010:2:1;19616:74:0::1;::::0;::::1;9992:21:1::0;10049:2;10029:18;;;10022:30;10088:34;10068:18;;;10061:62;-1:-1:-1;;;10139:18:1;;;10132:43;10192:19;;19616:74:0::1;9808:409:1::0;19616:74:0::1;19788:45;::::0;-1:-1:-1;;;19788:45:0;;19827:4:::1;19788:45;::::0;::::1;4221:51:1::0;19771:14:0::1;::::0;-1:-1:-1;;;;;19788:30:0;::::1;::::0;::::1;::::0;4194:18:1;;19788:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19771:62;;19861:1;19852:6;:10;19844:44;;;::::0;-1:-1:-1;;;19844:44:0;;10613:2:1;19844:44:0::1;::::0;::::1;10595:21:1::0;10652:2;10632:18;;;10625:30;-1:-1:-1;;;10671:18:1;;;10664:51;10732:18;;19844:44:0::1;10411:345:1::0;19844:44:0::1;19966:41;::::0;-1:-1:-1;;;19966:41:0;;-1:-1:-1;;;;;10953:32:1;;;19966:41:0::1;::::0;::::1;10935:51:1::0;11002:18;;;10995:34;;;19966:29:0;::::1;::::0;::::1;::::0;10908:18:1;;19966:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19958:75;;;::::0;-1:-1:-1;;;19958:75:0;;11492:2:1;19958:75:0::1;::::0;::::1;11474:21:1::0;11531:2;11511:18;;;11504:30;-1:-1:-1;;;11550:18:1;;;11543:51;11611:18;;19958:75:0::1;11290:345:1::0;19958:75:0::1;19515:526;19435:606:::0;;:::o;13543:306::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;13695:18:::1;:40:::0;;-1:-1:-1;;;;;13695:40:0;;::::1;-1:-1:-1::0;;;;;;13695:40:0;;::::1;;::::0;;;13746:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13797:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;13543:306::o;7422:409::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;7486:14:::1;::::0;-1:-1:-1;;;7486:14:0;::::1;;;7485:15;7477:54;;;::::0;-1:-1:-1;;;7477:54:0;;11842:2:1;7477:54:0::1;::::0;::::1;11824:21:1::0;11881:2;11861:18;;;11854:30;11920:28;11900:18;;;11893:56;11966:18;;7477:54:0::1;11640:350:1::0;7477:54:0::1;7604:14;:21:::0;;-1:-1:-1;;;;7604:21:0::1;-1:-1:-1::0;;;7604:21:0::1;::::0;;7655:15:::1;7636:16;:34:::0;;;7701:27:::1;::::0;7719:9:::1;::::0;7701:27:::1;:::i;:::-;7681:17;:47:::0;7792:31:::1;::::0;7807:15:::1;160:25:1::0;;7792:31:0::1;::::0;148:2:1;133:18;7792:31:0::1;;;;;;;7422:409::o:0;20102:288::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;20223:21:::1;20263:10:::0;20255:41:::1;;;::::0;-1:-1:-1;;;20255:41:0;;12330:2:1;20255:41:0::1;::::0;::::1;12312:21:1::0;12369:2;12349:18;;;12342:30;-1:-1:-1;;;12388:18:1;;;12381:48;12446:18;;20255:41:0::1;12128:342:1::0;20255:41:0::1;20359:5;::::0;;20351:31:::1;::::0;-1:-1:-1;;;;;20359:5:0;;::::1;::::0;20351:31;::::1;;;::::0;20375:6;;20351:31;20359:5;20351:31;20375:6;20359:5;20351:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20147:243;20102:288::o:0;18039:218::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;18145:1:::1;18128:14;:18;18120:68;;;::::0;-1:-1:-1;;;18120:68:0;;12677:2:1;18120:68:0::1;::::0;::::1;12659:21:1::0;12716:2;12696:18;;;12689:30;12755:34;12735:18;;;12728:62;-1:-1:-1;;;12806:18:1;;;12799:35;12851:19;;18120:68:0::1;12475:401:1::0;18120:68:0::1;18233:15;4844:1;18233:2;:15;:::i;:::-;18215:34;::::0;:14;:34:::1;:::i;:::-;18199:13;:50:::0;-1:-1:-1;18039:218:0:o;8032:139::-;8110:4;8117:40;8127:10;8139:9;8150:6;8117:9;:40::i;8444:111::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8521:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8521:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8444:111::o;17789:242::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;17908:1:::1;17888:17;:21;17880:77;;;::::0;-1:-1:-1;;;17880:77:0;;13083:2:1;17880:77:0::1;::::0;::::1;13065:21:1::0;13122:2;13102:18;;;13095:30;13161:34;13141:18;;;13134:62;-1:-1:-1;;;13212:18:1;;;13205:41;13263:19;;17880:77:0::1;12881:407:1::0;17880:77:0::1;18007:15;4844:1;18007:2;:15;:::i;:::-;17986:37;::::0;:17;:37:::1;:::i;:::-;17968:15;:55:::0;-1:-1:-1;17789:242:0:o;3119:111::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;3185:5:::1;:11:::0;;-1:-1:-1;;;;;;3185:11:0::1;-1:-1:-1::0;;;;;3185:11:0;::::1;::::0;;::::1;::::0;;;3203:25:::1;::::0;4221:51:1;;;3203:25:0::1;::::0;4209:2:1;4194:18;3203:25:0::1;;;;;;;3119:111:::0;:::o;385:82::-;443:7;460:5;464:1;460;:5;:::i;297:82::-;355:7;372:5;376:1;372;:5;:::i;19038:335::-;-1:-1:-1;;;;;19131:19:0;;19123:68;;;;-1:-1:-1;;;19123:68:0;;13933:2:1;19123:68:0;;;13915:21:1;13972:2;13952:18;;;13945:30;14011:34;13991:18;;;13984:62;-1:-1:-1;;;14062:18:1;;;14055:34;14106:19;;19123:68:0;13731:400:1;19123:68:0;-1:-1:-1;;;;;19210:21:0;;19202:68;;;;-1:-1:-1;;;19202:68:0;;14338:2:1;19202:68:0;;;14320:21:1;14377:2;14357:18;;;14350:30;14416:34;14396:18;;;14389:62;-1:-1:-1;;;14467:18:1;;;14460:32;14509:19;;19202:68:0;14136:398:1;19202:68:0;-1:-1:-1;;;;;19281:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19333:32;;160:25:1;;;19333:32:0;;133:18:1;19333:32:0;;;;;;;19038:335;;;:::o;209:82::-;267:7;284:5;288:1;284;:5;:::i;9542:709::-;9631:37;9642:6;9650:9;9661:6;9631:10;:37::i;:::-;9679:12;:10;:12::i;:::-;9702:38;9722:6;9730:9;9702:19;:38::i;:::-;9751:41;9766:6;9774:9;9785:6;9751:14;:41::i;:::-;9804:35;9821:6;9829:9;9804:16;:35::i;:::-;9850:39;9863:6;9871:9;9882:6;9850:12;:39::i;:::-;9901:35;9910:6;9918:9;9929:6;9901:8;:35::i;:::-;-1:-1:-1;;;;;9967:17:0;;;;;;:9;:17;;;;;;:29;;9989:6;9967:21;:29::i;:::-;-1:-1:-1;;;;;9947:17:0;;;;;;:9;:17;;;;;:49;;;;10032:32;9957:6;10054:9;10032:13;:32::i;:::-;:78;;10104:6;10032:78;;;10067:34;10075:6;10083:9;10094:6;10067:7;:34::i;:::-;-1:-1:-1;;;;;10144:20:0;;;;;;:9;:20;;;;;;10007:103;;-1:-1:-1;10144:40:0;;10007:103;10144:24;:40::i;:::-;-1:-1:-1;;;;;10121:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10200:43;;;;;;;;;;10228:14;160:25:1;;148:2;133:18;;14:177;10200:43:0;;;;;;;;9620:631;9542:709;;;:::o;1422:162::-;1508:7;1554:12;1546:6;;;;1538:29;;;;-1:-1:-1;;;1538:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1576:5:0;;;1422:162::o;9095:439::-;-1:-1:-1;;;;;9199:20:0;;9191:70;;;;-1:-1:-1;;;9191:70:0;;14741:2:1;9191:70:0;;;14723:21:1;14780:2;14760:18;;;14753:30;14819:34;14799:18;;;14792:62;-1:-1:-1;;;14870:18:1;;;14863:35;14915:19;;9191:70:0;14539:401:1;9191:70:0;-1:-1:-1;;;;;9280:23:0;;9272:71;;;;-1:-1:-1;;;9272:71:0;;15147:2:1;9272:71:0;;;15129:21:1;15186:2;15166:18;;;15159:30;15225:34;15205:18;;;15198:62;-1:-1:-1;;;15276:18:1;;;15269:33;15319:19;;9272:71:0;14945:399:1;9272:71:0;9379:1;9362:6;:19;9354:73;;;;-1:-1:-1;;;9354:73:0;;15551:2:1;9354:73:0;;;15533:21:1;15590:2;15570:18;;;15563:30;15629:34;15609:18;;;15602:62;-1:-1:-1;;;15680:18:1;;;15673:39;15729:19;;9354:73:0;15349:405:1;9354:73:0;-1:-1:-1;;;;;8006:18:0;;7989:7;8006:18;;;:9;:18;;;;;;9446:6;:27;;9438:88;;;;-1:-1:-1;;;9438:88:0;;15961:2:1;9438:88:0;;;15943:21:1;16000:2;15980:18;;;15973:30;16039:34;16019:18;;;16012:62;-1:-1:-1;;;16090:18:1;;;16083:47;16147:19;;9438:88:0;15759:413:1;10259:1532:0;10323:17;;:29;;10343:9;10323:29;:::i;:::-;10305:15;:47;10301:169;;;10259:1532::o;10301:169::-;10563:15;10543:17;:35;;;10631:16;;10591:19;;10613:34;;10631:16;10613:34;:::i;:::-;10591:56;;10676:9;10662:11;:23;10658:1126;;;10717:1;10702:12;:16;;;10748:4;10733:12;:19;;;10767:14;:18;;;10800:8;:15;;;10830:7;:14;10859:11;:15;10290:1501;10259:1532::o;10658:1126::-;10910:9;10896:11;:23;10892:892;;;10951:1;10936:12;:16;;;10982:4;10967:12;:19;;;11001:14;:18;;;11034:8;:15;11074:4;11064:7;:14;11093:11;:15;10290:1501;10259:1532::o;10892:892::-;11144:10;11130:11;:24;11126:658;;;11186:1;11171:12;:16;;;11217:4;11202:12;:19;;;11236:14;:18;;;11269:8;:15;11309:4;11299:7;:14;11328:11;:15;10290:1501;10259:1532::o;11126:658::-;11379:10;11365:11;:24;11361:423;;;11421:1;11406:12;:16;;;11452:3;11437:12;:18;;;11470:14;:18;;;11503:8;:14;11542:4;11532:7;:14;11561:11;:15;10290:1501;10259:1532::o;11361:423::-;11624:1;11609:12;:16;;;11655:1;11640:12;:16;11671:14;:18;;;11704:8;:12;;;11731:7;:11;;;11757;:15;11361:423;10290:1501;10259:1532::o;13857:191::-;-1:-1:-1;;;;;13950:19:0;;;;;;:11;:19;;;;;;;;13949:20;:47;;;;-1:-1:-1;;;;;;13974:22:0;;;;;;:11;:22;;;;;;;;13973:23;13949:47;13946:95;;;14006:14;;-1:-1:-1;;;14006:14:0;;;;13998:41;;;;-1:-1:-1;;;13998:41:0;;16509:2:1;13998:41:0;;;16491:21:1;16548:2;16528:18;;;16521:30;-1:-1:-1;;;16567:18:1;;;16560:44;16621:18;;13998:41:0;16307:338:1;14060:325:0;-1:-1:-1;;;;;14160:19:0;;;;;;:11;:19;;;;;;;;14159:20;:47;;;;-1:-1:-1;;;;;;14184:22:0;;;;;;:11;:22;;;;;;;;14183:23;14159:47;:77;;;;-1:-1:-1;14231:4:0;;-1:-1:-1;;;;;14210:26:0;;;14231:4;;14210:26;;14159:77;:107;;;;-1:-1:-1;;;;;;14240:26:0;;6224:42;14240:26;;14159:107;14156:226;;;14324:15;;-1:-1:-1;;;;;14287:20:0;;;;;;:9;:20;;;;;;:32;;14312:6;14287:24;:32::i;:::-;14286:53;;14278:96;;;;-1:-1:-1;;;14278:96:0;;16852:2:1;14278:96:0;;;16834:21:1;16891:2;16871:18;;;16864:30;16930:32;16910:18;;;16903:60;16980:18;;14278:96:0;16650:354:1;14393:159:0;14490:4;;-1:-1:-1;;;;;14477:17:0;;;14490:4;;14477:17;:41;;;;-1:-1:-1;;;;;;14499:19:0;;;;;;:11;:19;;;;;;;;14498:20;14477:41;14474:71;;;14541:1;14520:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;14393:159:0;;:::o;14560:346::-;14671:4;;-1:-1:-1;;;;;14661:14:0;;;14671:4;;14661:14;14658:129;;14696:18;;14686:6;:28;;:51;;;-1:-1:-1;;;;;;14718:19:0;;;;;;:11;:19;;;;;;;;14686:51;:77;;;-1:-1:-1;;;;;;14741:22:0;;;;;;:11;:22;;;;;;;;14686:77;14678:107;;;;-1:-1:-1;;;14678:107:0;;17211:2:1;14678:107:0;;;17193:21:1;17250:2;17230:18;;;17223:30;-1:-1:-1;;;17269:18:1;;;17262:47;17326:18;;14678:107:0;17009:341:1;14678:107:0;14815:12;;14805:6;:22;;:45;;;-1:-1:-1;;;;;;14831:19:0;;;;;;:11;:19;;;;;;;;14805:45;:71;;;-1:-1:-1;;;;;;14854:22:0;;;;;;:11;:22;;;;;;;;14805:71;14797:101;;;;-1:-1:-1;;;14797:101:0;;17211:2:1;14797:101:0;;;17193:21:1;17250:2;17230:18;;;17223:30;-1:-1:-1;;;17269:18:1;;;17262:47;17326:18;;14797:101:0;17009:341:1;17189:197:0;17281:41;17296:6;17304:9;17315:6;17281:14;:41::i;:::-;17278:101;;;17324:29;17339:13;;17324:14;:29::i;:::-;17375:1;17355:9;:22;17189:197;;;:::o;17394:160::-;-1:-1:-1;;;;;17500:19:0;;17475:4;17500:19;;;:11;:19;;;;;;;;17499:20;:47;;;;-1:-1:-1;;;;;;;17524:22:0;;;;;:11;:22;;;;;;;;17523:23;;17394:160;-1:-1:-1;17394:160:0:o;18265:448::-;18351:7;18407:1;18374:30;18386:6;18394:9;18374:11;:30::i;:::-;:34;18371:320;;;18424:17;18444:59;18472:30;18484:6;18492:9;18472:11;:30::i;:::-;18455:11;;18444:23;;:6;;:10;:23::i;:59::-;18563:4;18545:24;;;;:9;:24;;;;;;18424:79;;-1:-1:-1;18545:39:0;;18424:79;18545:28;:39::i;:::-;18536:4;18518:24;;;;:9;:24;;;;;;;:66;;;;18604:42;;-1:-1:-1;;;;;18604:42:0;;;;;;;18636:9;160:25:1;;148:2;133:18;;14:177;18604:42:0;;;;;;;;18668:21;:6;18679:9;18668:10;:21::i;:::-;18661:28;;;;;18371:320;-1:-1:-1;18699:6:0;18265:448;-1:-1:-1;;18265:448:0:o;121:82::-;179:7;196:5;200:1;196;:5;:::i;16781:400::-;16922:15;;16998:13;;16988:4;16879;8006:18;;;:9;:18;;;;;;17030:8;;16879:4;;16912:25;;;;-1:-1:-1;16970:41:0;;17030:8;;17029:9;:24;;;;-1:-1:-1;17042:11:0;;;;17029:24;:42;;;;-1:-1:-1;17057:14:0;;-1:-1:-1;;;17057:14:0;;;;17029:42;:54;;;;;17075:8;17029:54;:78;;;;-1:-1:-1;;;;;;17088:19:0;;;;;;:11;:19;;;;;;;;17087:20;17029:78;:99;;;;-1:-1:-1;17124:4:0;;-1:-1:-1;;;;;17111:17:0;;;17124:4;;17111:17;17029:99;:126;;;;;17153:1;17132:9;;:23;;17029:126;:144;;;;;17159:14;17029:144;17022:151;16781:400;-1:-1:-1;;;;;;16781:400:0:o;14914:1066::-;6065:8;:15;;-1:-1:-1;;6065:15:0;6076:4;6065:15;;;;;;15051:14:::1;::::0;15033:12:::1;::::0;15009::::1;::::0;6065:8;;15008:66:::1;::::0;15072:1:::1;::::0;15009:57:::1;::::0;15051:14;;15009:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;15008:66::-;14985:89;;15085:32;15120:42;15149:12;15120:24;15131:12;;15120:6;:10;;:24;;;;:::i;:42::-;15085:77:::0;-1:-1:-1;15173:14:0::1;15190:36;:6:::0;15085:77;15190:10:::1;:36::i;:::-;15173:53:::0;-1:-1:-1;15262:21:0::1;15294:24;15173:53:::0;15294:16:::1;:24::i;:::-;15329:20;15352:41;:21;15378:14:::0;15352:25:::1;:41::i;:::-;15329:64;;15404:19;15425:48;15442:30;15459:12;;15442;:16;;:30;;;;:::i;:::-;15425:12:::0;;:16:::1;:48::i;:::-;15404:69;;15484:29;15516;15532:12;;15516:11;:15;;:29;;;;:::i;:::-;15484:61:::0;-1:-1:-1;15559:34:0;;15556:103:::1;;15595:61;15608:24;15634:21;15595:12;:61::i;:::-;15715:12;::::0;15669:20:::1;::::0;15692:36:::1;::::0;:18:::1;:11:::0;15708:1:::1;15692:15;:18::i;:36::-;15669:59:::0;-1:-1:-1;15742:16:0;;15739:73:::1;;15768:18;::::0;15760:50:::1;::::0;-1:-1:-1;;;;;15768:18:0;;::::1;::::0;15760:50;::::1;;;::::0;15797:12;;15768:18:::1;15760:50:::0;15768:18;15760:50;15797:12;15768:18;15760:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15739:73;15849:21;15884:29:::0;;15881:92:::1;;15923:20;::::0;15915:56:::1;::::0;-1:-1:-1;;;;;15923:20:0;;::::1;::::0;15915:56;::::1;;;::::0;15954:16;;15923:20:::1;15915:56:::0;15923:20;15915:56;15954:16;15923:20;15915:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15881:92;-1:-1:-1::0;;6085:8:0;:16;;-1:-1:-1;;6085:16:0;;;-1:-1:-1;;;;;;;;14914:1066:0:o;17562:219::-;17677:4;;17641:7;;-1:-1:-1;;;;;17677:4:0;;;17664:17;;;;17661:38;;-1:-1:-1;17690:7:0;;17683:14;;17661:38;17722:4;;-1:-1:-1;;;;;17722:4:0;;;17712:14;;;;17709:36;;-1:-1:-1;17735:8:0;;17728:15;;17709:36;-1:-1:-1;17762:11:0;;17562:219;;;;:::o;16339:434::-;16429:16;;;16443:1;16429:16;;;;;;;;16405:21;;16429:16;;;;;;;;;;-1:-1:-1;16429:16:0;16405:40;;16474:4;16456;16461:1;16456:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16456:23:0;;;:7;;;;;;;;;;:23;;;;16500:6;;:13;;;-1:-1:-1;;;16500:13:0;;;;:6;;;;;:11;;:13;;;;;16456:7;;16500:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16490:4;16495:1;16490:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16490:23:0;;;:7;;;;;;;;;:23;16556:6;;16524:53;;16541:4;;16556:6;16565:11;16524:8;:53::i;:::-;16588:6;;:177;;-1:-1:-1;;;16588:177:0;;-1:-1:-1;;;;;16588:6:0;;;;:57;;:177;;16660:11;;16588:6;;16702:4;;16729;;16749:15;;16588:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15988:343;16101:6;;16069:53;;16086:4;;-1:-1:-1;;;;;16101:6:0;16110:11;16069:8;:53::i;:::-;16133:6;;16274:18;;16133:190;;-1:-1:-1;;;16133:190:0;;16196:4;16133:190;;;19201:34:1;19251:18;;;19244:34;;;16133:6:0;19294:18:1;;;19287:34;;;19337:18;;;19330:34;-1:-1:-1;;;;;16274:18:0;;;19380:19:1;;;19373:44;16307:15:0;19433:19:1;;;19426:35;16133:6:0;;;:22;;16163:9;;19135:19:1;;16133:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15988:343;;:::o;196:523:1:-;300:6;308;316;324;332;340;393:3;381:9;372:7;368:23;364:33;361:53;;;410:1;407;400:12;361:53;-1:-1:-1;;433:23:1;;;503:2;488:18;;475:32;;-1:-1:-1;554:2:1;539:18;;526:32;;605:2;590:18;;577:32;;-1:-1:-1;656:3:1;641:19;;628:33;;-1:-1:-1;708:3:1;693:19;680:33;;-1:-1:-1;196:523:1;-1:-1:-1;196:523:1:o;724:548::-;836:4;865:2;894;883:9;876:21;926:6;920:13;969:6;964:2;953:9;949:18;942:34;994:1;1004:140;1018:6;1015:1;1012:13;1004:140;;;1113:14;;;1109:23;;1103:30;1079:17;;;1098:2;1075:26;1068:66;1033:10;;1004:140;;;1008:3;1193:1;1188:2;1179:6;1168:9;1164:22;1160:31;1153:42;1263:2;1256;1252:7;1247:2;1239:6;1235:15;1231:29;1220:9;1216:45;1212:54;1204:62;;;;724:548;;;;:::o;1277:131::-;-1:-1:-1;;;;;1352:31:1;;1342:42;;1332:70;;1398:1;1395;1388:12;1413:315;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:52;;;1558:1;1555;1548:12;1510:52;1597:9;1584:23;1616:31;1641:5;1616:31;:::i;:::-;1666:5;1718:2;1703:18;;;;1690:32;;-1:-1:-1;;;1413:315:1:o;1925:316::-;2002:6;2010;2018;2071:2;2059:9;2050:7;2046:23;2042:32;2039:52;;;2087:1;2084;2077:12;2039:52;-1:-1:-1;;2110:23:1;;;2180:2;2165:18;;2152:32;;-1:-1:-1;2231:2:1;2216:18;;;2203:32;;1925:316;-1:-1:-1;1925:316:1:o;2246:456::-;2323:6;2331;2339;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2466:31;2491:5;2466:31;:::i;:::-;2516:5;-1:-1:-1;2573:2:1;2558:18;;2545:32;2586:33;2545:32;2586:33;:::i;:::-;2246:456;;2638:7;;-1:-1:-1;;;2692:2:1;2677:18;;;;2664:32;;2246:456::o;2707:247::-;2766:6;2819:2;2807:9;2798:7;2794:23;2790:32;2787:52;;;2835:1;2832;2825:12;2787:52;2874:9;2861:23;2893:31;2918:5;2893:31;:::i;3148:388::-;3216:6;3224;3277:2;3265:9;3256:7;3252:23;3248:32;3245:52;;;3293:1;3290;3283:12;3245:52;3332:9;3319:23;3351:31;3376:5;3351:31;:::i;:::-;3401:5;-1:-1:-1;3458:2:1;3443:18;;3430:32;3471:33;3430:32;3471:33;:::i;:::-;3523:7;3513:17;;;3148:388;;;;;:::o;3541:529::-;3618:6;3626;3634;3687:2;3675:9;3666:7;3662:23;3658:32;3655:52;;;3703:1;3700;3693:12;3655:52;3742:9;3729:23;3761:31;3786:5;3761:31;:::i;:::-;3811:5;-1:-1:-1;3868:2:1;3853:18;;3840:32;3881:33;3840:32;3881:33;:::i;:::-;3933:7;-1:-1:-1;3992:2:1;3977:18;;3964:32;4005:33;3964:32;4005:33;:::i;:::-;4057:7;4047:17;;;3541:529;;;;;:::o;4283:180::-;4342:6;4395:2;4383:9;4374:7;4370:23;4366:32;4363:52;;;4411:1;4408;4401:12;4363:52;-1:-1:-1;4434:23:1;;4283:180;-1:-1:-1;4283:180:1:o;4468:118::-;4554:5;4547:13;4540:21;4533:5;4530:32;4520:60;;4576:1;4573;4566:12;4591:382;4656:6;4664;4717:2;4705:9;4696:7;4692:23;4688:32;4685:52;;;4733:1;4730;4723:12;4685:52;4772:9;4759:23;4791:31;4816:5;4791:31;:::i;:::-;4841:5;-1:-1:-1;4898:2:1;4883:18;;4870:32;4911:30;4870:32;4911:30;:::i;5238:329::-;5440:2;5422:21;;;5479:1;5459:18;;;5452:29;-1:-1:-1;;;5512:2:1;5497:18;;5490:36;5558:2;5543:18;;5238:329::o;6281:127::-;6342:10;6337:3;6333:20;6330:1;6323:31;6373:4;6370:1;6363:15;6397:4;6394:1;6387:15;6413:422;6502:1;6545:5;6502:1;6559:270;6580:7;6570:8;6567:21;6559:270;;;6639:4;6635:1;6631:6;6627:17;6621:4;6618:27;6615:53;;;6648:18;;:::i;:::-;6698:7;6688:8;6684:22;6681:55;;;6718:16;;;;6681:55;6797:22;;;;6757:15;;;;6559:270;;;6563:3;6413:422;;;;;:::o;6840:806::-;6889:5;6919:8;6909:80;;-1:-1:-1;6960:1:1;6974:5;;6909:80;7008:4;6998:76;;-1:-1:-1;7045:1:1;7059:5;;6998:76;7090:4;7108:1;7103:59;;;;7176:1;7171:130;;;;7083:218;;7103:59;7133:1;7124:10;;7147:5;;;7171:130;7208:3;7198:8;7195:17;7192:43;;;7215:18;;:::i;:::-;-1:-1:-1;;7271:1:1;7257:16;;7286:5;;7083:218;;7385:2;7375:8;7372:16;7366:3;7360:4;7357:13;7353:36;7347:2;7337:8;7334:16;7329:2;7323:4;7320:12;7316:35;7313:77;7310:159;;;-1:-1:-1;7422:19:1;;;7454:5;;7310:159;7501:34;7526:8;7520:4;7501:34;:::i;:::-;7571:6;7567:1;7563:6;7559:19;7550:7;7547:32;7544:58;;;7582:18;;:::i;:::-;7620:20;;6840:806;-1:-1:-1;;;6840:806:1:o;7651:140::-;7709:5;7738:47;7779:4;7769:8;7765:19;7759:4;7738:47;:::i;7796:168::-;7869:9;;;7900;;7917:15;;;7911:22;;7897:37;7887:71;;7938:18;;:::i;10222:184::-;10292:6;10345:2;10333:9;10324:7;10320:23;10316:32;10313:52;;;10361:1;10358;10351:12;10313:52;-1:-1:-1;10384:16:1;;10222:184;-1:-1:-1;10222:184:1:o;11040:245::-;11107:6;11160:2;11148:9;11139:7;11135:23;11131:32;11128:52;;;11176:1;11173;11166:12;11128:52;11208:9;11202:16;11227:28;11249:5;11227:28;:::i;11995:128::-;12062:9;;;12083:11;;;12080:37;;;12097:18;;:::i;13509:217::-;13549:1;13575;13565:132;;13619:10;13614:3;13610:20;13607:1;13600:31;13654:4;13651:1;13644:15;13682:4;13679:1;13672:15;13565:132;-1:-1:-1;13711:9:1;;13509:217::o;16177:125::-;16242:9;;;16263:10;;;16260:36;;;16276:18;;:::i;17487:127::-;17548:10;17543:3;17539:20;17536:1;17529:31;17579:4;17576:1;17569:15;17603:4;17600:1;17593:15;17619:251;17689:6;17742:2;17730:9;17721:7;17717:23;17713:32;17710:52;;;17758:1;17755;17748:12;17710:52;17790:9;17784:16;17809:31;17834:5;17809:31;:::i;17875:980::-;18137:4;18185:3;18174:9;18170:19;18216:6;18205:9;18198:25;18242:2;18280:6;18275:2;18264:9;18260:18;18253:34;18323:3;18318:2;18307:9;18303:18;18296:31;18347:6;18382;18376:13;18413:6;18405;18398:22;18451:3;18440:9;18436:19;18429:26;;18490:2;18482:6;18478:15;18464:29;;18511:1;18521:195;18535:6;18532:1;18529:13;18521:195;;;18600:13;;-1:-1:-1;;;;;18596:39:1;18584:52;;18691:15;;;;18656:12;;;;18632:1;18550:9;18521:195;;;-1:-1:-1;;;;;;;18772:32:1;;;;18767:2;18752:18;;18745:60;-1:-1:-1;;;18836:3:1;18821:19;18814:35;18733:3;17875:980;-1:-1:-1;;;17875:980:1:o;19472:306::-;19560:6;19568;19576;19629:2;19617:9;19608:7;19604:23;19600:32;19597:52;;;19645:1;19642;19635:12;19597:52;19674:9;19668:16;19658:26;;19724:2;19713:9;19709:18;19703:25;19693:35;;19768:2;19757:9;19753:18;19747:25;19737:35;;19472:306;;;;;:::o
Swarm Source
ipfs://57987a1b669b2f092295e495c44e5cb01713a3a821b16c743b3fb1e91c9354a6
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.