Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 6 from a total of 6 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Update Fees | 19270961 | 767 days ago | IN | 0 ETH | 0.00150144 | ||||
| Update Fees | 19270959 | 767 days ago | IN | 0 ETH | 0.00116779 | ||||
| Update Fees | 19270954 | 767 days ago | IN | 0 ETH | 0.00154773 | ||||
| Approve | 19270951 | 767 days ago | IN | 0 ETH | 0.00178626 | ||||
| Open Trading | 19270950 | 767 days ago | IN | 0 ETH | 0.00266525 | ||||
| Approve | 19270931 | 767 days ago | IN | 0 ETH | 0.00160616 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BABYSORA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-02-20
*/
//https://t.me/babysora_eth
//https://www.baby-sora.com
//https://x.com/babysoraeth
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _createInitialSupply(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
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);
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() external virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IDexRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
interface IDexFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface ILpPair {
function sync() external;
}
contract BABYSORA is ERC20, Ownable {
uint256 public maxBuyAmount;
uint256 public maxSellAmount;
IDexRouter public immutable dexRouter;
address public immutable lpPair;
bool private swapping;
uint256 public swapTokensAtAmount;
address marketingAddress;
uint256 public tradingActiveBlock;
uint256 public tradingActiveTs;
bool public limitsInEffect = true;
bool public tradingActive = false;
bool public swapEnabled = false;
// Anti-bot and anti-whale mappings and variables
mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
bool public transferDelayEnabled = true;
uint256 public buyTotalFees;
uint256 public buyMarketingFee;
uint256 public buyLiquidityFee;
uint256 public sellTotalFees;
uint256 public sellMarketingFee;
uint256 public sellLiquidityFee;
uint256 public tokensForMarketing;
uint256 public tokensForLiquidity;
/******************/
// exlcude from fees and max transaction amount
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) public _isExcludedMaxTransactionAmount;
// store addresses that a automatic market maker pairs. Any transfer *to* these addresses
// could be subject to a maximum transfer amount
mapping (address => bool) public automatedMarketMakerPairs;
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
event EnabledTrading();
event RemovedLimits();
event ExcludeFromFees(address indexed account, bool isExcluded);
event UpdatedMaxBuyAmount(uint256 newAmount);
event UpdatedMaxSellAmount(uint256 newAmount);
event UpdatedMaxWalletAmount(uint256 newAmount);
event UpdatedMarketingAddress(address indexed newWallet);
event MaxTransactionExclusion(address _address, bool excluded);
event BuyBackTriggered(uint256 amount);
event OwnerForcedSwapBack(uint256 timestamp);
event CaughtEarlyBuyer(address sniper);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiquidity
);
event TransferForeignToken(address token, uint256 amount);
constructor() ERC20("BABY SORA", "BSORA") {
address newOwner = msg.sender; // can leave alone if owner is deployer.
address _dexRouter;
_dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH: Uniswap V2
dexRouter = IDexRouter(_dexRouter);
// create pair
lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
_excludeFromMaxTransaction(address(lpPair), true);
_setAutomatedMarketMakerPair(address(lpPair), true);
uint256 totalSupply = 1 * 1e6 * 1e18;
maxBuyAmount = totalSupply * 2 / 100;
maxSellAmount = totalSupply * 2 / 100;
swapTokensAtAmount = totalSupply * 4 / 100;
buyMarketingFee = 20;
buyLiquidityFee = 0;
buyTotalFees = buyMarketingFee + buyLiquidityFee;
sellMarketingFee = 40;
sellLiquidityFee = 0;
sellTotalFees = sellMarketingFee + sellLiquidityFee;
_excludeFromMaxTransaction(newOwner, true);
_excludeFromMaxTransaction(address(this), true);
_excludeFromMaxTransaction(address(0xdead), true);
_excludeFromMaxTransaction(address(dexRouter), true);
excludeFromFees(newOwner, true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromFees(address(dexRouter), true);
marketingAddress = address(newOwner);
_createInitialSupply(newOwner, totalSupply);
transferOwnership(newOwner);
}
receive() external payable {}
function openTrading() external onlyOwner {
require(!tradingActive, "Cannot reenable trading");
tradingActive = true;
swapEnabled = true;
tradingActiveBlock = block.number;
tradingActiveTs = block.timestamp;
emit EnabledTrading();
}
// remove limits after token is stable
function removeLimits() external onlyOwner {
limitsInEffect = false;
transferDelayEnabled = false;
emit RemovedLimits();
}
function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max buy amount lower than 0.2%");
maxBuyAmount = newNum * (10**18);
emit UpdatedMaxBuyAmount(maxBuyAmount);
}
function updateMaxSellAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max sell amount lower than 0.2%");
maxSellAmount = newNum * (10**18);
emit UpdatedMaxSellAmount(maxSellAmount);
}
// change the minimum amount of tokens to sell from fees
function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply.");
swapTokensAtAmount = newAmount;
}
function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
_isExcludedMaxTransactionAmount[updAds] = isExcluded;
emit MaxTransactionExclusion(updAds, isExcluded);
}
function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
require(pair != lpPair, "The pair cannot be removed from automatedMarketMakerPairs");
_setAutomatedMarketMakerPair(pair, value);
emit SetAutomatedMarketMakerPair(pair, value);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
_excludeFromMaxTransaction(pair, value);
emit SetAutomatedMarketMakerPair(pair, value);
}
function updateFees(uint256 _buymarketingFee, uint256 _buyliquidityFee, uint256 _sellmarketingFee, uint256 _sellliquidityFee) external onlyOwner {
buyMarketingFee = _buymarketingFee;
buyLiquidityFee = _buyliquidityFee;
buyTotalFees = buyMarketingFee + buyLiquidityFee;
sellMarketingFee = _sellmarketingFee;
sellLiquidityFee = _sellliquidityFee;
sellTotalFees = sellMarketingFee + sellLiquidityFee;
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
emit ExcludeFromFees(account, excluded);
}
function _transfer(address from, address to, uint256 amount) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "amount must be greater than 0");
if(!tradingActive){
require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
}
if(limitsInEffect){
if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
// at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
if (transferDelayEnabled){
if (to != address(dexRouter) && to != address(lpPair)){
require(_holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer:: Transfer Delay enabled. Try again later.");
_holderLastTransferTimestamp[tx.origin] = block.number;
_holderLastTransferTimestamp[to] = block.number;
}
}
//when buy
if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
}
//when sell
else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
swapping = true;
swapBack();
swapping = false;
}
bool takeFee = true;
// if any account belongs to _isExcludedFromFee account then remove the fee
if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
takeFee = false;
}
uint256 fees = 0;
// only take fees on buys/sells, do not take on wallet transfers
if(takeFee){
// on sell
if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
fees = amount * sellTotalFees / 100;
tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
tokensForMarketing += fees * sellMarketingFee / sellTotalFees;
}
// on buy
else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
fees = amount * buyTotalFees / 100;
tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
tokensForMarketing += fees * buyMarketingFee / buyTotalFees;
}
if(fees > 0){
super._transfer(from, address(this), fees);
}
amount -= fees;
}
super._transfer(from, to, amount);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = dexRouter.WETH();
_approve(address(this), address(dexRouter), tokenAmount);
// make the swap
dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(marketingAddress),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(dexRouter), tokenAmount);
// add the liquidity
dexRouter.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
address(0xdead),
block.timestamp
);
}
function swapBack() private {
if(tokensForLiquidity > 0 && balanceOf(address(this)) >= tokensForLiquidity) {
super._transfer(address(this), address(lpPair),tokensForLiquidity);
ILpPair(lpPair).sync();
}
tokensForLiquidity = 0;
uint256 contractBalance = balanceOf(address(this));
if(contractBalance == 0) {return;}
if(contractBalance > swapTokensAtAmount * 20){
contractBalance = swapTokensAtAmount * 20;
}
swapTokensForEth(contractBalance);
tokensForMarketing = balanceOf(address(this));
}
function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) {
require(_token != address(0), "_token address cannot be 0");
require(_token != address(this), "Can't withdraw native tokens");
uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
_sent = IERC20(_token).transfer(_to, _contractBalance);
emit TransferForeignToken(_token, _contractBalance);
}
// withdraw ETH if stuck or someone sends to the address
function withdrawStuckETH() external onlyOwner {
bool success;
(success,) = address(msg.sender).call{value: address(this).balance}("");
}
// withdraw Token if stuck or someone sends to the address
function withdrawStuckToken(address _token, address _to) external onlyOwner {
require(_token != address(0), "_token address cannot be 0");
uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
IERC20(_token).transfer(_to, _contractBalance);
}
// force Swap back if slippage issues.
function forceContractSell() external onlyOwner {
require(balanceOf(address(this)) >= swapTokensAtAmount, "Can only swap when token amount is at or higher than restriction");
swapping = true;
swapBack();
swapping = false;
emit OwnerForcedSwapBack(block.timestamp);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedMarketingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceContractSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveTs","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":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buymarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyliquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellmarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellliquidityFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600d805462ffffff19166001908117909155600f805460ff191690911790553480156200003057600080fd5b50604051806040016040528060098152602001684241425920534f524160b81b8152506040518060400160405280600581526020016442534f524160d81b8152508160039081620000829190620007cb565b506004620000918282620007cb565b5050506000620000a6620003c360201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620032a6833981519152908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa1580156200013e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000164919062000897565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001da919062000897565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e919062000897565b6001600160a01b031660a081905262000269906001620003c7565b60a051620002799060016200042a565b69d3c21bcecceda1000000606462000293826002620008df565b6200029f9190620008ff565b6006556064620002b1826002620008df565b620002bd9190620008ff565b6007556064620002cf826004620008df565b620002db9190620008ff565b6009556014601181905560006012819055620002f79162000922565b6010556028601481905560006015819055620003139162000922565b60135562000323836001620003c7565b62000330306001620003c7565b6200033f61dead6001620003c7565b6080516200034f906001620003c7565b6200035c83600162000496565b6200036930600162000496565b6200037861dead600162000496565b6080516200038890600162000496565b600a80546001600160a01b0319166001600160a01b038516179055620003af838262000544565b620003ba8362000629565b50505062000938565b3390565b6001600160a01b038216600081815260196020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601a60205260409020805460ff19168215151790556200045a8282620003c7565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620004e55760405162461bcd60e51b815260206004820181905260248201526000805160206200328683398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200059c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004dc565b8060026000828254620005b0919062000922565b90915550506001600160a01b03821660009081526020819052604081208054839290620005df90849062000922565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006745760405162461bcd60e51b81526020600482018190526024820152600080516020620032868339815191526044820152606401620004dc565b6001600160a01b038116620006db5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004dc565b6005546040516001600160a01b03808416921690600080516020620032a683398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075157607f821691505b6020821081036200077257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007c657600081815260208120601f850160051c81016020861015620007a15750805b601f850160051c820191505b81811015620007c257828155600101620007ad565b5050505b505050565b81516001600160401b03811115620007e757620007e762000726565b620007ff81620007f884546200073c565b8462000778565b602080601f8311600181146200083757600084156200081e5750858301515b600019600386901b1c1916600185901b178555620007c2565b600085815260208120601f198616915b82811015620008685788860151825594840194600190910190840162000847565b5085821015620008875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008aa57600080fd5b81516001600160a01b0381168114620008c257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620008f957620008f9620008c9565b92915050565b6000826200091d57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620008f957620008f9620008c9565b60805160a0516128f0620009966000396000818161045f01528181610f28015281816118c9015281816118f20152611bf20152600081816102d501528181611bb5015281816122ea015281816123a301526123e201526128f06000f3fe60806040526004361061028c5760003560e01c806389c9e3201161015a578063c876d0b9116100c1578063e2f456051161007a578063e2f45605146107cc578063ee40166e146107e2578063f11a24d3146107f8578063f2fde38b1461080e578063f5648a4f1461082e578063f63743421461084357600080fd5b8063c876d0b914610701578063c9567bf91461071b578063d257b34f14610730578063d85ba06314610750578063dc3f0d0f14610766578063dd62ed3e1461078657600080fd5b8063a9059cbb11610113578063a9059cbb14610632578063b62496f514610652578063bbc0c74214610682578063bc205ad3146106a1578063c0246668146106c1578063c6616ba1146106e157600080fd5b806389c9e320146105935780638da5cb5b146105a957806392136913146105c757806395d89b41146105dd5780639a7a23d6146105f2578063a457c2d71461061257600080fd5b806339509351116101fe57806370a08231116101b757806370a08231146104e7578063715018a61461051d578063751039fc146105325780637bce5a04146105475780638366e79a1461055d57806388e765ff1461057d57600080fd5b8063395093511461042d578063452ed4f11461044d5780634a62bb651461048157806366d602ae1461049b5780636a486a8e146104b15780636ddd1713146104c757600080fd5b806318160ddd1161025057806318160ddd146103865780631a8145bb146103a55780631f3fed8f146103bb57806323b872dd146103d15780632be32b61146103f1578063313ce5671461041157600080fd5b806306fdde03146102985780630758d924146102c3578063095ea7b31461030f57806310050bb21461033f57806310d5de531461035657600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610859565b6040516102ba91906124bd565b60405180910390f35b3480156102cf57600080fd5b506102f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ba565b34801561031b57600080fd5b5061032f61032a366004612523565b6108eb565b60405190151581526020016102ba565b34801561034b57600080fd5b50610354610902565b005b34801561036257600080fd5b5061032f61037136600461254f565b60196020526000908152604090205460ff1681565b34801561039257600080fd5b506002545b6040519081526020016102ba565b3480156103b157600080fd5b5061039760175481565b3480156103c757600080fd5b5061039760165481565b3480156103dd57600080fd5b5061032f6103ec366004612573565b610a12565b3480156103fd57600080fd5b5061035461040c3660046125b4565b610abc565b34801561041d57600080fd5b50604051601281526020016102ba565b34801561043957600080fd5b5061032f610448366004612523565b610bc9565b34801561045957600080fd5b506102f77f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b50600d5461032f9060ff1681565b3480156104a757600080fd5b5061039760075481565b3480156104bd57600080fd5b5061039760135481565b3480156104d357600080fd5b50600d5461032f9062010000900460ff1681565b3480156104f357600080fd5b5061039761050236600461254f565b6001600160a01b031660009081526020819052604090205490565b34801561052957600080fd5b50610354610c05565b34801561053e57600080fd5b50610354610c79565b34801561055357600080fd5b5061039760115481565b34801561056957600080fd5b5061032f6105783660046125cd565b610ce4565b34801561058957600080fd5b5061039760065481565b34801561059f57600080fd5b50610397600c5481565b3480156105b557600080fd5b506005546001600160a01b03166102f7565b3480156105d357600080fd5b5061039760145481565b3480156105e957600080fd5b506102ad610eed565b3480156105fe57600080fd5b5061035461060d366004612614565b610efc565b34801561061e57600080fd5b5061032f61062d366004612523565b611013565b34801561063e57600080fd5b5061032f61064d366004612523565b6110ac565b34801561065e57600080fd5b5061032f61066d36600461254f565b601a6020526000908152604090205460ff1681565b34801561068e57600080fd5b50600d5461032f90610100900460ff1681565b3480156106ad57600080fd5b506103546106bc3660046125cd565b6110b9565b3480156106cd57600080fd5b506103546106dc366004612614565b611221565b3480156106ed57600080fd5b506103546106fc366004612642565b6112aa565b34801561070d57600080fd5b50600f5461032f9060ff1681565b34801561072757600080fd5b50610354611308565b34801561073c57600080fd5b5061035461074b3660046125b4565b6113ce565b34801561075c57600080fd5b5061039760105481565b34801561077257600080fd5b506103546107813660046125b4565b611519565b34801561079257600080fd5b506103976107a13660046125cd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d857600080fd5b5061039760095481565b3480156107ee57600080fd5b50610397600b5481565b34801561080457600080fd5b5061039760125481565b34801561081a57600080fd5b5061035461082936600461254f565b611620565b34801561083a57600080fd5b5061035461170b565b34801561084f57600080fd5b5061039760155481565b60606003805461086890612674565b80601f016020809104026020016040519081016040528092919081815260200182805461089490612674565b80156108e15780601f106108b6576101008083540402835291602001916108e1565b820191906000526020600020905b8154815290600101906020018083116108c457829003601f168201915b5050505050905090565b60006108f8338484611777565b5060015b92915050565b6005546001600160a01b031633146109355760405162461bcd60e51b815260040161092c906126ae565b60405180910390fd5b6009543060009081526020819052604090205410156109be576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e606482015260840161092c565b6008805460ff191660011790556109d361189b565b6008805460ff191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6000610a1f8484846119c8565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610aa45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161092c565b610ab18533858403611777565b506001949350505050565b6005546001600160a01b03163314610ae65760405162461bcd60e51b815260040161092c906126ae565b670de0b6b3a76400006103e8610afb60025490565b610b069060026126f9565b610b109190612710565b610b1a9190612710565b811015610b7b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b606482015260840161092c565b610b8d81670de0b6b3a76400006126f9565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f8918590610c00908690612732565b611777565b6005546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161092c906126ae565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ca35760405162461bcd60e51b815260040161092c906126ae565b600d805460ff19908116909155600f805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546000906001600160a01b03163314610d115760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b038316610d675760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161092c565b306001600160a01b03841603610dbf5760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e7300000000604482015260640161092c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190612745565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061275e565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b60606004805461086890612674565b6005546001600160a01b03163314610f265760405162461bcd60e51b815260040161092c906126ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610fcd5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161092c565b610fd78282612110565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161092c565b6110a23385858403611777565b5060019392505050565b60006108f83384846119c8565b6005546001600160a01b031633146110e35760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b0382166111395760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161092c565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a49190612745565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af11580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b919061275e565b50505050565b6005546001600160a01b0316331461124b5760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112d45760405162461bcd60e51b815260040161092c906126ae565b601184905560128390556112e88385612732565b601055601482905560158190556112ff8183612732565b60135550505050565b6005546001600160a01b031633146113325760405162461bcd60e51b815260040161092c906126ae565b600d54610100900460ff161561138a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e67000000000000000000604482015260640161092c565b600d805462ffff0019166201010017905543600b5542600c556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6005546001600160a01b031633146113f85760405162461bcd60e51b815260040161092c906126ae565b620186a061140560025490565b6114109060016126f9565b61141a9190612710565b8110156114875760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161092c565b6103e861149360025490565b61149e9060016126f9565b6114a89190612710565b8111156115145760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b606482015260840161092c565b600955565b6005546001600160a01b031633146115435760405162461bcd60e51b815260040161092c906126ae565b670de0b6b3a76400006103e861155860025490565b6115639060026126f9565b61156d9190612710565b6115779190612710565b8110156115d95760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b606482015260840161092c565b6115eb81670de0b6b3a76400006126f9565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610bbe565b6005546001600160a01b0316331461164a5760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b0381166116af5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117355760405162461bcd60e51b815260040161092c906126ae565b604051600090339047908381818185875af1925050503d806000811461121b576040519150601f19603f3d011682016040523d82523d6000602084013e61121b565b6001600160a01b0383166117d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161092c565b6001600160a01b03821661183a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161092c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006017541180156118be57506017543060009081526020819052604090205410155b15611964576118f0307f000000000000000000000000000000000000000000000000000000000000000060175461213e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050505b6000601781905530815260208190526040812054908190036119835750565b6009546119919060146126f9565b8111156119a9576009546119a69060146126f9565b90505b6119b281612293565b3060009081526020819052604090205460165550565b6001600160a01b0383166119ee5760405162461bcd60e51b815260040161092c9061277b565b6001600160a01b038216611a145760405162461bcd60e51b815260040161092c906127c0565b60008111611a645760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161092c565b600d54610100900460ff16611af7576001600160a01b03831660009081526018602052604090205460ff1680611ab257506001600160a01b03821660009081526018602052604090205460ff165b611af75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161092c565b600d5460ff1615611e5d576005546001600160a01b03848116911614801590611b2e57506005546001600160a01b03838116911614155b8015611b4257506001600160a01b03821615155b8015611b5957506001600160a01b03821661dead14155b8015611b7e57506001600160a01b03831660009081526018602052604090205460ff16155b8015611ba357506001600160a01b03821660009081526018602052604090205460ff16155b15611e5d57600f5460ff1615611d04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015611c2757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15611d0457611c37600243612803565b326000908152600e6020526040902054108015611c755750611c5a600243612803565b6001600160a01b0383166000908152600e6020526040902054105b611cdf5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b606482015260840161092c565b326000908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601a602052604090205460ff168015611d4557506001600160a01b03821660009081526019602052604090205460ff16155b15611db257600654811115611dad5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b606482015260840161092c565b611e5d565b6001600160a01b0382166000908152601a602052604090205460ff168015611df357506001600160a01b03831660009081526019602052604090205460ff16155b15611e5d57600754811115611e5d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b606482015260840161092c565b3060009081526020819052604090205460095481108015908190611e895750600d5462010000900460ff165b8015611e98575060085460ff16155b8015611ebd57506001600160a01b0385166000908152601a602052604090205460ff16155b8015611ee257506001600160a01b03851660009081526018602052604090205460ff16155b8015611f0757506001600160a01b03841660009081526018602052604090205460ff16155b15611f2c576008805460ff19166001179055611f2161189b565b6008805460ff191690555b6001600160a01b03851660009081526018602052604090205460019060ff1680611f6e57506001600160a01b03851660009081526018602052604090205460ff165b15611f77575060005b600081156120fc576001600160a01b0386166000908152601a602052604090205460ff168015611fa957506000601354115b1561203157606460135486611fbe91906126f9565b611fc89190612710565b905060135460155482611fdb91906126f9565b611fe59190612710565b60176000828254611ff69190612732565b909155505060135460145461200b90836126f9565b6120159190612710565b601660008282546120269190612732565b909155506120de9050565b6001600160a01b0387166000908152601a602052604090205460ff16801561205b57506000601054115b156120de5760646010548661207091906126f9565b61207a9190612710565b90506010546012548261208d91906126f9565b6120979190612710565b601760008282546120a89190612732565b90915550506010546011546120bd90836126f9565b6120c79190612710565b601660008282546120d89190612732565b90915550505b80156120ef576120ef87308361213e565b6120f98186612803565b94505b61210787878761213e565b50505050505050565b6001600160a01b0382166000908152601a60205260409020805460ff1916821515179055610fd7828261245a565b6001600160a01b0383166121645760405162461bcd60e51b815260040161092c9061277b565b6001600160a01b03821661218a5760405162461bcd60e51b815260040161092c906127c0565b6001600160a01b038316600090815260208190526040902054818110156122025760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161092c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612239908490612732565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228591815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122c8576122c8612816565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a919061282c565b8160018151811061237d5761237d612816565b60200260200101906001600160a01b031690816001600160a01b0316815250506123c8307f000000000000000000000000000000000000000000000000000000000000000084611777565b600a5460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792612424928792600092889291909116904290600401612849565b600060405180830381600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260196020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b818110156124ea578581018301518582016040015282016124ce565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461252057600080fd5b50565b6000806040838503121561253657600080fd5b82356125418161250b565b946020939093013593505050565b60006020828403121561256157600080fd5b813561256c8161250b565b9392505050565b60008060006060848603121561258857600080fd5b83356125938161250b565b925060208401356125a38161250b565b929592945050506040919091013590565b6000602082840312156125c657600080fd5b5035919050565b600080604083850312156125e057600080fd5b82356125eb8161250b565b915060208301356125fb8161250b565b809150509250929050565b801515811461252057600080fd5b6000806040838503121561262757600080fd5b82356126328161250b565b915060208301356125fb81612606565b6000806000806080858703121561265857600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061268857607f821691505b6020821081036126a857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108fc576108fc6126e3565b60008261272d57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108fc576108fc6126e3565b60006020828403121561275757600080fd5b5051919050565b60006020828403121561277057600080fd5b815161256c81612606565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156108fc576108fc6126e3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561283e57600080fd5b815161256c8161250b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128995784516001600160a01b031683529383019391830191600101612874565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e5ce02680ba9fae30dc28f2a83a6e95701ce090ae7a049f554a8ea5e35a743e564736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061028c5760003560e01c806389c9e3201161015a578063c876d0b9116100c1578063e2f456051161007a578063e2f45605146107cc578063ee40166e146107e2578063f11a24d3146107f8578063f2fde38b1461080e578063f5648a4f1461082e578063f63743421461084357600080fd5b8063c876d0b914610701578063c9567bf91461071b578063d257b34f14610730578063d85ba06314610750578063dc3f0d0f14610766578063dd62ed3e1461078657600080fd5b8063a9059cbb11610113578063a9059cbb14610632578063b62496f514610652578063bbc0c74214610682578063bc205ad3146106a1578063c0246668146106c1578063c6616ba1146106e157600080fd5b806389c9e320146105935780638da5cb5b146105a957806392136913146105c757806395d89b41146105dd5780639a7a23d6146105f2578063a457c2d71461061257600080fd5b806339509351116101fe57806370a08231116101b757806370a08231146104e7578063715018a61461051d578063751039fc146105325780637bce5a04146105475780638366e79a1461055d57806388e765ff1461057d57600080fd5b8063395093511461042d578063452ed4f11461044d5780634a62bb651461048157806366d602ae1461049b5780636a486a8e146104b15780636ddd1713146104c757600080fd5b806318160ddd1161025057806318160ddd146103865780631a8145bb146103a55780631f3fed8f146103bb57806323b872dd146103d15780632be32b61146103f1578063313ce5671461041157600080fd5b806306fdde03146102985780630758d924146102c3578063095ea7b31461030f57806310050bb21461033f57806310d5de531461035657600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610859565b6040516102ba91906124bd565b60405180910390f35b3480156102cf57600080fd5b506102f77f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ba565b34801561031b57600080fd5b5061032f61032a366004612523565b6108eb565b60405190151581526020016102ba565b34801561034b57600080fd5b50610354610902565b005b34801561036257600080fd5b5061032f61037136600461254f565b60196020526000908152604090205460ff1681565b34801561039257600080fd5b506002545b6040519081526020016102ba565b3480156103b157600080fd5b5061039760175481565b3480156103c757600080fd5b5061039760165481565b3480156103dd57600080fd5b5061032f6103ec366004612573565b610a12565b3480156103fd57600080fd5b5061035461040c3660046125b4565b610abc565b34801561041d57600080fd5b50604051601281526020016102ba565b34801561043957600080fd5b5061032f610448366004612523565b610bc9565b34801561045957600080fd5b506102f77f000000000000000000000000d52f30cdc6beb1a9652a97016434b143e363433e81565b34801561048d57600080fd5b50600d5461032f9060ff1681565b3480156104a757600080fd5b5061039760075481565b3480156104bd57600080fd5b5061039760135481565b3480156104d357600080fd5b50600d5461032f9062010000900460ff1681565b3480156104f357600080fd5b5061039761050236600461254f565b6001600160a01b031660009081526020819052604090205490565b34801561052957600080fd5b50610354610c05565b34801561053e57600080fd5b50610354610c79565b34801561055357600080fd5b5061039760115481565b34801561056957600080fd5b5061032f6105783660046125cd565b610ce4565b34801561058957600080fd5b5061039760065481565b34801561059f57600080fd5b50610397600c5481565b3480156105b557600080fd5b506005546001600160a01b03166102f7565b3480156105d357600080fd5b5061039760145481565b3480156105e957600080fd5b506102ad610eed565b3480156105fe57600080fd5b5061035461060d366004612614565b610efc565b34801561061e57600080fd5b5061032f61062d366004612523565b611013565b34801561063e57600080fd5b5061032f61064d366004612523565b6110ac565b34801561065e57600080fd5b5061032f61066d36600461254f565b601a6020526000908152604090205460ff1681565b34801561068e57600080fd5b50600d5461032f90610100900460ff1681565b3480156106ad57600080fd5b506103546106bc3660046125cd565b6110b9565b3480156106cd57600080fd5b506103546106dc366004612614565b611221565b3480156106ed57600080fd5b506103546106fc366004612642565b6112aa565b34801561070d57600080fd5b50600f5461032f9060ff1681565b34801561072757600080fd5b50610354611308565b34801561073c57600080fd5b5061035461074b3660046125b4565b6113ce565b34801561075c57600080fd5b5061039760105481565b34801561077257600080fd5b506103546107813660046125b4565b611519565b34801561079257600080fd5b506103976107a13660046125cd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107d857600080fd5b5061039760095481565b3480156107ee57600080fd5b50610397600b5481565b34801561080457600080fd5b5061039760125481565b34801561081a57600080fd5b5061035461082936600461254f565b611620565b34801561083a57600080fd5b5061035461170b565b34801561084f57600080fd5b5061039760155481565b60606003805461086890612674565b80601f016020809104026020016040519081016040528092919081815260200182805461089490612674565b80156108e15780601f106108b6576101008083540402835291602001916108e1565b820191906000526020600020905b8154815290600101906020018083116108c457829003601f168201915b5050505050905090565b60006108f8338484611777565b5060015b92915050565b6005546001600160a01b031633146109355760405162461bcd60e51b815260040161092c906126ae565b60405180910390fd5b6009543060009081526020819052604090205410156109be576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e606482015260840161092c565b6008805460ff191660011790556109d361189b565b6008805460ff191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6000610a1f8484846119c8565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610aa45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161092c565b610ab18533858403611777565b506001949350505050565b6005546001600160a01b03163314610ae65760405162461bcd60e51b815260040161092c906126ae565b670de0b6b3a76400006103e8610afb60025490565b610b069060026126f9565b610b109190612710565b610b1a9190612710565b811015610b7b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b606482015260840161092c565b610b8d81670de0b6b3a76400006126f9565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f8918590610c00908690612732565b611777565b6005546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161092c906126ae565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ca35760405162461bcd60e51b815260040161092c906126ae565b600d805460ff19908116909155600f805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546000906001600160a01b03163314610d115760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b038316610d675760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161092c565b306001600160a01b03841603610dbf5760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e7300000000604482015260640161092c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190612745565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061275e565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b60606004805461086890612674565b6005546001600160a01b03163314610f265760405162461bcd60e51b815260040161092c906126ae565b7f000000000000000000000000d52f30cdc6beb1a9652a97016434b143e363433e6001600160a01b0316826001600160a01b031603610fcd5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161092c565b610fd78282612110565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161092c565b6110a23385858403611777565b5060019392505050565b60006108f83384846119c8565b6005546001600160a01b031633146110e35760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b0382166111395760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161092c565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a49190612745565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af11580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b919061275e565b50505050565b6005546001600160a01b0316331461124b5760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112d45760405162461bcd60e51b815260040161092c906126ae565b601184905560128390556112e88385612732565b601055601482905560158190556112ff8183612732565b60135550505050565b6005546001600160a01b031633146113325760405162461bcd60e51b815260040161092c906126ae565b600d54610100900460ff161561138a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e67000000000000000000604482015260640161092c565b600d805462ffff0019166201010017905543600b5542600c556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6005546001600160a01b031633146113f85760405162461bcd60e51b815260040161092c906126ae565b620186a061140560025490565b6114109060016126f9565b61141a9190612710565b8110156114875760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161092c565b6103e861149360025490565b61149e9060016126f9565b6114a89190612710565b8111156115145760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b606482015260840161092c565b600955565b6005546001600160a01b031633146115435760405162461bcd60e51b815260040161092c906126ae565b670de0b6b3a76400006103e861155860025490565b6115639060026126f9565b61156d9190612710565b6115779190612710565b8110156115d95760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b606482015260840161092c565b6115eb81670de0b6b3a76400006126f9565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610bbe565b6005546001600160a01b0316331461164a5760405162461bcd60e51b815260040161092c906126ae565b6001600160a01b0381166116af5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117355760405162461bcd60e51b815260040161092c906126ae565b604051600090339047908381818185875af1925050503d806000811461121b576040519150601f19603f3d011682016040523d82523d6000602084013e61121b565b6001600160a01b0383166117d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161092c565b6001600160a01b03821661183a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161092c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006017541180156118be57506017543060009081526020819052604090205410155b15611964576118f0307f000000000000000000000000d52f30cdc6beb1a9652a97016434b143e363433e60175461213e565b7f000000000000000000000000d52f30cdc6beb1a9652a97016434b143e363433e6001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050505b6000601781905530815260208190526040812054908190036119835750565b6009546119919060146126f9565b8111156119a9576009546119a69060146126f9565b90505b6119b281612293565b3060009081526020819052604090205460165550565b6001600160a01b0383166119ee5760405162461bcd60e51b815260040161092c9061277b565b6001600160a01b038216611a145760405162461bcd60e51b815260040161092c906127c0565b60008111611a645760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161092c565b600d54610100900460ff16611af7576001600160a01b03831660009081526018602052604090205460ff1680611ab257506001600160a01b03821660009081526018602052604090205460ff165b611af75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161092c565b600d5460ff1615611e5d576005546001600160a01b03848116911614801590611b2e57506005546001600160a01b03838116911614155b8015611b4257506001600160a01b03821615155b8015611b5957506001600160a01b03821661dead14155b8015611b7e57506001600160a01b03831660009081526018602052604090205460ff16155b8015611ba357506001600160a01b03821660009081526018602052604090205460ff16155b15611e5d57600f5460ff1615611d04577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614158015611c2757507f000000000000000000000000d52f30cdc6beb1a9652a97016434b143e363433e6001600160a01b0316826001600160a01b031614155b15611d0457611c37600243612803565b326000908152600e6020526040902054108015611c755750611c5a600243612803565b6001600160a01b0383166000908152600e6020526040902054105b611cdf5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b606482015260840161092c565b326000908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601a602052604090205460ff168015611d4557506001600160a01b03821660009081526019602052604090205460ff16155b15611db257600654811115611dad5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b606482015260840161092c565b611e5d565b6001600160a01b0382166000908152601a602052604090205460ff168015611df357506001600160a01b03831660009081526019602052604090205460ff16155b15611e5d57600754811115611e5d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b606482015260840161092c565b3060009081526020819052604090205460095481108015908190611e895750600d5462010000900460ff165b8015611e98575060085460ff16155b8015611ebd57506001600160a01b0385166000908152601a602052604090205460ff16155b8015611ee257506001600160a01b03851660009081526018602052604090205460ff16155b8015611f0757506001600160a01b03841660009081526018602052604090205460ff16155b15611f2c576008805460ff19166001179055611f2161189b565b6008805460ff191690555b6001600160a01b03851660009081526018602052604090205460019060ff1680611f6e57506001600160a01b03851660009081526018602052604090205460ff165b15611f77575060005b600081156120fc576001600160a01b0386166000908152601a602052604090205460ff168015611fa957506000601354115b1561203157606460135486611fbe91906126f9565b611fc89190612710565b905060135460155482611fdb91906126f9565b611fe59190612710565b60176000828254611ff69190612732565b909155505060135460145461200b90836126f9565b6120159190612710565b601660008282546120269190612732565b909155506120de9050565b6001600160a01b0387166000908152601a602052604090205460ff16801561205b57506000601054115b156120de5760646010548661207091906126f9565b61207a9190612710565b90506010546012548261208d91906126f9565b6120979190612710565b601760008282546120a89190612732565b90915550506010546011546120bd90836126f9565b6120c79190612710565b601660008282546120d89190612732565b90915550505b80156120ef576120ef87308361213e565b6120f98186612803565b94505b61210787878761213e565b50505050505050565b6001600160a01b0382166000908152601a60205260409020805460ff1916821515179055610fd7828261245a565b6001600160a01b0383166121645760405162461bcd60e51b815260040161092c9061277b565b6001600160a01b03821661218a5760405162461bcd60e51b815260040161092c906127c0565b6001600160a01b038316600090815260208190526040902054818110156122025760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161092c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612239908490612732565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228591815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122c8576122c8612816565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a919061282c565b8160018151811061237d5761237d612816565b60200260200101906001600160a01b031690816001600160a01b0316815250506123c8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611777565b600a5460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792612424928792600092889291909116904290600401612849565b600060405180830381600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260196020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b600060208083528351808285015260005b818110156124ea578581018301518582016040015282016124ce565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461252057600080fd5b50565b6000806040838503121561253657600080fd5b82356125418161250b565b946020939093013593505050565b60006020828403121561256157600080fd5b813561256c8161250b565b9392505050565b60008060006060848603121561258857600080fd5b83356125938161250b565b925060208401356125a38161250b565b929592945050506040919091013590565b6000602082840312156125c657600080fd5b5035919050565b600080604083850312156125e057600080fd5b82356125eb8161250b565b915060208301356125fb8161250b565b809150509250929050565b801515811461252057600080fd5b6000806040838503121561262757600080fd5b82356126328161250b565b915060208301356125fb81612606565b6000806000806080858703121561265857600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061268857607f821691505b6020821081036126a857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108fc576108fc6126e3565b60008261272d57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108fc576108fc6126e3565b60006020828403121561275757600080fd5b5051919050565b60006020828403121561277057600080fd5b815161256c81612606565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156108fc576108fc6126e3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561283e57600080fd5b815161256c8161250b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128995784516001600160a01b031683529383019391830191600101612874565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e5ce02680ba9fae30dc28f2a83a6e95701ce090ae7a049f554a8ea5e35a743e564736f6c63430008130033
Deployed Bytecode Sourcemap
10185:13401:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4035:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10301:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;749:32:1;;;731:51;;719:2;704:18;10301:37:0;567:221:1;4949:169:0;;;;;;;;;;-1:-1:-1;4949:169:0;;;;;:::i;:::-;;:::i;:::-;;;1414:14:1;;1407:22;1389:41;;1377:2;1362:18;4949:169:0;1249:187:1;23267:316:0;;;;;;;;;;;;;:::i;:::-;;11360:64;;;;;;;;;;-1:-1:-1;11360:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4356:108;;;;;;;;;;-1:-1:-1;4444:12:0;;4356:108;;;1839:25:1;;;1827:2;1812:18;4356:108:0;1693:177:1;11177:33:0;;;;;;;;;;;;;;;;11137;;;;;;;;;;;;;;;;5126:492;;;;;;;;;;-1:-1:-1;5126:492:0;;;;;:::i;:::-;;:::i;14628:269::-;;;;;;;;;;-1:-1:-1;14628:269:0;;;;;:::i;:::-;;:::i;4255:93::-;;;;;;;;;;-1:-1:-1;4255:93:0;;4338:2;2663:36:1;;2651:2;2636:18;4255:93:0;2521:184:1;5626:215:0;;;;;;;;;;-1:-1:-1;5626:215:0;;;;;:::i;:::-;;:::i;10345:31::-;;;;;;;;;;;;;;;10567:33;;;;;;;;;;-1:-1:-1;10567:33:0;;;;;;;;10264:28;;;;;;;;;;;;;;;;11024;;;;;;;;;;;;;;;;10647:31;;;;;;;;;;-1:-1:-1;10647:31:0;;;;;;;;;;;4472:127;;;;;;;;;;-1:-1:-1;4472:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4573:18:0;4546:7;4573:18;;;;;;;;;;;;4472:127;8670:150;;;;;;;;;;;;;:::i;14462:154::-;;;;;;;;;;;;;:::i;10948:30::-;;;;;;;;;;;;;;;;22169:456;;;;;;;;;;-1:-1:-1;22169:456:0;;;;;:::i;:::-;;:::i;10230:27::-;;;;;;;;;;;;;;;;10528:30;;;;;;;;;;;;;;;;8456:79;;;;;;;;;;-1:-1:-1;8521:6:0;;-1:-1:-1;;;;;8521:6:0;8456:79;;11059:31;;;;;;;;;;;;;;;;4143:104;;;;;;;;;;;;;:::i;15818:295::-;;;;;;;;;;-1:-1:-1;15818:295:0;;;;;:::i;:::-;;:::i;5849:413::-;;;;;;;;;;-1:-1:-1;5849:413:0;;;;;:::i;:::-;;:::i;4607:175::-;;;;;;;;;;-1:-1:-1;4607:175:0;;;;;:::i;:::-;;:::i;11582:58::-;;;;;;;;;;-1:-1:-1;11582:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10607:33;;;;;;;;;;-1:-1:-1;10607:33:0;;;;;;;;;;;22927:288;;;;;;;;;;-1:-1:-1;22927:288:0;;;;;:::i;:::-;;:::i;16835:182::-;;;;;;;;;;-1:-1:-1;16835:182:0;;;;;:::i;:::-;;:::i;16369:458::-;;;;;;;;;;-1:-1:-1;16369:458:0;;;;;:::i;:::-;;:::i;10866:39::-;;;;;;;;;;-1:-1:-1;10866:39:0;;;;;;;;14119:291;;;;;;;;;;;;;:::i;15249:346::-;;;;;;;;;;-1:-1:-1;15249:346:0;;;;;:::i;:::-;;:::i;10914:27::-;;;;;;;;;;;;;;;;14905:274;;;;;;;;;;-1:-1:-1;14905:274:0;;;;;:::i;:::-;;:::i;4790:151::-;;;;;;;;;;-1:-1:-1;4790:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4906:18:0;;;4879:7;4906:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4790:151;10413:33;;;;;;;;;;;;;;;;10488;;;;;;;;;;;;;;;;10985:30;;;;;;;;;;;;;;;;8828:244;;;;;;;;;;-1:-1:-1;8828:244:0;;;;;:::i;:::-;;:::i;22695:160::-;;;;;;;;;;;;;:::i;11097:31::-;;;;;;;;;;;;;;;;4035:100;4089:13;4122:5;4115:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4035:100;:::o;4949:169::-;5032:4;5049:39;264:10;5072:7;5081:6;5049:8;:39::i;:::-;-1:-1:-1;5106:4:0;4949:169;;;;;:::o;23267:316::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;;;;;;;;;23362:18:::1;::::0;23352:4:::1;4546:7:::0;4573:18;;;;;;;;;;;23334:46:::1;;23326:123;;;::::0;;-1:-1:-1;;;23326:123:0;;5159:2:1;23326:123:0::1;::::0;::::1;5141:21:1::0;5178:18;;;5171:30;;;;5237:34;5217:18;;;5210:62;5308:34;5288:18;;;5281:62;5360:19;;23326:123:0::1;4957:428:1::0;23326:123:0::1;23460:8;:15:::0;;-1:-1:-1;;23460:15:0::1;23471:4;23460:15;::::0;;23486:10:::1;:8;:10::i;:::-;23507:8;:16:::0;;-1:-1:-1;;23507:16:0::1;::::0;;23539:36:::1;::::0;23559:15:::1;1839:25:1::0;;23539:36:0::1;::::0;1827:2:1;1812:18;23539:36:0::1;;;;;;;23267:316::o:0;5126:492::-;5266:4;5283:36;5293:6;5301:9;5312:6;5283:9;:36::i;:::-;-1:-1:-1;;;;;5359:19:0;;5332:24;5359:19;;;:11;:19;;;;;;;;264:10;5359:33;;;;;;;;5411:26;;;;5403:79;;;;-1:-1:-1;;;5403:79:0;;5592:2:1;5403:79:0;;;5574:21:1;5631:2;5611:18;;;5604:30;5670:34;5650:18;;;5643:62;-1:-1:-1;;;5721:18:1;;;5714:38;5769:19;;5403:79:0;5390:404:1;5403:79:0;5518:57;5527:6;264:10;5568:6;5549:16;:25;5518:8;:57::i;:::-;-1:-1:-1;5606:4:0;;5126:492;-1:-1:-1;;;;5126:492:0:o;14628:269::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;14747:4:::1;14741;14721:13;4444:12:::0;;;4356:108;14721:13:::1;:17;::::0;14737:1:::1;14721:17;:::i;:::-;:24;;;;:::i;:::-;14720:31;;;;:::i;:::-;14710:6;:41;;14702:95;;;::::0;-1:-1:-1;;;14702:95:0;;6528:2:1;14702:95:0::1;::::0;::::1;6510:21:1::0;6567:2;6547:18;;;6540:30;6606:34;6586:18;;;6579:62;-1:-1:-1;;;6657:18:1;;;6650:39;6706:19;;14702:95:0::1;6326:405:1::0;14702:95:0::1;14823:17;:6:::0;14833::::1;14823:17;:::i;:::-;14808:12;:32:::0;;;14856:33:::1;::::0;1839:25:1;;;14856:33:0::1;::::0;1827:2:1;1812:18;14856:33:0::1;;;;;;;;14628:269:::0;:::o;5626:215::-;264:10;5714:4;5763:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5763:34:0;;;;;;;;;;5714:4;;5731:80;;5754:7;;5763:47;;5800:10;;5763:47;:::i;:::-;5731:8;:80::i;8670:150::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;8763:6:::1;::::0;8742:40:::1;::::0;8779:1:::1;::::0;-1:-1:-1;;;;;8763:6:0::1;::::0;8742:40:::1;::::0;8779:1;;8742:40:::1;8793:6;:19:::0;;-1:-1:-1;;;;;;8793:19:0::1;::::0;;8670:150::o;14462:154::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;14516:14:::1;:22:::0;;-1:-1:-1;;14516:22:0;;::::1;::::0;;;14549:20:::1;:28:::0;;;;::::1;::::0;;14593:15:::1;::::0;::::1;::::0;14533:5:::1;::::0;14593:15:::1;14462:154::o:0;22169:456::-;8583:6;;22256:10;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22287:20:0;::::1;22279:59;;;::::0;-1:-1:-1;;;22279:59:0;;7068:2:1;22279:59:0::1;::::0;::::1;7050:21:1::0;7107:2;7087:18;;;7080:30;7146:28;7126:18;;;7119:56;7192:18;;22279:59:0::1;6866:350:1::0;22279:59:0::1;22375:4;-1:-1:-1::0;;;;;22357:23:0;::::1;::::0;22349:64:::1;;;::::0;-1:-1:-1;;;22349:64:0;;7423:2:1;22349:64:0::1;::::0;::::1;7405:21:1::0;7462:2;7442:18;;;7435:30;7501;7481:18;;;7474:58;7549:18;;22349:64:0::1;7221:352:1::0;22349:64:0::1;22451:39;::::0;-1:-1:-1;;;22451:39:0;;22484:4:::1;22451:39;::::0;::::1;731:51:1::0;22424:24:0::1;::::0;-1:-1:-1;;;;;22451:24:0;::::1;::::0;::::1;::::0;704:18:1;;22451:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22509:46;::::0;-1:-1:-1;;;22509:46:0;;-1:-1:-1;;;;;7959:32:1;;;22509:46:0::1;::::0;::::1;7941:51:1::0;8008:18;;;8001:34;;;22424:66:0;;-1:-1:-1;22509:23:0;;::::1;::::0;::::1;::::0;7914:18:1;;22509:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22571;::::0;;-1:-1:-1;;;;;7959:32:1;;7941:51;;8023:2;8008:18;;8001:34;;;22501:54:0;;-1:-1:-1;22571:46:0::1;::::0;7914:18:1;22571:46:0::1;;;;;;;22268:357;22169:456:::0;;;;:::o;4143:104::-;4199:13;4232:7;4225:14;;;;;:::i;15818:295::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;15927:6:::1;-1:-1:-1::0;;;;;15919:14:0::1;:4;-1:-1:-1::0;;;;;15919:14:0::1;::::0;15911:84:::1;;;::::0;-1:-1:-1;;;15911:84:0;;8498:2:1;15911:84:0::1;::::0;::::1;8480:21:1::0;8537:2;8517:18;;;8510:30;8576:34;8556:18;;;8549:62;8647:27;8627:18;;;8620:55;8692:19;;15911:84:0::1;8296:421:1::0;15911:84:0::1;16008:41;16037:4;16043:5;16008:28;:41::i;:::-;16065:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;16065:40:0;::::1;::::0;::::1;::::0;;;::::1;15818:295:::0;;:::o;5849:413::-;264:10;5942:4;5986:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5986:34:0;;;;;;;;;;6039:35;;;;6031:85;;;;-1:-1:-1;;;6031:85:0;;8924:2:1;6031:85:0;;;8906:21:1;8963:2;8943:18;;;8936:30;9002:34;8982:18;;;8975:62;-1:-1:-1;;;9053:18:1;;;9046:35;9098:19;;6031:85:0;8722:401:1;6031:85:0;6152:67;264:10;6175:7;6203:15;6184:16;:34;6152:8;:67::i;:::-;-1:-1:-1;6250:4:0;;5849:413;-1:-1:-1;;;5849:413:0:o;4607:175::-;4693:4;4710:42;264:10;4734:9;4745:6;4710:9;:42::i;22927:288::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23022:20:0;::::1;23014:59;;;::::0;-1:-1:-1;;;23014:59:0;;7068:2:1;23014:59:0::1;::::0;::::1;7050:21:1::0;7107:2;7087:18;;;7080:30;7146:28;7126:18;;;7119:56;7192:18;;23014:59:0::1;6866:350:1::0;23014:59:0::1;23111:39;::::0;-1:-1:-1;;;23111:39:0;;23144:4:::1;23111:39;::::0;::::1;731:51:1::0;23084:24:0::1;::::0;-1:-1:-1;;;;;23111:24:0;::::1;::::0;::::1;::::0;704:18:1;;23111:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23161:46;::::0;-1:-1:-1;;;23161:46:0;;-1:-1:-1;;;;;7959:32:1;;;23161:46:0::1;::::0;::::1;7941:51:1::0;8008:18;;;8001:34;;;23084:66:0;;-1:-1:-1;23161:23:0;;::::1;::::0;::::1;::::0;7914:18:1;;23161:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23003:212;22927:288:::0;;:::o;16835:182::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16920:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16920:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16975:34;;1389:41:1;;;16975:34:0::1;::::0;1362:18:1;16975:34:0::1;;;;;;;16835:182:::0;;:::o;16369:458::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;16525:15:::1;:34:::0;;;16570:15:::1;:34:::0;;;16630:33:::1;16588:16:::0;16543;16630:33:::1;:::i;:::-;16615:12;:48:::0;16674:16:::1;:36:::0;;;16721:16:::1;:36:::0;;;16784:35:::1;16740:17:::0;16693;16784:35:::1;:::i;:::-;16768:13;:51:::0;-1:-1:-1;;;;16369:458:0:o;14119:291::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;14181:13:::1;::::0;::::1;::::0;::::1;;;14180:14;14172:50;;;::::0;-1:-1:-1;;;14172:50:0;;9330:2:1;14172:50:0::1;::::0;::::1;9312:21:1::0;9369:2;9349:18;;;9342:30;9408:25;9388:18;;;9381:53;9451:18;;14172:50:0::1;9128:347:1::0;14172:50:0::1;14233:13;:20:::0;;-1:-1:-1;;14264:18:0;;;;;14314:12:::1;14293:18;:33:::0;14355:15:::1;14337;:33:::0;14386:16:::1;::::0;::::1;::::0;-1:-1:-1;;14386:16:0::1;14119:291::o:0;15249:346::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;15372:6:::1;15352:13;4444:12:::0;;;4356:108;15352:13:::1;:17;::::0;15368:1:::1;15352:17;:::i;:::-;:26;;;;:::i;:::-;15339:9;:39;;15331:105;;;::::0;-1:-1:-1;;;15331:105:0;;9682:2:1;15331:105:0::1;::::0;::::1;9664:21:1::0;9721:2;9701:18;;;9694:30;9760:34;9740:18;;;9733:62;-1:-1:-1;;;9811:18:1;;;9804:51;9872:19;;15331:105:0::1;9480:417:1::0;15331:105:0::1;15487:4;15467:13;4444:12:::0;;;4356:108;15467:13:::1;:17;::::0;15483:1:::1;15467:17;:::i;:::-;:24;;;;:::i;:::-;15454:9;:37;;15446:102;;;::::0;-1:-1:-1;;;15446:102:0;;10104:2:1;15446:102:0::1;::::0;::::1;10086:21:1::0;10143:2;10123:18;;;10116:30;10182:34;10162:18;;;10155:62;-1:-1:-1;;;10233:18:1;;;10226:50;10293:19;;15446:102:0::1;9902:416:1::0;15446:102:0::1;15558:18;:30:::0;15249:346::o;14905:274::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;15025:4:::1;15019;14999:13;4444:12:::0;;;4356:108;14999:13:::1;:17;::::0;15015:1:::1;14999:17;:::i;:::-;:24;;;;:::i;:::-;14998:31;;;;:::i;:::-;14988:6;:41;;14980:96;;;::::0;-1:-1:-1;;;14980:96:0;;10525:2:1;14980:96:0::1;::::0;::::1;10507:21:1::0;10564:2;10544:18;;;10537:30;10603:34;10583:18;;;10576:62;-1:-1:-1;;;10654:18:1;;;10647:40;10704:19;;14980:96:0::1;10323:406:1::0;14980:96:0::1;15103:17;:6:::0;15113::::1;15103:17;:::i;:::-;15087:13;:33:::0;;;15136:35:::1;::::0;1839:25:1;;;15136:35:0::1;::::0;1827:2:1;1812:18;15136:35:0::1;1693:177:1::0;8828:244:0;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8917:22:0;::::1;8909:73;;;::::0;-1:-1:-1;;;8909:73:0;;10936:2:1;8909:73:0::1;::::0;::::1;10918:21:1::0;10975:2;10955:18;;;10948:30;11014:34;10994:18;;;10987:62;-1:-1:-1;;;11065:18:1;;;11058:36;11111:19;;8909:73:0::1;10734:402:1::0;8909:73:0::1;9019:6;::::0;8998:38:::1;::::0;-1:-1:-1;;;;;8998:38:0;;::::1;::::0;9019:6:::1;::::0;8998:38:::1;::::0;9019:6:::1;::::0;8998:38:::1;9047:6;:17:::0;;-1:-1:-1;;;;;;9047:17:0::1;-1:-1:-1::0;;;;;9047:17:0;;;::::1;::::0;;;::::1;::::0;;8828:244::o;22695:160::-;8583:6;;-1:-1:-1;;;;;8583:6:0;264:10;8583:22;8575:67;;;;-1:-1:-1;;;8575:67:0;;;;;;;:::i;:::-;22789:58:::1;::::0;22753:12:::1;::::0;22797:10:::1;::::0;22821:21:::1;::::0;22753:12;22789:58;22753:12;22789:58;22821:21;22797:10;22789:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7749:380:::0;-1:-1:-1;;;;;7885:19:0;;7877:68;;;;-1:-1:-1;;;7877:68:0;;11553:2:1;7877:68:0;;;11535:21:1;11592:2;11572:18;;;11565:30;11631:34;11611:18;;;11604:62;-1:-1:-1;;;11682:18:1;;;11675:34;11726:19;;7877:68:0;11351:400:1;7877:68:0;-1:-1:-1;;;;;7964:21:0;;7956:68;;;;-1:-1:-1;;;7956:68:0;;11958:2:1;7956:68:0;;;11940:21:1;11997:2;11977:18;;;11970:30;12036:34;12016:18;;;12009:62;-1:-1:-1;;;12087:18:1;;;12080:32;12129:19;;7956:68:0;11756:398:1;7956:68:0;-1:-1:-1;;;;;8037:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8089:32;;1839:25:1;;;8089:32:0;;1812:18:1;8089:32:0;;;;;;;7749:380;;;:::o;21535:626::-;21600:1;21579:18;;:22;:72;;;;-1:-1:-1;21633:18:0;;21623:4;4546:7;4573:18;;;;;;;;;;;21605:46;;21579:72;21576:207;;;21668:66;21692:4;21707:6;21715:18;;21668:15;:66::i;:::-;21757:6;-1:-1:-1;;;;;21749:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21576:207;21814:1;21793:18;:22;;;21872:4;4573:18;;;;;;;;;;;21894:20;;;21891:34;;21917:7;21535:626::o;21891:34::-;21958:18;;:23;;21979:2;21958:23;:::i;:::-;21940:15;:41;21937:113;;;22015:18;;:23;;22036:2;22015:23;:::i;:::-;21997:41;;21937:113;22062:33;22079:15;22062:16;:33::i;:::-;22147:4;4546:7;4573:18;;;;;;;;;;;22108;:45;-1:-1:-1;21535:626:0:o;17025:3392::-;-1:-1:-1;;;;;17125:18:0;;17117:68;;;;-1:-1:-1;;;17117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17204:16:0;;17196:64;;;;-1:-1:-1;;;17196:64:0;;;;;;;:::i;:::-;17288:1;17279:6;:10;17271:52;;;;-1:-1:-1;;;17271:52:0;;13171:2:1;17271:52:0;;;13153:21:1;13210:2;13190:18;;;13183:30;13249:31;13229:18;;;13222:59;13298:18;;17271:52:0;12969:353:1;17271:52:0;17340:13;;;;;;;17336:132;;-1:-1:-1;;;;;17377:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17406:23:0;;;;;;:19;:23;;;;;;;;17377:52;17369:87;;;;-1:-1:-1;;;17369:87:0;;13529:2:1;17369:87:0;;;13511:21:1;13568:2;13548:18;;;13541:30;-1:-1:-1;;;13587:18:1;;;13580:52;13649:18;;17369:87:0;13327:346:1;17369:87:0;17483:14;;;;17480:1359;;;8521:6;;-1:-1:-1;;;;;17517:15:0;;;8521:6;;17517:15;;;;:32;;-1:-1:-1;8521:6:0;;-1:-1:-1;;;;;17536:13:0;;;8521:6;;17536:13;;17517:32;:52;;;;-1:-1:-1;;;;;;17553:16:0;;;;17517:52;:77;;;;-1:-1:-1;;;;;;17573:21:0;;17587:6;17573:21;;17517:77;:107;;;;-1:-1:-1;;;;;;17599:25:0;;;;;;:19;:25;;;;;;;;17598:26;17517:107;:135;;;;-1:-1:-1;;;;;;17629:23:0;;;;;;:19;:23;;;;;;;;17628:24;17517:135;17513:1315;;;17810:20;;;;17806:506;;;17872:9;-1:-1:-1;;;;;17858:24:0;:2;-1:-1:-1;;;;;17858:24:0;;;:49;;;;;17900:6;-1:-1:-1;;;;;17886:21:0;:2;-1:-1:-1;;;;;17886:21:0;;;17858:49;17854:439;;;17985:16;18000:1;17985:12;:16;:::i;:::-;17972:9;17943:39;;;;:28;:39;;;;;;:58;:113;;;;-1:-1:-1;18040:16:0;18055:1;18040:12;:16;:::i;:::-;-1:-1:-1;;;;;18005:32:0;;;;;;:28;:32;;;;;;:51;17943:113;17935:179;;;;-1:-1:-1;;;17935:179:0;;14013:2:1;17935:179:0;;;13995:21:1;14052:2;14032:18;;;14025:30;14091:34;14071:18;;;14064:62;-1:-1:-1;;;14142:18:1;;;14135:51;14203:19;;17935:179:0;13811:417:1;17935:179:0;18170:9;18141:39;;;;:28;:39;;;;;;18183:12;18141:54;;;;-1:-1:-1;;;;;18222:32:0;;;;;;:47;17854:439;-1:-1:-1;;;;;18364:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18400:35:0;;;;;;:31;:35;;;;;;;;18399:36;18364:71;18360:453;;;18482:12;;18472:6;:22;;18464:75;;;;-1:-1:-1;;;18464:75:0;;14435:2:1;18464:75:0;;;14417:21:1;14474:2;14454:18;;;14447:30;14513:34;14493:18;;;14486:62;-1:-1:-1;;;14564:18:1;;;14557:38;14612:19;;18464:75:0;14233:404:1;18464:75:0;18360:453;;;-1:-1:-1;;;;;18615:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;18649:37:0;;;;;;:31;:37;;;;;;;;18648:38;18615:71;18611:202;;;18733:13;;18723:6;:23;;18715:78;;;;-1:-1:-1;;;18715:78:0;;14844:2:1;18715:78:0;;;14826:21:1;14883:2;14863:18;;;14856:30;14922:34;14902:18;;;14895:62;-1:-1:-1;;;14973:18:1;;;14966:40;15023:19;;18715:78:0;14642:406:1;18715:78:0;18900:4;18851:28;4573:18;;;;;;;;;;;18958;;18934:42;;;;;;;18992:22;;-1:-1:-1;19003:11:0;;;;;;;18992:22;:35;;;;-1:-1:-1;19019:8:0;;;;19018:9;18992:35;:71;;;;-1:-1:-1;;;;;;19032:31:0;;;;;;:25;:31;;;;;;;;19031:32;18992:71;:101;;;;-1:-1:-1;;;;;;19068:25:0;;;;;;:19;:25;;;;;;;;19067:26;18992:101;:129;;;;-1:-1:-1;;;;;;19098:23:0;;;;;;:19;:23;;;;;;;;19097:24;18992:129;18989:236;;;19138:8;:15;;-1:-1:-1;;19138:15:0;19149:4;19138:15;;;19170:10;:8;:10::i;:::-;19197:8;:16;;-1:-1:-1;;19197:16:0;;;18989:236;-1:-1:-1;;;;;19355:25:0;;19237:12;19355:25;;;:19;:25;;;;;;19252:4;;19355:25;;;:52;;-1:-1:-1;;;;;;19384:23:0;;;;;;:19;:23;;;;;;;;19355:52;19352:99;;;-1:-1:-1;19434:5:0;19352:99;19463:12;19569:7;19566:798;;;-1:-1:-1;;;;;19620:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19669:1;19653:13;;:17;19620:50;19616:604;;;19722:3;19706:13;;19697:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;19690:35;;19792:13;;19773:16;;19766:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;19744:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19872:13:0;;19853:16;;19846:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;19824:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;19616:604:0;;-1:-1:-1;19616:604:0;;-1:-1:-1;;;;;19948:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19998:1;19983:12;;:16;19948:51;19945:275;;;20048:3;20033:12;;20024:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;20017:34;;20114:12;;20096:15;;20089:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;20067:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;20192:12:0;;20174:15;;20167:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;20145:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;19945:275:0;20239:8;;20236:89;;20267:42;20283:4;20297;20304;20267:15;:42::i;:::-;20338:14;20348:4;20338:14;;:::i;:::-;;;19566:798;20376:33;20392:4;20398:2;20402:6;20376:15;:33::i;:::-;17104:3313;;;;17025:3392;;;:::o;16121:240::-;-1:-1:-1;;;;;16204:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;16204:39:0;;;;;;;16256;16204:31;:39;16256:26;:39::i;6270:614::-;-1:-1:-1;;;;;6410:20:0;;6402:70;;;;-1:-1:-1;;;6402:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6491:23:0;;6483:71;;;;-1:-1:-1;;;6483:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6591:17:0;;6567:21;6591:17;;;;;;;;;;;6627:23;;;;6619:74;;;;-1:-1:-1;;;6619:74:0;;15255:2:1;6619:74:0;;;15237:21:1;15294:2;15274:18;;;15267:30;15333:34;15313:18;;;15306:62;-1:-1:-1;;;15384:18:1;;;15377:36;15430:19;;6619:74:0;15053:402:1;6619:74:0;-1:-1:-1;;;;;6729:17:0;;;:9;:17;;;;;;;;;;;6749:22;;;6729:42;;6793:20;;;;;;;;:30;;6765:6;;6729:9;6793:30;;6765:6;;6793:30;:::i;:::-;;;;;;;;6858:9;-1:-1:-1;;;;;6841:35:0;6850:6;-1:-1:-1;;;;;6841:35:0;;6869:6;6841:35;;;;1839:25:1;;1827:2;1812:18;;1693:177;6841:35:0;;;;;;;;6391:493;6270:614;;;:::o;20425:585::-;20577:16;;;20591:1;20577:16;;;;;;;;20553:21;;20577:16;;;;;;;;;;-1:-1:-1;20577:16:0;20553:40;;20622:4;20604;20609:1;20604:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20604:23:0;;;-1:-1:-1;;;;;20604:23:0;;;;;20648:9;-1:-1:-1;;;;;20648:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20638:4;20643:1;20638:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;20638:26:0;;;-1:-1:-1;;;;;20638:26:0;;;;;20677:56;20694:4;20709:9;20721:11;20677:8;:56::i;:::-;20944:16;;20772:230;;-1:-1:-1;;;20772:230:0;;-1:-1:-1;;;;;20772:9:0;:60;;;;;:230;;20847:11;;20873:1;;20917:4;;20944:16;;;;;20976:15;;20772:230;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20480:530;20425:585;:::o;15603:207::-;-1:-1:-1;;;;;15691:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;15691:52:0;;;;;;;;;;15759:43;;17133:51:1;;;17200:18;;;17193:50;15759:43:0;;17106:18:1;15759:43:0;;;;;;;15603:207;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;793:131::-;-1:-1:-1;;;;;868:31:1;;858:42;;848:70;;914:1;911;904:12;848:70;793:131;:::o;929:315::-;997:6;1005;1058:2;1046:9;1037:7;1033:23;1029:32;1026:52;;;1074:1;1071;1064:12;1026:52;1113:9;1100:23;1132:31;1157:5;1132:31;:::i;:::-;1182:5;1234:2;1219:18;;;;1206:32;;-1:-1:-1;;;929:315:1:o;1441:247::-;1500:6;1553:2;1541:9;1532:7;1528:23;1524:32;1521:52;;;1569:1;1566;1559:12;1521:52;1608:9;1595:23;1627:31;1652:5;1627:31;:::i;:::-;1677:5;1441:247;-1:-1:-1;;;1441:247:1:o;1875:456::-;1952:6;1960;1968;2021:2;2009:9;2000:7;1996:23;1992:32;1989:52;;;2037:1;2034;2027:12;1989:52;2076:9;2063:23;2095:31;2120:5;2095:31;:::i;:::-;2145:5;-1:-1:-1;2202:2:1;2187:18;;2174:32;2215:33;2174:32;2215:33;:::i;:::-;1875:456;;2267:7;;-1:-1:-1;;;2321:2:1;2306:18;;;;2293:32;;1875:456::o;2336:180::-;2395:6;2448:2;2436:9;2427:7;2423:23;2419:32;2416:52;;;2464:1;2461;2454:12;2416:52;-1:-1:-1;2487:23:1;;2336:180;-1:-1:-1;2336:180:1:o;2918:388::-;2986:6;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:31;3146:5;3121:31;:::i;:::-;3171:5;-1:-1:-1;3228:2:1;3213:18;;3200:32;3241:33;3200:32;3241:33;:::i;:::-;3293:7;3283:17;;;2918:388;;;;;:::o;3311:118::-;3397:5;3390:13;3383:21;3376:5;3373:32;3363:60;;3419:1;3416;3409:12;3434:382;3499:6;3507;3560:2;3548:9;3539:7;3535:23;3531:32;3528:52;;;3576:1;3573;3566:12;3528:52;3615:9;3602:23;3634:31;3659:5;3634:31;:::i;:::-;3684:5;-1:-1:-1;3741:2:1;3726:18;;3713:32;3754:30;3713:32;3754:30;:::i;3821:385::-;3907:6;3915;3923;3931;3984:3;3972:9;3963:7;3959:23;3955:33;3952:53;;;4001:1;3998;3991:12;3952:53;-1:-1:-1;;4024:23:1;;;4094:2;4079:18;;4066:32;;-1:-1:-1;4145:2:1;4130:18;;4117:32;;4196:2;4181:18;4168:32;;-1:-1:-1;3821:385:1;-1:-1:-1;3821:385:1:o;4211:380::-;4290:1;4286:12;;;;4333;;;4354:61;;4408:4;4400:6;4396:17;4386:27;;4354:61;4461:2;4453:6;4450:14;4430:18;4427:38;4424:161;;4507:10;4502:3;4498:20;4495:1;4488:31;4542:4;4539:1;4532:15;4570:4;4567:1;4560:15;4424:161;;4211:380;;;:::o;4596:356::-;4798:2;4780:21;;;4817:18;;;4810:30;4876:34;4871:2;4856:18;;4849:62;4943:2;4928:18;;4596:356::o;5799:127::-;5860:10;5855:3;5851:20;5848:1;5841:31;5891:4;5888:1;5881:15;5915:4;5912:1;5905:15;5931:168;6004:9;;;6035;;6052:15;;;6046:22;;6032:37;6022:71;;6073:18;;:::i;6104:217::-;6144:1;6170;6160:132;;6214:10;6209:3;6205:20;6202:1;6195:31;6249:4;6246:1;6239:15;6277:4;6274:1;6267:15;6160:132;-1:-1:-1;6306:9:1;;6104:217::o;6736:125::-;6801:9;;;6822:10;;;6819:36;;;6835:18;;:::i;7578:184::-;7648:6;7701:2;7689:9;7680:7;7676:23;7672:32;7669:52;;;7717:1;7714;7707:12;7669:52;-1:-1:-1;7740:16:1;;7578:184;-1:-1:-1;7578:184:1:o;8046:245::-;8113:6;8166:2;8154:9;8145:7;8141:23;8137:32;8134:52;;;8182:1;8179;8172:12;8134:52;8214:9;8208:16;8233:28;8255:5;8233:28;:::i;12159:401::-;12361:2;12343:21;;;12400:2;12380:18;;;12373:30;12439:34;12434:2;12419:18;;12412:62;-1:-1:-1;;;12505:2:1;12490:18;;12483:35;12550:3;12535:19;;12159:401::o;12565:399::-;12767:2;12749:21;;;12806:2;12786:18;;;12779:30;12845:34;12840:2;12825:18;;12818:62;-1:-1:-1;;;12911:2:1;12896:18;;12889:33;12954:3;12939:19;;12565:399::o;13678:128::-;13745:9;;;13766:11;;;13763:37;;;13780:18;;:::i;15592:127::-;15653:10;15648:3;15644:20;15641:1;15634:31;15684:4;15681:1;15674:15;15708:4;15705:1;15698:15;15724:251;15794:6;15847:2;15835:9;15826:7;15822:23;15818:32;15815:52;;;15863:1;15860;15853:12;15815:52;15895:9;15889:16;15914:31;15939:5;15914:31;:::i;15980:980::-;16242:4;16290:3;16279:9;16275:19;16321:6;16310:9;16303:25;16347:2;16385:6;16380:2;16369:9;16365:18;16358:34;16428:3;16423:2;16412:9;16408:18;16401:31;16452:6;16487;16481:13;16518:6;16510;16503:22;16556:3;16545:9;16541:19;16534:26;;16595:2;16587:6;16583:15;16569:29;;16616:1;16626:195;16640:6;16637:1;16634:13;16626:195;;;16705:13;;-1:-1:-1;;;;;16701:39:1;16689:52;;16796:15;;;;16761:12;;;;16737:1;16655:9;16626:195;;;-1:-1:-1;;;;;;;16877:32:1;;;;16872:2;16857:18;;16850:60;-1:-1:-1;;;16941:3:1;16926:19;16919:35;16838:3;15980:980;-1:-1:-1;;;15980:980:1:o
Swarm Source
ipfs://e5ce02680ba9fae30dc28f2a83a6e95701ce090ae7a049f554a8ea5e35a743e5
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.