Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 12 from a total of 12 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 16797221 | 1080 days ago | IN | 0 ETH | 0.00250309 | ||||
| Transfer Ownersh... | 16788842 | 1081 days ago | IN | 0 ETH | 0.00066969 | ||||
| Approve | 16788830 | 1081 days ago | IN | 0 ETH | 0.00111525 | ||||
| Transfer | 16788829 | 1081 days ago | IN | 0 ETH | 0.0016398 | ||||
| Transfer | 16788823 | 1081 days ago | IN | 0 ETH | 0.00170555 | ||||
| Approve | 16788803 | 1081 days ago | IN | 0 ETH | 0.00118318 | ||||
| Transfer | 16788796 | 1081 days ago | IN | 0 ETH | 0.00169093 | ||||
| Set Minimum Toke... | 16788786 | 1081 days ago | IN | 0 ETH | 0.00066574 | ||||
| Transfer Ownersh... | 16788760 | 1081 days ago | IN | 0 ETH | 0.00062051 | ||||
| Set Wallets | 16788753 | 1081 days ago | IN | 0 ETH | 0.00111446 | ||||
| Set Base Fees On... | 16788737 | 1081 days ago | IN | 0 ETH | 0.0010144 | ||||
| Set Base Fees On... | 16788735 | 1081 days ago | IN | 0 ETH | 0.00095167 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SpriteOnsenEarth
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-03-09
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(
data
);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data)
internal
view
returns (bytes memory)
{
return
functionStaticCall(
target,
data,
"Address: low-level static call failed"
);
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return
functionDelegateCall(
target,
data,
"Address: low-level delegate call failed"
);
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) private pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract 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;
}
}
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() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
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 to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, 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) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
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);
_afterTokenTransfer(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);
}
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract SpriteOnsenEarth is Ownable, ERC20 {
using Address for address;
IRouter public uniswapV2Router;
address public immutable uniswapV2Pair;
string private constant _name = "Sprite Onsen: Earth Sprite";
string private constant _symbol = "EARTH";
uint256 public initialSupply = 40000 * (10**18);
bool private _swapping;
uint256 public minimumTokensBeforeSwap = initialSupply * 25 / 100000;
address public targetAWallet;
address public targetBWallet;
address public targetCWallet;
address public USDC = 0x397FF1542f962076d0BFE58eA045FfA2d347ACa0;
struct CustomTaxPeriod {
bytes23 periodName;
uint8 targetAFeeOnBuy;
uint8 targetAFeeOnSell;
uint8 targetBFeeOnBuy;
uint8 targetBFeeOnSell;
uint8 targetCFeeOnBuy;
uint8 targetCFeeOnSell;
}
// Base taxes
CustomTaxPeriod private _base = CustomTaxPeriod("base", 5, 5, 5, 5, 1, 1);
mapping(address => bool) private _isExcludedFromFee;
mapping(address => bool) public automatedMarketMakerPairs;
uint8 private _targetAFee;
uint8 private _targetBFee;
uint8 private _targetCFee;
uint8 private _totalFee;
event AutomatedMarketMakerPairChange(address indexed pair, bool indexed value);
event UniswapV2RouterChange(address indexed newAddress, address indexed oldAddress);
event WalletChange(string indexed indentifier,address indexed newWallet,address indexed oldWallet);
event FeeChange(string indexed identifier,uint8 targetAFee, uint8 targetBFee, uint8 targetCFee);
event CustomTaxPeriodChange(uint256 indexed newValue,uint256 indexed oldValue,string indexed taxType,bytes23 period);
event ExcludeFromFeesChange(address indexed account, bool isExcluded);
event MinTokenAmountBeforeSwapChange(uint256 indexed newValue, uint256 indexed oldValue);
event ClaimOverflow(address token, uint256 amount);
event FeesApplied(uint8 targetAFee, uint8 targetBFee, uint8 targetCFee, uint8 totalFee);
constructor() ERC20(_name, _symbol) {
targetAWallet = owner();
targetBWallet = owner();
targetCWallet = owner();
IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address _uniswapV2Pair = IFactory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = _uniswapV2Pair;
_setAutomatedMarketMakerPair(_uniswapV2Pair, true);
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_mint(owner(), initialSupply);
}
receive() external payable {}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
require(automatedMarketMakerPairs[pair] != value,"Test Token: Automated market maker pair is already set to that value");
automatedMarketMakerPairs[pair] = value;
emit AutomatedMarketMakerPairChange(pair, value);
}
function excludeFromFees(address account, bool excluded) external onlyOwner {
require(_isExcludedFromFee[account] != excluded,"Test Token: Account is already the value of 'excluded'");
_isExcludedFromFee[account] = excluded;
emit ExcludeFromFeesChange(account, excluded);
}
function setWallets(address newTargetAWallet, address newTargetBWallet, address newTargetCWallet) external onlyOwner {
if (targetAWallet != newTargetAWallet) {
require(newTargetAWallet != address(0), "Test Token: The targetAWallet cannot be 0");
emit WalletChange("targetAWallet", newTargetAWallet, targetAWallet);
targetAWallet = newTargetAWallet;
}
if (targetBWallet != newTargetBWallet) {
require(newTargetBWallet != address(0), "Test Token: The targetBWallet cannot be 0");
emit WalletChange("targetBWallet", newTargetBWallet, targetBWallet);
targetBWallet = newTargetBWallet;
}
if (targetCWallet != newTargetCWallet) {
require(newTargetCWallet != address(0), "Test Token: The targetCWallet cannot be 0");
emit WalletChange("targetCWallet", newTargetCWallet, targetCWallet);
targetCWallet = newTargetCWallet;
}
}
// Base fees
function setBaseFeesOnBuy(uint8 _targetAFeeOnBuy, uint8 _targetBFeeOnBuy, uint8 _targetCFeeOnBuy) external onlyOwner {
_setCustomBuyTaxPeriod(_base,_targetAFeeOnBuy,_targetBFeeOnBuy, _targetCFeeOnBuy);
emit FeeChange("baseFees-Buy",_targetAFeeOnBuy,_targetBFeeOnBuy, _targetCFeeOnBuy);
}
function setBaseFeesOnSell(uint8 _targetAFeeOnSell, uint8 _targetBFeeOnSell, uint8 _targetCFeeOnSell ) external onlyOwner {
_setCustomSellTaxPeriod(_base,_targetAFeeOnSell, _targetBFeeOnSell, _targetCFeeOnSell);
emit FeeChange("baseFees-Sell",_targetAFeeOnSell, _targetBFeeOnSell, _targetCFeeOnSell);
}
function setUniswapRouter(address newAddress) external onlyOwner {
require(newAddress != address(uniswapV2Router),"Test Token: The router already has that address");
emit UniswapV2RouterChange(newAddress, address(uniswapV2Router));
uniswapV2Router = IRouter(newAddress);
}
function setMinimumTokensBeforeSwap(uint256 newValue) external onlyOwner {
require(newValue != minimumTokensBeforeSwap,"Test Token: Cannot update minimumTokensBeforeSwap to same value");
emit MinTokenAmountBeforeSwapChange(newValue, minimumTokensBeforeSwap);
minimumTokensBeforeSwap = newValue;
}
function claimETHOverflow(uint256 amount) external onlyOwner {
require(amount <= address(this).balance, "Test Token: Cannot send more than contract balance");
(bool success, ) = address(owner()).call{ value: amount }("");
if (success) {
emit ClaimOverflow(uniswapV2Router.WETH(), amount);
}
}
// Getters
function getBaseBuyFees() external view returns (uint8,uint8, uint8) {
return (_base.targetAFeeOnBuy,_base.targetBFeeOnBuy, _base.targetCFeeOnBuy);
}
function getBaseSellFees() external view returns (uint8,uint8,uint8) {
return (_base.targetAFeeOnSell,_base.targetBFeeOnSell, _base.targetCFeeOnSell);
}
// Main
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");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
_adjustTaxes(automatedMarketMakerPairs[from], automatedMarketMakerPairs[to]);
bool canSwap = balanceOf(address(this)) >= minimumTokensBeforeSwap;
if (
canSwap &&
!_swapping &&
_totalFee > 0 &&
automatedMarketMakerPairs[to]
) {
_swapping = true;
_swapAndTransfer();
_swapping = false;
}
bool takeFee = !_swapping;
if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
takeFee = false;
}
if (takeFee && _totalFee > 0) {
uint256 fee = (amount * _totalFee) / 100;
amount = amount - fee;
super._transfer(from, address(this), fee);
}
super._transfer(from, to, amount);
}
function _adjustTaxes(bool isBuyFromLp,bool isSelltoLp) private {
_targetAFee = 0;
_targetBFee = 0;
_targetCFee = 0;
if (isBuyFromLp) {
_targetAFee = _base.targetAFeeOnBuy;
_targetBFee = _base.targetBFeeOnBuy;
_targetCFee = _base.targetCFeeOnBuy;
}
if (isSelltoLp) {
_targetAFee = _base.targetAFeeOnSell;
_targetBFee = _base.targetBFeeOnSell;
_targetCFee = _base.targetCFeeOnSell;
}
_totalFee = _targetAFee + _targetBFee + _targetCFee;
emit FeesApplied(_targetAFee, _targetBFee, _targetCFee, _totalFee);
}
function _setCustomSellTaxPeriod(CustomTaxPeriod storage map,uint8 _targetAFeeOnSell, uint8 _targetBFeeOnSell, uint8 _targetCFeeOnSell ) private {
if (map.targetAFeeOnSell != _targetAFeeOnSell) {
emit CustomTaxPeriodChange(_targetAFeeOnSell,map.targetAFeeOnSell,"targetAFeeOnSell",map.periodName);
map.targetAFeeOnSell = _targetAFeeOnSell;
}
if (map.targetBFeeOnSell != _targetBFeeOnSell) {
emit CustomTaxPeriodChange(_targetBFeeOnSell,map.targetBFeeOnSell,"targetBFeeOnSell",map.periodName);
map.targetBFeeOnSell = _targetBFeeOnSell;
}
if (map.targetCFeeOnSell != _targetCFeeOnSell) {
emit CustomTaxPeriodChange(_targetCFeeOnSell,map.targetCFeeOnSell,"targetCFeeOnSell",map.periodName);
map.targetCFeeOnSell = _targetCFeeOnSell;
}
}
function _setCustomBuyTaxPeriod(CustomTaxPeriod storage map,uint8 _targetAFeeOnBuy, uint8 _targetBFeeOnBuy, uint8 _targetCFeeOnBuy) private {
if (map.targetAFeeOnBuy != _targetAFeeOnBuy) {
emit CustomTaxPeriodChange(_targetAFeeOnBuy,map.targetAFeeOnBuy,"targetAFeeOnBuy",map.periodName);
map.targetAFeeOnBuy = _targetAFeeOnBuy;
}
if (map.targetBFeeOnBuy != _targetBFeeOnBuy) {
emit CustomTaxPeriodChange(_targetBFeeOnBuy,map.targetBFeeOnBuy,"targetBFeeOnBuy",map.periodName);
map.targetBFeeOnBuy = _targetBFeeOnBuy;
}
if (map.targetCFeeOnBuy != _targetCFeeOnBuy) {
emit CustomTaxPeriodChange(_targetCFeeOnBuy,map.targetCFeeOnBuy,"targetCFeeOnBuy",map.periodName);
map.targetCFeeOnBuy = _targetCFeeOnBuy;
}
}
function _swapAndTransfer() private {
uint256 contractBalance = balanceOf(address(this));
uint256 initialETHBalance = address(this).balance;
uint16 _totalFeePrior = _totalFee;
_swapTokensForETH(contractBalance);
uint256 ETHBalanceAfterSwap = address(this).balance - initialETHBalance;
uint256 amountETHTargetA = (ETHBalanceAfterSwap * _targetAFee) / _totalFeePrior;
uint256 amountETHTargetB = (ETHBalanceAfterSwap * _targetBFee) / _totalFeePrior;
uint256 amountETHTargetC = ETHBalanceAfterSwap - (amountETHTargetA + amountETHTargetB);
Address.sendValue(payable(targetAWallet),amountETHTargetA);
_swapETHForCustomToken(amountETHTargetB, USDC, targetBWallet);
_swapETHForCustomToken(amountETHTargetC, USDC, targetCWallet);
}
function _swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
1, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function _swapETHForCustomToken(uint256 ethAmount, address token, address wallet) private {
address[] memory path = new address[](2);
path[0] = uniswapV2Router.WETH();
path[1] = token;
uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value : ethAmount}(
1, // accept any amount of ETH
path,
wallet,
block.timestamp
);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"AutomatedMarketMakerPairChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimOverflow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":true,"internalType":"string","name":"taxType","type":"string"},{"indexed":false,"internalType":"bytes23","name":"period","type":"bytes23"}],"name":"CustomTaxPeriodChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFeesChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"identifier","type":"string"},{"indexed":false,"internalType":"uint8","name":"targetAFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"targetBFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"targetCFee","type":"uint8"}],"name":"FeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"targetAFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"targetBFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"targetCFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"totalFee","type":"uint8"}],"name":"FeesApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"MinTokenAmountBeforeSwapChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UniswapV2RouterChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"indentifier","type":"string"},{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"WalletChange","type":"event"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimETHOverflow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBaseBuyFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBaseSellFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_targetAFeeOnBuy","type":"uint8"},{"internalType":"uint8","name":"_targetBFeeOnBuy","type":"uint8"},{"internalType":"uint8","name":"_targetCFeeOnBuy","type":"uint8"}],"name":"setBaseFeesOnBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_targetAFeeOnSell","type":"uint8"},{"internalType":"uint8","name":"_targetBFeeOnSell","type":"uint8"},{"internalType":"uint8","name":"_targetCFeeOnSell","type":"uint8"}],"name":"setBaseFeesOnSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setUniswapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTargetAWallet","type":"address"},{"internalType":"address","name":"newTargetBWallet","type":"address"},{"internalType":"address","name":"newTargetCWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetAWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetBWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetCWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a0604052690878678326eac9000000600755620186a06007546019620000279190620005cc565b620000339190620005ec565b600955600d80546001600160a01b03191673397ff1542f962076d0bfe58ea045ffa2d347aca01790556040805160e081018252636261736560e01b8152600560208201819052918101829052606081018290526080810191909152600160a0820181905260c090910152600e8054690101050505056261736560981b6001600160e81b0319909116179055348015620000cb57600080fd5b506040518060400160405280601a81526020017f537072697465204f6e73656e3a204561727468205370726974650000000000008152506040518060400160405280600581526020016408a82a4a8960db1b815250600062000132620003ea60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060046200018a8382620006b3565b506005620001998282620006b3565b505060008054600a80546001600160a01b039092166001600160a01b03199283168117909155600b8054831682179055600c80549092161790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9350839163c45a01559160048083019260209291908290030181865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d91906200077f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c191906200077f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033591906200077f565b600680546001600160a01b0319166001600160a01b03858116919091179091558116608052905062000369816001620003ee565b6001600f6000620003826000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600f909252902080549091166001179055620003e2620003d96000546001600160a01b031690565b600754620004ec565b5050620007c7565b3390565b6001600160a01b03821660009081526010602052604090205481151560ff909116151503620004985760405162461bcd60e51b8152602060048201526044602482018190527f5465737420546f6b656e3a204175746f6d61746564206d61726b6574206d616b908201527f6572207061697220697320616c72656164792073657420746f20746861742076606482015263616c756560e01b608482015260a4015b60405180910390fd5b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fa666b9b2dc2c8f2d86fda7ba3a115be30d3a958fd84d359cbc6bc919df97990a91a35050565b6001600160a01b038216620005445760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200048f565b8060036000828254620005589190620007b1565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005e657620005e6620005b6565b92915050565b6000826200060a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200063a57607f821691505b6020821081036200065b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005b157600081815260208120601f850160051c810160208610156200068a5750805b601f850160051c820191505b81811015620006ab5782815560010162000696565b505050505050565b81516001600160401b03811115620006cf57620006cf6200060f565b620006e781620006e0845462000625565b8462000661565b602080601f8311600181146200071f5760008415620007065750858301515b600019600386901b1c1916600185901b178555620006ab565b600085815260208120601f198616915b8281101562000750578886015182559484019460019091019084016200072f565b50858210156200076f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200079257600080fd5b81516001600160a01b0381168114620007aa57600080fd5b9392505050565b80820180821115620005e657620005e6620005b6565b608051612532620007e3600039600061036b01526125326000f3fe6080604052600436106101e75760003560e01c806389af172511610102578063c024666811610095578063e3ed417f11610064578063e3ed417f146105e5578063e625724614610605578063f2fde38b14610625578063fe0175351461064557600080fd5b8063c02466681461053b578063cd43e2281461055b578063d2d7ad83146105af578063dd62ed3e146105c557600080fd5b8063a9059cbb116100d1578063a9059cbb146104ab578063aee50b1e146104cb578063b62496f5146104eb578063bea9849e1461051b57600080fd5b806389af1725146104385780638da5cb5b1461045857806395d89b4114610476578063a457c2d71461048b57600080fd5b8063378dc3dc1161017a578063715018a611610149578063715018a6146103c357806375cb1bd1146103d857806376dca835146103f857806389a302711461041857600080fd5b8063378dc3dc14610323578063395093511461033957806349bd5a5e1461035957806370a082311461038d57600080fd5b806318160ddd116101b657806318160ddd146102a85780631eb9caec146102c757806323b872dd146102e7578063313ce5671461030757600080fd5b806306fdde03146101f3578063095ea7b31461021e578063098df5851461024e5780631694505e1461027057600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610679565b6040516102159190612038565b60405180910390f35b34801561022a57600080fd5b5061023e61023936600461209e565b61070b565b6040519015158152602001610215565b34801561025a57600080fd5b5061026e6102693660046120ca565b610725565b005b34801561027c57600080fd5b50600654610290906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102b457600080fd5b506003545b604051908152602001610215565b3480156102d357600080fd5b50600c54610290906001600160a01b031681565b3480156102f357600080fd5b5061023e6103023660046120e3565b6108d3565b34801561031357600080fd5b5060405160128152602001610215565b34801561032f57600080fd5b506102b960075481565b34801561034557600080fd5b5061023e61035436600461209e565b6108f7565b34801561036557600080fd5b506102907f000000000000000000000000000000000000000000000000000000000000000081565b34801561039957600080fd5b506102b96103a8366004612124565b6001600160a01b031660009081526001602052604090205490565b3480156103cf57600080fd5b5061026e610919565b3480156103e457600080fd5b5061026e6103f3366004612148565b61098d565b34801561040457600080fd5b5061026e6104133660046121a9565b610c98565b34801561042457600080fd5b50600d54610290906001600160a01b031681565b34801561044457600080fd5b50600b54610290906001600160a01b031681565b34801561046457600080fd5b506000546001600160a01b0316610290565b34801561048257600080fd5b50610208610d3c565b34801561049757600080fd5b5061023e6104a636600461209e565b610d4b565b3480156104b757600080fd5b5061023e6104c636600461209e565b610dc6565b3480156104d757600080fd5b5061026e6104e63660046120ca565b610dd4565b3480156104f757600080fd5b5061023e610506366004612124565b60106020526000908152604090205460ff1681565b34801561052757600080fd5b5061026e610536366004612124565b610ea8565b34801561054757600080fd5b5061026e6105563660046121ec565b610fa5565b34801561056757600080fd5b50600e5460ff600160b81b8204811691600160c81b8104821691600160d81b909104165b6040805160ff94851681529284166020840152921691810191909152606001610215565b3480156105bb57600080fd5b506102b960095481565b3480156105d157600080fd5b506102b96105e036600461222a565b6110bd565b3480156105f157600080fd5b50600a54610290906001600160a01b031681565b34801561061157600080fd5b5061026e6106203660046121a9565b6110e8565b34801561063157600080fd5b5061026e610640366004612124565b61113c565b34801561065157600080fd5b50600e5460ff600160c01b8204811691600160d01b8104821691600160e01b9091041661058b565b60606004805461068890612258565b80601f01602080910402602001604051908101604052809291908181526020018280546106b490612258565b80156107015780601f106106d657610100808354040283529160200191610701565b820191906000526020600020905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b600033610719818585611226565b60019150505b92915050565b6000546001600160a01b031633146107585760405162461bcd60e51b815260040161074f90612292565b60405180910390fd5b478111156107c35760405162461bcd60e51b815260206004820152603260248201527f5465737420546f6b656e3a2043616e6e6f742073656e64206d6f7265207468616044820152716e20636f6e74726163742062616c616e636560701b606482015260840161074f565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610810576040519150601f19603f3d011682016040523d82523d6000602084013e610815565b606091505b5050905080156108cf57600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906122c7565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000336108e185828561134a565b6108ec8585856113c4565b506001949350505050565b60003361071981858561090a83836110bd565b61091491906122fa565b611226565b6000546001600160a01b031633146109435760405162461bcd60e51b815260040161074f90612292565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109b75760405162461bcd60e51b815260040161074f90612292565b600a546001600160a01b03848116911614610aab576001600160a01b038316610a345760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744157616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600a546040516c1d185c99d95d1055d85b1b195d609a1b81526001600160a01b0391821691851690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600a80546001600160a01b0319166001600160a01b0385161790555b600b546001600160a01b03838116911614610b9f576001600160a01b038216610b285760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744257616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600b546040516c1d185c99d95d1095d85b1b195d609a1b81526001600160a01b0391821691841690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600b80546001600160a01b0319166001600160a01b0384161790555b600c546001600160a01b03828116911614610c93576001600160a01b038116610c1c5760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744357616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600c546040516c1d185c99d95d10d5d85b1b195d609a1b81526001600160a01b0391821691831690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600c80546001600160a01b0319166001600160a01b0383161790555b505050565b6000546001600160a01b03163314610cc25760405162461bcd60e51b815260040161074f90612292565b610ccf600e84848461159e565b6040516c18985cd95199595ccb54d95b1b609a1b8152600d015b6040805191829003822060ff86811684528581166020850152841683830152905190917f0fc5b99eebb78c10fca186b25746da968ffa81b56e2a79e89fd5ed16f238b576919081900360600190a2505050565b60606005805461068890612258565b60003381610d5982866110bd565b905083811015610db95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074f565b6108ec8286868403611226565b6000336107198185856113c4565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b815260040161074f90612292565b6009548103610e755760405162461bcd60e51b815260206004820152603f60248201527f5465737420546f6b656e3a2043616e6e6f7420757064617465206d696e696d7560448201527f6d546f6b656e734265666f72655377617020746f2073616d652076616c756500606482015260840161074f565b60095460405182907f5b0491f767c1463bea8972339f785795be1a38784cc6483cf649cdcbb28c46b090600090a3600955565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161074f90612292565b6006546001600160a01b0390811690821603610f485760405162461bcd60e51b815260206004820152602f60248201527f5465737420546f6b656e3a2054686520726f7574657220616c7265616479206860448201526e61732074686174206164647265737360881b606482015260840161074f565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b815260040161074f90612292565b6001600160a01b0382166000908152600f602052604090205481151560ff90911615150361105e5760405162461bcd60e51b815260206004820152603660248201527f5465737420546f6b656e3a204163636f756e7420697320616c7265616479207460448201527568652076616c7565206f6620276578636c756465642760501b606482015260840161074f565b6001600160a01b0382166000818152600f6020908152604091829020805460ff191685151590811790915591519182527fa856ba9fdc54a5434b2359874c95612f520a2d7f858864ae98d15c1b2099ca8b910160405180910390a25050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111125760405162461bcd60e51b815260040161074f90612292565b61111f600e84848461174c565b6040516b62617365466565732d42757960a01b8152600c01610ce9565b6000546001600160a01b031633146111665760405162461bcd60e51b815260040161074f90612292565b6001600160a01b0381166111cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074f565b6001600160a01b0382166112e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061135684846110bd565b905060001981146113be57818110156113b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161074f565b6113be8484848403611226565b50505050565b6001600160a01b0383166113ea5760405162461bcd60e51b815260040161074f9061230d565b6001600160a01b0382166114105760405162461bcd60e51b815260040161074f90612352565b8060000361142457610c93838360006118f7565b6001600160a01b038084166000908152601060205260408082205492851682529020546114579160ff9081169116611a28565b6009543060009081526001602052604090205410801590819061147d575060085460ff16155b801561149457506011546301000000900460ff1615155b80156114b857506001600160a01b03831660009081526010602052604090205460ff165b156114dd576008805460ff191660011790556114d2611b77565b6008805460ff191690555b6008546001600160a01b0385166000908152600f602052604090205460ff9182161591168061152457506001600160a01b0384166000908152600f602052604090205460ff165b1561152d575060005b80801561154557506011546301000000900460ff1615155b1561158c57601154600090606490611567906301000000900460ff1686612395565b61157191906123ac565b905061157d81856123ce565b935061158a8630836118f7565b505b6115978585856118f7565b5050505050565b835460ff848116600160c01b909204161461162b576040516f1d185c99d95d1051995953db94d95b1b60821b81526010016040519081900381208554909160ff600160c01b8304811692908716916000805160206124dd8339815191529161160c9160489190911b906123e1565b60405180910390a4835460ff60c01b1916600160c01b60ff8516021784555b835460ff838116600160d01b90920416146116b8576040516f1d185c99d95d1091995953db94d95b1b60821b81526010016040519081900381208554909160ff600160d01b8304811692908616916000805160206124dd833981519152916116999160489190911b906123e1565b60405180910390a4835460ff60d01b1916600160d01b60ff8416021784555b835460ff828116600160e01b90920416146113be576040516f1d185c99d95d10d1995953db94d95b1b60821b81526010016040519081900381208554909160ff600160e01b8304811692908516916000805160206124dd833981519152916117269160489190911b906123e1565b60405180910390a4835460ff8216600160e01b0260ff60e01b1990911617845550505050565b835460ff848116600160b81b90920416146117d8576040516e746172676574414665654f6e42757960881b8152600f016040519081900381208554909160ff600160b81b8304811692908716916000805160206124dd833981519152916117b99160489190911b906123e1565b60405180910390a4835460ff60b81b1916600160b81b60ff8516021784555b835460ff838116600160c81b9092041614611864576040516e746172676574424665654f6e42757960881b8152600f016040519081900381208554909160ff600160c81b8304811692908616916000805160206124dd833981519152916118459160489190911b906123e1565b60405180910390a4835460ff60c81b1916600160c81b60ff8416021784555b835460ff828116600160d81b90920416146113be576040516e746172676574434665654f6e42757960881b8152600f016040519081900381208554909160ff600160d81b8304811692908516916000805160206124dd833981519152916118d19160489190911b906123e1565b60405180910390a4835460ff8216600160d81b0260ff60d81b1990911617845550505050565b6001600160a01b03831661191d5760405162461bcd60e51b815260040161074f9061230d565b6001600160a01b0382166119435760405162461bcd60e51b815260040161074f90612352565b6001600160a01b038316600090815260016020526040902054818110156119bb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074f565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1b9086815260200190565b60405180910390a36113be565b6011805462ffffff191690558115611a8157600e5460118054600160b81b830460ff90811661ffff1990921691909117610100600160c81b85048316021762ff00001916600160d81b9093041662010000029190911790555b8015611ace57600e5460118054600160c01b830460ff90811661ffff1990921691909117610100600160d01b85048316021762ff00001916600160e01b9093041662010000029190911790555b60115460ff620100008204811691611aee916101008204811691166123f8565b611af891906123f8565b6011805463ff000000198116630100000060ff9485168102918217938490556040805193861692861692909217835261010084048516602084015262010000840485169183019190915290910490911660608201527fe732842e0997f2bd5f26f9b53d4f761dfb12c53c4352fa949eb7b4d8522dd25b906080016108c6565b3060009081526001602052604090205460115447906301000000900460ff16611b9f83611c72565b6000611bab83476123ce565b60115490915060009061ffff841690611bc79060ff1684612395565b611bd191906123ac565b60115490915060009061ffff851690611bf290610100900460ff1685612395565b611bfc91906123ac565b90506000611c0a82846122fa565b611c1490856123ce565b600a54909150611c2d906001600160a01b031684611dcc565b600d54600b54611c4b9184916001600160a01b039182169116611ee5565b600d54600c54611c699183916001600160a01b039182169116611ee5565b50505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ca757611ca7612411565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2491906122c7565b81600181518110611d3757611d37612411565b6001600160a01b039283166020918202929092010152600654611d5d9130911684611226565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d9690859060019086903090429060040161246b565b600060405180830381600087803b158015611db057600080fd5b505af1158015611dc4573d6000803e3d6000fd5b505050505050565b80471015611e1c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e69576040519150601f19603f3d011682016040523d82523d6000602084013e611e6e565b606091505b5050905080610c935760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074f565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7391906122c7565b81600081518110611f8657611f86612411565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110611fba57611fba612411565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908690612000906001908690889042906004016124a7565b6000604051808303818588803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b505050505050505050565b600060208083528351808285015260005b8181101561206557858101830151858201604001528201612049565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461209b57600080fd5b50565b600080604083850312156120b157600080fd5b82356120bc81612086565b946020939093013593505050565b6000602082840312156120dc57600080fd5b5035919050565b6000806000606084860312156120f857600080fd5b833561210381612086565b9250602084013561211381612086565b929592945050506040919091013590565b60006020828403121561213657600080fd5b813561214181612086565b9392505050565b60008060006060848603121561215d57600080fd5b833561216881612086565b9250602084013561217881612086565b9150604084013561218881612086565b809150509250925092565b803560ff811681146121a457600080fd5b919050565b6000806000606084860312156121be57600080fd5b6121c784612193565b92506121d560208501612193565b91506121e360408501612193565b90509250925092565b600080604083850312156121ff57600080fd5b823561220a81612086565b91506020830135801515811461221f57600080fd5b809150509250929050565b6000806040838503121561223d57600080fd5b823561224881612086565b9150602083013561221f81612086565b600181811c9082168061226c57607f821691505b60208210810361228c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122d957600080fd5b815161214181612086565b634e487b7160e01b600052601160045260246000fd5b8082018082111561071f5761071f6122e4565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761071f5761071f6122e4565b6000826123c957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561071f5761071f6122e4565b68ffffffffffffffffff1991909116815260200190565b60ff818116838216019081111561071f5761071f6122e4565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156124605781516001600160a01b03168752958201959082019060010161243b565b509495945050505050565b85815284602082015260a06040820152600061248a60a0830186612427565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006124c06080830186612427565b6001600160a01b0394909416604083015250606001529291505056fe00edc71549f0cbe47086c2237ce0cf874d6897fd1d7ce43ee6b65c0230d7606ea26469706673582212209d2a24d2c944d4c169544edfb200dcaeb6c5ccf4e9e1854b5565798d6ac28ae564736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c806389af172511610102578063c024666811610095578063e3ed417f11610064578063e3ed417f146105e5578063e625724614610605578063f2fde38b14610625578063fe0175351461064557600080fd5b8063c02466681461053b578063cd43e2281461055b578063d2d7ad83146105af578063dd62ed3e146105c557600080fd5b8063a9059cbb116100d1578063a9059cbb146104ab578063aee50b1e146104cb578063b62496f5146104eb578063bea9849e1461051b57600080fd5b806389af1725146104385780638da5cb5b1461045857806395d89b4114610476578063a457c2d71461048b57600080fd5b8063378dc3dc1161017a578063715018a611610149578063715018a6146103c357806375cb1bd1146103d857806376dca835146103f857806389a302711461041857600080fd5b8063378dc3dc14610323578063395093511461033957806349bd5a5e1461035957806370a082311461038d57600080fd5b806318160ddd116101b657806318160ddd146102a85780631eb9caec146102c757806323b872dd146102e7578063313ce5671461030757600080fd5b806306fdde03146101f3578063095ea7b31461021e578063098df5851461024e5780631694505e1461027057600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610679565b6040516102159190612038565b60405180910390f35b34801561022a57600080fd5b5061023e61023936600461209e565b61070b565b6040519015158152602001610215565b34801561025a57600080fd5b5061026e6102693660046120ca565b610725565b005b34801561027c57600080fd5b50600654610290906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102b457600080fd5b506003545b604051908152602001610215565b3480156102d357600080fd5b50600c54610290906001600160a01b031681565b3480156102f357600080fd5b5061023e6103023660046120e3565b6108d3565b34801561031357600080fd5b5060405160128152602001610215565b34801561032f57600080fd5b506102b960075481565b34801561034557600080fd5b5061023e61035436600461209e565b6108f7565b34801561036557600080fd5b506102907f000000000000000000000000d2863e1090db5a762a5ecf3c57fef4ffaa06c61681565b34801561039957600080fd5b506102b96103a8366004612124565b6001600160a01b031660009081526001602052604090205490565b3480156103cf57600080fd5b5061026e610919565b3480156103e457600080fd5b5061026e6103f3366004612148565b61098d565b34801561040457600080fd5b5061026e6104133660046121a9565b610c98565b34801561042457600080fd5b50600d54610290906001600160a01b031681565b34801561044457600080fd5b50600b54610290906001600160a01b031681565b34801561046457600080fd5b506000546001600160a01b0316610290565b34801561048257600080fd5b50610208610d3c565b34801561049757600080fd5b5061023e6104a636600461209e565b610d4b565b3480156104b757600080fd5b5061023e6104c636600461209e565b610dc6565b3480156104d757600080fd5b5061026e6104e63660046120ca565b610dd4565b3480156104f757600080fd5b5061023e610506366004612124565b60106020526000908152604090205460ff1681565b34801561052757600080fd5b5061026e610536366004612124565b610ea8565b34801561054757600080fd5b5061026e6105563660046121ec565b610fa5565b34801561056757600080fd5b50600e5460ff600160b81b8204811691600160c81b8104821691600160d81b909104165b6040805160ff94851681529284166020840152921691810191909152606001610215565b3480156105bb57600080fd5b506102b960095481565b3480156105d157600080fd5b506102b96105e036600461222a565b6110bd565b3480156105f157600080fd5b50600a54610290906001600160a01b031681565b34801561061157600080fd5b5061026e6106203660046121a9565b6110e8565b34801561063157600080fd5b5061026e610640366004612124565b61113c565b34801561065157600080fd5b50600e5460ff600160c01b8204811691600160d01b8104821691600160e01b9091041661058b565b60606004805461068890612258565b80601f01602080910402602001604051908101604052809291908181526020018280546106b490612258565b80156107015780601f106106d657610100808354040283529160200191610701565b820191906000526020600020905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b600033610719818585611226565b60019150505b92915050565b6000546001600160a01b031633146107585760405162461bcd60e51b815260040161074f90612292565b60405180910390fd5b478111156107c35760405162461bcd60e51b815260206004820152603260248201527f5465737420546f6b656e3a2043616e6e6f742073656e64206d6f7265207468616044820152716e20636f6e74726163742062616c616e636560701b606482015260840161074f565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610810576040519150601f19603f3d011682016040523d82523d6000602084013e610815565b606091505b5050905080156108cf57600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906122c7565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000336108e185828561134a565b6108ec8585856113c4565b506001949350505050565b60003361071981858561090a83836110bd565b61091491906122fa565b611226565b6000546001600160a01b031633146109435760405162461bcd60e51b815260040161074f90612292565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109b75760405162461bcd60e51b815260040161074f90612292565b600a546001600160a01b03848116911614610aab576001600160a01b038316610a345760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744157616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600a546040516c1d185c99d95d1055d85b1b195d609a1b81526001600160a01b0391821691851690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600a80546001600160a01b0319166001600160a01b0385161790555b600b546001600160a01b03838116911614610b9f576001600160a01b038216610b285760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744257616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600b546040516c1d185c99d95d1095d85b1b195d609a1b81526001600160a01b0391821691841690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600b80546001600160a01b0319166001600160a01b0384161790555b600c546001600160a01b03828116911614610c93576001600160a01b038116610c1c5760405162461bcd60e51b815260206004820152602960248201527f5465737420546f6b656e3a20546865207461726765744357616c6c657420636160448201526806e6e6f7420626520360bc1b606482015260840161074f565b600c546040516c1d185c99d95d10d5d85b1b195d609a1b81526001600160a01b0391821691831690600d01604051908190038120907f4af24be54adc5e716fbcaa3fca0ad593e28dff90dffd49487c0a33b1547c6b5290600090a4600c80546001600160a01b0319166001600160a01b0383161790555b505050565b6000546001600160a01b03163314610cc25760405162461bcd60e51b815260040161074f90612292565b610ccf600e84848461159e565b6040516c18985cd95199595ccb54d95b1b609a1b8152600d015b6040805191829003822060ff86811684528581166020850152841683830152905190917f0fc5b99eebb78c10fca186b25746da968ffa81b56e2a79e89fd5ed16f238b576919081900360600190a2505050565b60606005805461068890612258565b60003381610d5982866110bd565b905083811015610db95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074f565b6108ec8286868403611226565b6000336107198185856113c4565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b815260040161074f90612292565b6009548103610e755760405162461bcd60e51b815260206004820152603f60248201527f5465737420546f6b656e3a2043616e6e6f7420757064617465206d696e696d7560448201527f6d546f6b656e734265666f72655377617020746f2073616d652076616c756500606482015260840161074f565b60095460405182907f5b0491f767c1463bea8972339f785795be1a38784cc6483cf649cdcbb28c46b090600090a3600955565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161074f90612292565b6006546001600160a01b0390811690821603610f485760405162461bcd60e51b815260206004820152602f60248201527f5465737420546f6b656e3a2054686520726f7574657220616c7265616479206860448201526e61732074686174206164647265737360881b606482015260840161074f565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b815260040161074f90612292565b6001600160a01b0382166000908152600f602052604090205481151560ff90911615150361105e5760405162461bcd60e51b815260206004820152603660248201527f5465737420546f6b656e3a204163636f756e7420697320616c7265616479207460448201527568652076616c7565206f6620276578636c756465642760501b606482015260840161074f565b6001600160a01b0382166000818152600f6020908152604091829020805460ff191685151590811790915591519182527fa856ba9fdc54a5434b2359874c95612f520a2d7f858864ae98d15c1b2099ca8b910160405180910390a25050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111125760405162461bcd60e51b815260040161074f90612292565b61111f600e84848461174c565b6040516b62617365466565732d42757960a01b8152600c01610ce9565b6000546001600160a01b031633146111665760405162461bcd60e51b815260040161074f90612292565b6001600160a01b0381166111cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074f565b6001600160a01b0382166112e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061135684846110bd565b905060001981146113be57818110156113b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161074f565b6113be8484848403611226565b50505050565b6001600160a01b0383166113ea5760405162461bcd60e51b815260040161074f9061230d565b6001600160a01b0382166114105760405162461bcd60e51b815260040161074f90612352565b8060000361142457610c93838360006118f7565b6001600160a01b038084166000908152601060205260408082205492851682529020546114579160ff9081169116611a28565b6009543060009081526001602052604090205410801590819061147d575060085460ff16155b801561149457506011546301000000900460ff1615155b80156114b857506001600160a01b03831660009081526010602052604090205460ff165b156114dd576008805460ff191660011790556114d2611b77565b6008805460ff191690555b6008546001600160a01b0385166000908152600f602052604090205460ff9182161591168061152457506001600160a01b0384166000908152600f602052604090205460ff165b1561152d575060005b80801561154557506011546301000000900460ff1615155b1561158c57601154600090606490611567906301000000900460ff1686612395565b61157191906123ac565b905061157d81856123ce565b935061158a8630836118f7565b505b6115978585856118f7565b5050505050565b835460ff848116600160c01b909204161461162b576040516f1d185c99d95d1051995953db94d95b1b60821b81526010016040519081900381208554909160ff600160c01b8304811692908716916000805160206124dd8339815191529161160c9160489190911b906123e1565b60405180910390a4835460ff60c01b1916600160c01b60ff8516021784555b835460ff838116600160d01b90920416146116b8576040516f1d185c99d95d1091995953db94d95b1b60821b81526010016040519081900381208554909160ff600160d01b8304811692908616916000805160206124dd833981519152916116999160489190911b906123e1565b60405180910390a4835460ff60d01b1916600160d01b60ff8416021784555b835460ff828116600160e01b90920416146113be576040516f1d185c99d95d10d1995953db94d95b1b60821b81526010016040519081900381208554909160ff600160e01b8304811692908516916000805160206124dd833981519152916117269160489190911b906123e1565b60405180910390a4835460ff8216600160e01b0260ff60e01b1990911617845550505050565b835460ff848116600160b81b90920416146117d8576040516e746172676574414665654f6e42757960881b8152600f016040519081900381208554909160ff600160b81b8304811692908716916000805160206124dd833981519152916117b99160489190911b906123e1565b60405180910390a4835460ff60b81b1916600160b81b60ff8516021784555b835460ff838116600160c81b9092041614611864576040516e746172676574424665654f6e42757960881b8152600f016040519081900381208554909160ff600160c81b8304811692908616916000805160206124dd833981519152916118459160489190911b906123e1565b60405180910390a4835460ff60c81b1916600160c81b60ff8416021784555b835460ff828116600160d81b90920416146113be576040516e746172676574434665654f6e42757960881b8152600f016040519081900381208554909160ff600160d81b8304811692908516916000805160206124dd833981519152916118d19160489190911b906123e1565b60405180910390a4835460ff8216600160d81b0260ff60d81b1990911617845550505050565b6001600160a01b03831661191d5760405162461bcd60e51b815260040161074f9061230d565b6001600160a01b0382166119435760405162461bcd60e51b815260040161074f90612352565b6001600160a01b038316600090815260016020526040902054818110156119bb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074f565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1b9086815260200190565b60405180910390a36113be565b6011805462ffffff191690558115611a8157600e5460118054600160b81b830460ff90811661ffff1990921691909117610100600160c81b85048316021762ff00001916600160d81b9093041662010000029190911790555b8015611ace57600e5460118054600160c01b830460ff90811661ffff1990921691909117610100600160d01b85048316021762ff00001916600160e01b9093041662010000029190911790555b60115460ff620100008204811691611aee916101008204811691166123f8565b611af891906123f8565b6011805463ff000000198116630100000060ff9485168102918217938490556040805193861692861692909217835261010084048516602084015262010000840485169183019190915290910490911660608201527fe732842e0997f2bd5f26f9b53d4f761dfb12c53c4352fa949eb7b4d8522dd25b906080016108c6565b3060009081526001602052604090205460115447906301000000900460ff16611b9f83611c72565b6000611bab83476123ce565b60115490915060009061ffff841690611bc79060ff1684612395565b611bd191906123ac565b60115490915060009061ffff851690611bf290610100900460ff1685612395565b611bfc91906123ac565b90506000611c0a82846122fa565b611c1490856123ce565b600a54909150611c2d906001600160a01b031684611dcc565b600d54600b54611c4b9184916001600160a01b039182169116611ee5565b600d54600c54611c699183916001600160a01b039182169116611ee5565b50505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ca757611ca7612411565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2491906122c7565b81600181518110611d3757611d37612411565b6001600160a01b039283166020918202929092010152600654611d5d9130911684611226565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d9690859060019086903090429060040161246b565b600060405180830381600087803b158015611db057600080fd5b505af1158015611dc4573d6000803e3d6000fd5b505050505050565b80471015611e1c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e69576040519150601f19603f3d011682016040523d82523d6000602084013e611e6e565b606091505b5050905080610c935760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074f565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7391906122c7565b81600081518110611f8657611f86612411565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110611fba57611fba612411565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908690612000906001908690889042906004016124a7565b6000604051808303818588803b15801561201957600080fd5b505af115801561202d573d6000803e3d6000fd5b505050505050505050565b600060208083528351808285015260005b8181101561206557858101830151858201604001528201612049565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461209b57600080fd5b50565b600080604083850312156120b157600080fd5b82356120bc81612086565b946020939093013593505050565b6000602082840312156120dc57600080fd5b5035919050565b6000806000606084860312156120f857600080fd5b833561210381612086565b9250602084013561211381612086565b929592945050506040919091013590565b60006020828403121561213657600080fd5b813561214181612086565b9392505050565b60008060006060848603121561215d57600080fd5b833561216881612086565b9250602084013561217881612086565b9150604084013561218881612086565b809150509250925092565b803560ff811681146121a457600080fd5b919050565b6000806000606084860312156121be57600080fd5b6121c784612193565b92506121d560208501612193565b91506121e360408501612193565b90509250925092565b600080604083850312156121ff57600080fd5b823561220a81612086565b91506020830135801515811461221f57600080fd5b809150509250929050565b6000806040838503121561223d57600080fd5b823561224881612086565b9150602083013561221f81612086565b600181811c9082168061226c57607f821691505b60208210810361228c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122d957600080fd5b815161214181612086565b634e487b7160e01b600052601160045260246000fd5b8082018082111561071f5761071f6122e4565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761071f5761071f6122e4565b6000826123c957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561071f5761071f6122e4565b68ffffffffffffffffff1991909116815260200190565b60ff818116838216019081111561071f5761071f6122e4565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156124605781516001600160a01b03168752958201959082019060010161243b565b509495945050505050565b85815284602082015260a06040820152600061248a60a0830186612427565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006124c06080830186612427565b6001600160a01b0394909416604083015250606001529291505056fe00edc71549f0cbe47086c2237ce0cf874d6897fd1d7ce43ee6b65c0230d7606ea26469706673582212209d2a24d2c944d4c169544edfb200dcaeb6c5ccf4e9e1854b5565798d6ac28ae564736f6c63430008130033
Deployed Bytecode Sourcemap
12438:11766:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8034:201;;;;;;;;;;-1:-1:-1;8034:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8034:201:0;1023:187:1;18146:346:0;;;;;;;;;;-1:-1:-1;18146:346:0;;;;;:::i;:::-;;:::i;:::-;;12523:30;;;;;;;;;;-1:-1:-1;12523:30:0;;;;-1:-1:-1;;;;;12523:30:0;;;;;;-1:-1:-1;;;;;1579:32:1;;;1561:51;;1549:2;1534:18;12523:30:0;1400:218:1;7423:108:0;;;;;;;;;;-1:-1:-1;7511:12:0;;7423:108;;;1769:25:1;;;1757:2;1742:18;7423:108:0;1623:177:1;12956:28:0;;;;;;;;;;-1:-1:-1;12956:28:0;;;;-1:-1:-1;;;;;12956:28:0;;;8245:295;;;;;;;;;;-1:-1:-1;8245:295:0;;;;;:::i;:::-;;:::i;7322:93::-;;;;;;;;;;-1:-1:-1;7322:93:0;;7405:2;2616:36:1;;2604:2;2589:18;7322:93:0;2474:184:1;12724:47:0;;;;;;;;;;;;;;;;8548:238;;;;;;;;;;-1:-1:-1;8548:238:0;;;;;:::i;:::-;;:::i;12560:38::-;;;;;;;;;;;;;;;7539:127;;;;;;;;;;-1:-1:-1;7539:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7640:18:0;7613:7;7640:18;;;:9;:18;;;;;;;7539:127;6290:148;;;;;;;;;;;;;:::i;15839:992::-;;;;;;;;;;-1:-1:-1;15839:992:0;;;;;:::i;:::-;;:::i;17171:325::-;;;;;;;;;;-1:-1:-1;17171:325:0;;;;;:::i;:::-;;:::i;12993:64::-;;;;;;;;;;-1:-1:-1;12993:64:0;;;;-1:-1:-1;;;;;12993:64:0;;;12921:28;;;;;;;;;;-1:-1:-1;12921:28:0;;;;-1:-1:-1;;;;;12921:28:0;;;6076:79;;;;;;;;;;-1:-1:-1;6114:7:0;6141:6;-1:-1:-1;;;;;6141:6:0;6076:79;;7211:104;;;;;;;;;;;;;:::i;8794:436::-;;;;;;;;;;-1:-1:-1;8794:436:0;;;;;:::i;:::-;;:::i;7674:193::-;;;;;;;;;;-1:-1:-1;7674:193:0;;;;;:::i;:::-;;:::i;17812:328::-;;;;;;;;;;-1:-1:-1;17812:328:0;;;;;:::i;:::-;;:::i;13488:57::-;;;;;;;;;;-1:-1:-1;13488:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17502:304;;;;;;;;;;-1:-1:-1;17502:304:0;;;;;:::i;:::-;;:::i;15528:305::-;;;;;;;;;;-1:-1:-1;15528:305:0;;;;;:::i;:::-;;:::i;18516:163::-;;;;;;;;;;-1:-1:-1;18604:5:0;:21;;-1:-1:-1;;;18604:21:0;;;;;-1:-1:-1;;;18626:21:0;;;;;-1:-1:-1;;;18649:21:0;;;;18516:163;;;;4578:4:1;4566:17;;;4548:36;;4620:17;;;4615:2;4600:18;;4593:45;4674:17;;4654:18;;;4647:45;;;;4536:2;4521:18;18516:163:0;4358:340:1;12809:68:0;;;;;;;;;;;;;;;;7875:151;;;;;;;;;;-1:-1:-1;7875:151:0;;;;;:::i;:::-;;:::i;12886:28::-;;;;;;;;;;-1:-1:-1;12886:28:0;;;;-1:-1:-1;;;;;12886:28:0;;;16855:310;;;;;;;;;;-1:-1:-1;16855:310:0;;;;;:::i;:::-;;:::i;6446:244::-;;;;;;;;;;-1:-1:-1;6446:244:0;;;;;:::i;:::-;;:::i;18685:166::-;;;;;;;;;;-1:-1:-1;18773:5:0;:22;;-1:-1:-1;;;18773:22:0;;;;;-1:-1:-1;;;18796:22:0;;;;;-1:-1:-1;;;18820:22:0;;;;18685:166;;7103:100;7157:13;7190:5;7183:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:100;:::o;8034:201::-;8117:4;5489:10;8173:32;5489:10;8189:7;8198:6;8173:8;:32::i;:::-;8223:4;8216:11;;;8034:201;;;;;:::o;18146:346::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;;;;;;;;;18236:21:::1;18226:6;:31;;18218:94;;;::::0;-1:-1:-1;;;18218:94:0;;6044:2:1;18218:94:0::1;::::0;::::1;6026:21:1::0;6083:2;6063:18;;;6056:30;6122:34;6102:18;;;6095:62;-1:-1:-1;;;6173:18:1;;;6166:48;6231:19;;18218:94:0::1;5842:414:1::0;18218:94:0::1;18324:12;6141:6:::0;;18342:42:::1;::::0;-1:-1:-1;;;;;6141:6:0;;;;18372;;18324:12;18342:42;18324:12;18342:42;18372:6;6141;18342:42:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18323:61;;;18399:7;18395:90;;;18442:15;::::0;:22:::1;::::0;;-1:-1:-1;;;18442:22:0;;;;18428:45:::1;::::0;-1:-1:-1;;;;;18442:15:0::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18428:45;::::0;;-1:-1:-1;;;;;6919:32:1;;;6901:51;;6983:2;6968:18;;6961:34;;;6874:18;18428:45:0::1;;;;;;;;18395:90;18207:285;18146:346:::0;:::o;8245:295::-;8376:4;5489:10;8434:38;8450:4;5489:10;8465:6;8434:15;:38::i;:::-;8483:27;8493:4;8499:2;8503:6;8483:9;:27::i;:::-;-1:-1:-1;8528:4:0;;8245:295;-1:-1:-1;;;;8245:295:0:o;8548:238::-;8636:4;5489:10;8692:64;5489:10;8708:7;8745:10;8717:25;5489:10;8708:7;8717:9;:25::i;:::-;:38;;;;:::i;:::-;8692:8;:64::i;6290:148::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;6397:1:::1;6381:6:::0;;6360:40:::1;::::0;-1:-1:-1;;;;;6381:6:0;;::::1;::::0;6360:40:::1;::::0;6397:1;;6360:40:::1;6428:1;6411:19:::0;;-1:-1:-1;;;;;;6411:19:0::1;::::0;;6290:148::o;15839:992::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;15971:13:::1;::::0;-1:-1:-1;;;;;15971:33:0;;::::1;:13:::0;::::1;:33;15967:279;;-1:-1:-1::0;;;;;16029:30:0;::::1;16021:84;;;::::0;-1:-1:-1;;;16021:84:0;;7470:2:1;16021:84:0::1;::::0;::::1;7452:21:1::0;7509:2;7489:18;;;7482:30;7548:34;7528:18;;;7521:62;-1:-1:-1;;;7599:18:1;;;7592:39;7648:19;;16021:84:0::1;7268:405:1::0;16021:84:0::1;16173:13;::::0;16125:62:::1;::::0;-1:-1:-1;;;7880:28:1;;-1:-1:-1;;;;;16173:13:0;;::::1;::::0;16125:62;::::1;::::0;7933:2:1;7924:12;16125:62:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;16202:13;:32:::0;;-1:-1:-1;;;;;;16202:32:0::1;-1:-1:-1::0;;;;;16202:32:0;::::1;;::::0;;15967:279:::1;16260:13;::::0;-1:-1:-1;;;;;16260:33:0;;::::1;:13:::0;::::1;:33;16256:279;;-1:-1:-1::0;;;;;16318:30:0;::::1;16310:84;;;::::0;-1:-1:-1;;;16310:84:0;;8149:2:1;16310:84:0::1;::::0;::::1;8131:21:1::0;8188:2;8168:18;;;8161:30;8227:34;8207:18;;;8200:62;-1:-1:-1;;;8278:18:1;;;8271:39;8327:19;;16310:84:0::1;7947:405:1::0;16310:84:0::1;16462:13;::::0;16414:62:::1;::::0;-1:-1:-1;;;8559:28:1;;-1:-1:-1;;;;;16462:13:0;;::::1;::::0;16414:62;::::1;::::0;8612:2:1;8603:12;16414:62:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;16491:13;:32:::0;;-1:-1:-1;;;;;;16491:32:0::1;-1:-1:-1::0;;;;;16491:32:0;::::1;;::::0;;16256:279:::1;16549:13;::::0;-1:-1:-1;;;;;16549:33:0;;::::1;:13:::0;::::1;:33;16545:279;;-1:-1:-1::0;;;;;16607:30:0;::::1;16599:84;;;::::0;-1:-1:-1;;;16599:84:0;;8828:2:1;16599:84:0::1;::::0;::::1;8810:21:1::0;8867:2;8847:18;;;8840:30;8906:34;8886:18;;;8879:62;-1:-1:-1;;;8957:18:1;;;8950:39;9006:19;;16599:84:0::1;8626:405:1::0;16599:84:0::1;16751:13;::::0;16703:62:::1;::::0;-1:-1:-1;;;9238:28:1;;-1:-1:-1;;;;;16751:13:0;;::::1;::::0;16703:62;::::1;::::0;9291:2:1;9282:12;16703:62:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;16780:13;:32:::0;;-1:-1:-1;;;;;;16780:32:0::1;-1:-1:-1::0;;;;;16780:32:0;::::1;;::::0;;16545:279:::1;15839:992:::0;;;:::o;17171:325::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;17304:86:::1;17328:5;17334:17;17353;17372;17304:23;:86::i;:::-;17406:82;::::0;-1:-1:-1;;;9507:28:1;;9560:2;9551:12;17406:82:0::1;;::::0;;;;;::::1;::::0;;4578:4:1;4566:17;;;4548:36;;4620:17;;;4615:2;4600:18;;4593:45;4674:17;;4654:18;;;4647:45;17406:82:0;;;;::::1;::::0;;;;;4536:2:1;17406:82:0;;::::1;17171:325:::0;;;:::o;7211:104::-;7267:13;7300:7;7293:14;;;;;:::i;8794:436::-;8887:4;5489:10;8887:4;8970:25;5489:10;8987:7;8970:9;:25::i;:::-;8943:52;;9034:15;9014:16;:35;;9006:85;;;;-1:-1:-1;;;9006:85:0;;9776:2:1;9006:85:0;;;9758:21:1;9815:2;9795:18;;;9788:30;9854:34;9834:18;;;9827:62;-1:-1:-1;;;9905:18:1;;;9898:35;9950:19;;9006:85:0;9574:401:1;9006:85:0;9127:60;9136:5;9143:7;9171:15;9152:16;:34;9127:8;:60::i;7674:193::-;7753:4;5489:10;7809:28;5489:10;7826:2;7830:6;7809:9;:28::i;17812:328::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;17916:23:::1;;17904:8;:35:::0;17896:110:::1;;;::::0;-1:-1:-1;;;17896:110:0;;10182:2:1;17896:110:0::1;::::0;::::1;10164:21:1::0;10221:2;10201:18;;;10194:30;10260:34;10240:18;;;10233:62;10331:33;10311:18;;;10304:61;10382:19;;17896:110:0::1;9980:427:1::0;17896:110:0::1;18063:23;::::0;18022:65:::1;::::0;18053:8;;18022:65:::1;::::0;;;::::1;18098:23;:34:::0;17812:328::o;17502:304::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;17608:15:::1;::::0;-1:-1:-1;;;;;17608:15:0;;::::1;17586:38:::0;;::::1;::::0;17578:97:::1;;;::::0;-1:-1:-1;;;17578:97:0;;10614:2:1;17578:97:0::1;::::0;::::1;10596:21:1::0;10653:2;10633:18;;;10626:30;10692:34;10672:18;;;10665:62;-1:-1:-1;;;10743:18:1;;;10736:45;10798:19;;17578:97:0::1;10412:411:1::0;17578:97:0::1;17733:15;::::0;17691:59:::1;::::0;-1:-1:-1;;;;;17733:15:0;;::::1;::::0;17691:59;::::1;::::0;::::1;::::0;17733:15:::1;::::0;17691:59:::1;17761:15;:37:::0;;-1:-1:-1;;;;;;17761:37:0::1;-1:-1:-1::0;;;;;17761:37:0;;;::::1;::::0;;;::::1;::::0;;17502:304::o;15528:305::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15623:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:39;::::1;;:27;::::0;;::::1;:39;;::::0;15615:105:::1;;;::::0;-1:-1:-1;;;15615:105:0;;11030:2:1;15615:105:0::1;::::0;::::1;11012:21:1::0;11069:2;11049:18;;;11042:30;11108:34;11088:18;;;11081:62;-1:-1:-1;;;11159:18:1;;;11152:52;11221:19;;15615:105:0::1;10828:418:1::0;15615:105:0::1;-1:-1:-1::0;;;;;15731:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:38;;-1:-1:-1;;15731:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15785:40;;1163:41:1;;;15785:40:0::1;::::0;1136:18:1;15785:40:0::1;;;;;;;15528:305:::0;;:::o;7875:151::-;-1:-1:-1;;;;;7991:18:0;;;7964:7;7991:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7875:151::o;16855:310::-;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;16983:81:::1;17006:5;17012:16;17029;17047;16983:22;:81::i;:::-;17080:77;::::0;-1:-1:-1;;;11453:27:1;;11505:2;11496:12;17080:77:0::1;11251:263:1::0;6446:244:0;6203:6;;-1:-1:-1;;;;;6203:6:0;5489:10;6203:22;6195:67;;;;-1:-1:-1;;;6195:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6535:22:0;::::1;6527:73;;;::::0;-1:-1:-1;;;6527:73:0;;11721:2:1;6527:73:0::1;::::0;::::1;11703:21:1::0;11760:2;11740:18;;;11733:30;11799:34;11779:18;;;11772:62;-1:-1:-1;;;11850:18:1;;;11843:36;11896:19;;6527:73:0::1;11519:402:1::0;6527:73:0::1;6637:6;::::0;;6616:38:::1;::::0;-1:-1:-1;;;;;6616:38:0;;::::1;::::0;6637:6;::::1;::::0;6616:38:::1;::::0;::::1;6665:6;:17:::0;;-1:-1:-1;;;;;;6665:17:0::1;-1:-1:-1::0;;;;;6665:17:0;;;::::1;::::0;;;::::1;::::0;;6446:244::o;11325:380::-;-1:-1:-1;;;;;11461:19:0;;11453:68;;;;-1:-1:-1;;;11453:68:0;;12128:2:1;11453:68:0;;;12110:21:1;12167:2;12147:18;;;12140:30;12206:34;12186:18;;;12179:62;-1:-1:-1;;;12257:18:1;;;12250:34;12301:19;;11453:68:0;11926:400:1;11453:68:0;-1:-1:-1;;;;;11540:21:0;;11532:68;;;;-1:-1:-1;;;11532:68:0;;12533:2:1;11532:68:0;;;12515:21:1;12572:2;12552:18;;;12545:30;12611:34;12591:18;;;12584:62;-1:-1:-1;;;12662:18:1;;;12655:32;12704:19;;11532:68:0;12331:398:1;11532:68:0;-1:-1:-1;;;;;11613:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11665:32;;1769:25:1;;;11665:32:0;;1742:18:1;11665:32:0;;;;;;;11325:380;;;:::o;11713:453::-;11848:24;11875:25;11885:5;11892:7;11875:9;:25::i;:::-;11848:52;;-1:-1:-1;;11915:16:0;:37;11911:248;;11997:6;11977:16;:26;;11969:68;;;;-1:-1:-1;;;11969:68:0;;12936:2:1;11969:68:0;;;12918:21:1;12975:2;12955:18;;;12948:30;13014:31;12994:18;;;12987:59;13063:18;;11969:68:0;12734:353:1;11969:68:0;12081:51;12090:5;12097:7;12125:6;12106:16;:25;12081:8;:51::i;:::-;11837:329;11713:453;;;:::o;18870:1197::-;-1:-1:-1;;;;;19002:18:0;;18994:68;;;;-1:-1:-1;;;18994:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19081:16:0;;19073:64;;;;-1:-1:-1;;;19073:64:0;;;;;;;:::i;:::-;19154:6;19164:1;19154:11;19150:93;;19182:28;19198:4;19204:2;19208:1;19182:15;:28::i;19150:93::-;-1:-1:-1;;;;;19268:31:0;;;;;;;:25;:31;;;;;;;19301:29;;;;;;;;19255:76;;19268:31;;;;;19301:29;19255:12;:76::i;:::-;19385:23;;19375:4;19342:12;7640:18;;;:9;:18;;;;;;-1:-1:-1;19357:51:0;;;;;19439:34;;-1:-1:-1;19464:9:0;;;;19463:10;19439:34;:64;;;;-1:-1:-1;19490:9:0;;;;;;;:13;;19439:64;:110;;;;-1:-1:-1;;;;;;19520:29:0;;;;;;:25;:29;;;;;;;;19439:110;19421:248;;;19576:9;:16;;-1:-1:-1;;19576:16:0;19588:4;19576:16;;;19607:18;:16;:18::i;:::-;19640:9;:17;;-1:-1:-1;;19640:17:0;;;19421:248;19697:9;;-1:-1:-1;;;;;19723:24:0;;19681:12;19723:24;;;:18;:24;;;;;;19697:9;;;;19696:10;;19723:24;;:50;;-1:-1:-1;;;;;;19751:22:0;;;;;;:18;:22;;;;;;;;19723:50;19719:98;;;-1:-1:-1;19800:5:0;19719:98;19831:7;:24;;;;-1:-1:-1;19842:9:0;;;;;;;:13;;19831:24;19827:189;;;19896:9;;19872:11;;19909:3;;19887:18;;19896:9;;;;;19887:6;:18;:::i;:::-;19886:26;;;;:::i;:::-;19872:40;-1:-1:-1;19936:12:0;19872:40;19936:6;:12;:::i;:::-;19927:21;;19963:41;19979:4;19993;20000:3;19963:15;:41::i;:::-;19857:159;19827:189;20026:33;20042:4;20048:2;20052:6;20026:15;:33::i;:::-;18983:1084;;18870:1197;;;:::o;20750:870::-;20910:20;;:41;;;;-1:-1:-1;;;20910:20:0;;;;:41;20906:229;;20973:95;;-1:-1:-1;;;14632:31:1;;14688:2;14679:12;20973:95:0;;;;;;;;21013:20;;20973:95;;21013:20;-1:-1:-1;;;21013:20:0;;;;;20973:95;;;;-1:-1:-1;;;;;;;;;;;20973:95:0;;;21053:14;;;;;;20973:95;:::i;:::-;;;;;;;;21083:40;;-1:-1:-1;;;;21083:40:0;-1:-1:-1;;;21083:40:0;;;;;;;20906:229;21149:20;;:41;;;;-1:-1:-1;;;21149:20:0;;;;:41;21145:229;;21212:95;;-1:-1:-1;;;15118:31:1;;15174:2;15165:12;21212:95:0;;;;;;;;21252:20;;21212:95;;21252:20;-1:-1:-1;;;21252:20:0;;;;;21212:95;;;;-1:-1:-1;;;;;;;;;;;21212:95:0;;;21292:14;;;;;;21212:95;:::i;:::-;;;;;;;;21322:40;;-1:-1:-1;;;;21322:40:0;-1:-1:-1;;;21322:40:0;;;;;;;21145:229;21388:20;;:41;;;;-1:-1:-1;;;21388:20:0;;;;:41;21384:229;;21451:95;;-1:-1:-1;;;15390:31:1;;15446:2;15437:12;21451:95:0;;;;;;;;21491:20;;21451:95;;21491:20;-1:-1:-1;;;21491:20:0;;;;;21451:95;;;;-1:-1:-1;;;;;;;;;;;21451:95:0;;;21531:14;;;;;;21451:95;:::i;:::-;;;;;;;;21561:40;;;;;-1:-1:-1;;;21561:40:0;-1:-1:-1;;;;21561:40:0;;;;;;20750:870;;;;:::o;21626:844::-;21781:19;;:39;;;;-1:-1:-1;;;21781:19:0;;;;:39;21777:222;;21842:92;;-1:-1:-1;;;15662:30:1;;15717:2;15708:12;21842:92:0;;;;;;;;21881:19;;21842:92;;21881:19;-1:-1:-1;;;21881:19:0;;;;;21842:92;;;;-1:-1:-1;;;;;;;;;;;21842:92:0;;;21919:14;;;;;;21842:92;:::i;:::-;;;;;;;;21949:38;;-1:-1:-1;;;;21949:38:0;-1:-1:-1;;;21949:38:0;;;;;;;21777:222;22013:19;;:39;;;;-1:-1:-1;;;22013:19:0;;;;:39;22009:222;;22074:92;;-1:-1:-1;;;15933:30:1;;15988:2;15979:12;22074:92:0;;;;;;;;22113:19;;22074:92;;22113:19;-1:-1:-1;;;22113:19:0;;;;;22074:92;;;;-1:-1:-1;;;;;;;;;;;22074:92:0;;;22151:14;;;;;;22074:92;:::i;:::-;;;;;;;;22181:38;;-1:-1:-1;;;;22181:38:0;-1:-1:-1;;;22181:38:0;;;;;;;22009:222;22245:19;;:39;;;;-1:-1:-1;;;22245:19:0;;;;:39;22241:222;;22306:92;;-1:-1:-1;;;16204:30:1;;16259:2;16250:12;22306:92:0;;;;;;;;22345:19;;22306:92;;22345:19;-1:-1:-1;;;22345:19:0;;;;;22306:92;;;;-1:-1:-1;;;;;;;;;;;22306:92:0;;;22383:14;;;;;;22306:92;:::i;:::-;;;;;;;;22413:38;;;;;-1:-1:-1;;;22413:38:0;-1:-1:-1;;;;22413:38:0;;;;;;21626:844;;;;:::o;9238:840::-;-1:-1:-1;;;;;9369:18:0;;9361:68;;;;-1:-1:-1;;;9361:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9448:16:0;;9440:64;;;;-1:-1:-1;;;9440:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9590:15:0;;9568:19;9590:15;;;:9;:15;;;;;;9624:21;;;;9616:72;;;;-1:-1:-1;;;9616:72:0;;16475:2:1;9616:72:0;;;16457:21:1;16514:2;16494:18;;;16487:30;16553:34;16533:18;;;16526:62;-1:-1:-1;;;16604:18:1;;;16597:36;16650:19;;9616:72:0;16273:402:1;9616:72:0;-1:-1:-1;;;;;9724:15:0;;;;;;;:9;:15;;;;;;9742:20;;;9724:38;;9942:13;;;;;;;;;;:23;;;;;;9994:26;;;;;;9756:6;1769:25:1;;1757:2;1742:18;;1623:177;9994:26:0;;;;;;;;10033:37;15839:992;20073:671;20148:11;:15;;-1:-1:-1;;20200:15:0;;;20228:179;;;;20274:5;:21;20260:11;:35;;-1:-1:-1;;;20274:21:0;;;;;;-1:-1:-1;;20310:35:0;;;;;;;20274:21;-1:-1:-1;;;20324:21:0;;;;20310:35;;-1:-1:-1;;20360:35:0;-1:-1:-1;;;20374:21:0;;;;20360:35;;;;;;;;20228:179;20421:10;20417:181;;;20462:5;:22;20448:11;:36;;-1:-1:-1;;;20462:22:0;;;;;;-1:-1:-1;;20499:36:0;;;;;;;20462:22;-1:-1:-1;;;20513:22:0;;;;20499:36;;-1:-1:-1;;20550:36:0;-1:-1:-1;;;20564:22:0;;;;20550:36;;;;;;;;20417:181;20648:11;;;;;;;;;20620:25;;20648:11;20634;;;;;20620;:25;:::i;:::-;:39;;;;:::i;:::-;20608:9;:51;;-1:-1:-1;;20608:51:0;;;;;;;;;;;;;;;;20675:61;;;20687:11;;;;;;;;;;17048:36:1;;20608:51:0;20700:11;;;;17115:2:1;17100:18;;17093:45;20713:11:0;;;;;17154:18:1;;;17147:45;;;;20726:9:0;;;;;;17223:2:1;17208:18;;17201:45;20675:61:0;;17035:3:1;17020:19;20675:61:0;16833:419:1;22476:834:0;22567:4;22523:23;7640:18;;;:9;:18;;;;;;22668:9;;22612:21;;22668:9;;;;;22690:34;7640:18;22690:17;:34::i;:::-;22737:27;22767:41;22791:17;22767:21;:41;:::i;:::-;22869:11;;22737:71;;-1:-1:-1;22819:24:0;;22846:52;;;;22847:33;;22869:11;;22737:71;22847:33;:::i;:::-;22846:52;;;;:::i;:::-;22959:11;;22819:79;;-1:-1:-1;22909:24:0;;22936:52;;;;22937:33;;22959:11;;;;;22937:19;:33;:::i;:::-;22936:52;;;;:::i;:::-;22909:79;-1:-1:-1;22999:24:0;23049:35;22909:79;23049:16;:35;:::i;:::-;23026:59;;:19;:59;:::i;:::-;23124:13;;22999:86;;-1:-1:-1;23098:58:0;;-1:-1:-1;;;;;23124:13:0;23139:16;23098:17;:58::i;:::-;23210:4;;23216:13;;23169:61;;23192:16;;-1:-1:-1;;;;;23210:4:0;;;;23216:13;23169:22;:61::i;:::-;23282:4;;23288:13;;23241:61;;23264:16;;-1:-1:-1;;;;;23282:4:0;;;;23288:13;23241:22;:61::i;:::-;22512:798;;;;;;;22476:834::o;23316:500::-;23407:16;;;23421:1;23407:16;;;;;;;;23383:21;;23407:16;;;;;;;;;;-1:-1:-1;23407:16:0;23383:40;;23452:4;23434;23439:1;23434:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23434:23:0;;;:7;;;;;;;;;;:23;;;;23478:15;;:22;;;-1:-1:-1;;;23478:22:0;;;;:15;;;;;:20;;:22;;;;;23434:7;;23478:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23468:4;23473:1;23468:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23468:32:0;;;:7;;;;;;;;;:32;23543:15;;23511:62;;23528:4;;23543:15;23561:11;23511:8;:62::i;:::-;23584:15;;:224;;-1:-1:-1;;;23584:224:0;;-1:-1:-1;;;;;23584:15:0;;;;:66;;:224;;23665:11;;23584:15;;23735:4;;23762;;23782:15;;23584:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23372:444;23316:500;:::o;2349:322::-;2463:6;2438:21;:31;;2425:86;;;;-1:-1:-1;;;2425:86:0;;18776:2:1;2425:86:0;;;18758:21:1;18815:2;18795:18;;;18788:30;18854:31;18834:18;;;18827:59;18903:18;;2425:86:0;18574:353:1;2425:86:0;2519:12;2537:9;-1:-1:-1;;;;;2537:14:0;2559:6;2537:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:52;;;2588:7;2575:91;;;;-1:-1:-1;;;2575:91:0;;19134:2:1;2575:91:0;;;19116:21:1;19173:2;19153:18;;;19146:30;19212:34;19192:18;;;19185:62;19283:28;19263:18;;;19256:56;19329:19;;2575:91:0;18932:422:1;23822:379:0;23947:16;;;23961:1;23947:16;;;;;;;;23923:21;;23947:16;;;;;;;;-1:-1:-1;;23978:15:0;;:22;;;-1:-1:-1;;;23978:22:0;;;;23923:40;;-1:-1:-1;;;;;;23978:15:0;;;;:20;;-1:-1:-1;23978:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23968:4;23973:1;23968:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;23968:32:0;;;-1:-1:-1;;;;;23968:32:0;;;;;24015:5;24005:4;24010:1;24005:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24005:15:0;;;:7;;;;;;;;;:15;24025;;:168;;-1:-1:-1;;;24025:168:0;;:15;;;:66;;24100:9;;24025:168;;:15;;24151:4;;24161:6;;24173:15;;24025:168;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23912:289;23822:379;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:180::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;-1:-1:-1;1366:23:1;;1215:180;-1:-1:-1;1215:180:1:o;2013:456::-;2090:6;2098;2106;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;:::-;2283:5;-1:-1:-1;2340:2:1;2325:18;;2312:32;2353:33;2312:32;2353:33;:::i;:::-;2013:456;;2405:7;;-1:-1:-1;;;2459:2:1;2444:18;;;;2431:32;;2013:456::o;2663:247::-;2722:6;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2830:9;2817:23;2849:31;2874:5;2849:31;:::i;:::-;2899:5;2663:247;-1:-1:-1;;;2663:247:1:o;2915:529::-;2992:6;3000;3008;3061:2;3049:9;3040:7;3036:23;3032:32;3029:52;;;3077:1;3074;3067:12;3029:52;3116:9;3103:23;3135:31;3160:5;3135:31;:::i;:::-;3185:5;-1:-1:-1;3242:2:1;3227:18;;3214:32;3255:33;3214:32;3255:33;:::i;:::-;3307:7;-1:-1:-1;3366:2:1;3351:18;;3338:32;3379:33;3338:32;3379:33;:::i;:::-;3431:7;3421:17;;;2915:529;;;;;:::o;3449:156::-;3515:20;;3575:4;3564:16;;3554:27;;3544:55;;3595:1;3592;3585:12;3544:55;3449:156;;;:::o;3610:322::-;3681:6;3689;3697;3750:2;3738:9;3729:7;3725:23;3721:32;3718:52;;;3766:1;3763;3756:12;3718:52;3789:27;3806:9;3789:27;:::i;:::-;3779:37;;3835:36;3867:2;3856:9;3852:18;3835:36;:::i;:::-;3825:46;;3890:36;3922:2;3911:9;3907:18;3890:36;:::i;:::-;3880:46;;3610:322;;;;;:::o;3937:416::-;4002:6;4010;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;4118:9;4105:23;4137:31;4162:5;4137:31;:::i;:::-;4187:5;-1:-1:-1;4244:2:1;4229:18;;4216:32;4286:15;;4279:23;4267:36;;4257:64;;4317:1;4314;4307:12;4257:64;4340:7;4330:17;;;3937:416;;;;;:::o;4703:388::-;4771:6;4779;4832:2;4820:9;4811:7;4807:23;4803:32;4800:52;;;4848:1;4845;4838:12;4800:52;4887:9;4874:23;4906:31;4931:5;4906:31;:::i;:::-;4956:5;-1:-1:-1;5013:2:1;4998:18;;4985:32;5026:33;4985:32;5026:33;:::i;5096:380::-;5175:1;5171:12;;;;5218;;;5239:61;;5293:4;5285:6;5281:17;5271:27;;5239:61;5346:2;5338:6;5335:14;5315:18;5312:38;5309:161;;5392:10;5387:3;5383:20;5380:1;5373:31;5427:4;5424:1;5417:15;5455:4;5452:1;5445:15;5309:161;;5096:380;;;:::o;5481:356::-;5683:2;5665:21;;;5702:18;;;5695:30;5761:34;5756:2;5741:18;;5734:62;5828:2;5813:18;;5481:356::o;6471:251::-;6541:6;6594:2;6582:9;6573:7;6569:23;6565:32;6562:52;;;6610:1;6607;6600:12;6562:52;6642:9;6636:16;6661:31;6686:5;6661:31;:::i;7006:127::-;7067:10;7062:3;7058:20;7055:1;7048:31;7098:4;7095:1;7088:15;7122:4;7119:1;7112:15;7138:125;7203:9;;;7224:10;;;7221:36;;;7237:18;;:::i;13092:401::-;13294:2;13276:21;;;13333:2;13313:18;;;13306:30;13372:34;13367:2;13352:18;;13345:62;-1:-1:-1;;;13438:2:1;13423:18;;13416:35;13483:3;13468:19;;13092:401::o;13498:399::-;13700:2;13682:21;;;13739:2;13719:18;;;13712:30;13778:34;13773:2;13758:18;;13751:62;-1:-1:-1;;;13844:2:1;13829:18;;13822:33;13887:3;13872:19;;13498:399::o;13902:168::-;13975:9;;;14006;;14023:15;;;14017:22;;14003:37;13993:71;;14044:18;;:::i;14075:217::-;14115:1;14141;14131:132;;14185:10;14180:3;14176:20;14173:1;14166:31;14220:4;14217:1;14210:15;14248:4;14245:1;14238:15;14131:132;-1:-1:-1;14277:9:1;;14075:217::o;14297:128::-;14364:9;;;14385:11;;;14382:37;;;14399:18;;:::i;14702:209::-;-1:-1:-1;;14866:38:1;;;;14848:57;;14836:2;14821:18;;14702:209::o;16680:148::-;16768:4;16747:12;;;16761;;;16743:31;;16786:13;;16783:39;;;16802:18;;:::i;17389:127::-;17450:10;17445:3;17441:20;17438:1;17431:31;17481:4;17478:1;17471:15;17505:4;17502:1;17495:15;17521:461;17574:3;17612:5;17606:12;17639:6;17634:3;17627:19;17665:4;17694:2;17689:3;17685:12;17678:19;;17731:2;17724:5;17720:14;17752:1;17762:195;17776:6;17773:1;17770:13;17762:195;;;17841:13;;-1:-1:-1;;;;;17837:39:1;17825:52;;17897:12;;;;17932:15;;;;17873:1;17791:9;17762:195;;;-1:-1:-1;17973:3:1;;17521:461;-1:-1:-1;;;;;17521:461:1:o;17987:582::-;18286:6;18275:9;18268:25;18329:6;18324:2;18313:9;18309:18;18302:34;18372:3;18367:2;18356:9;18352:18;18345:31;18249:4;18393:57;18445:3;18434:9;18430:19;18422:6;18393:57;:::i;:::-;-1:-1:-1;;;;;18486:32:1;;;;18481:2;18466:18;;18459:60;-1:-1:-1;18550:3:1;18535:19;18528:35;18385:65;17987:582;-1:-1:-1;;;17987:582:1:o;19359:510::-;19630:6;19619:9;19612:25;19673:3;19668:2;19657:9;19653:18;19646:31;19593:4;19694:57;19746:3;19735:9;19731:19;19723:6;19694:57;:::i;:::-;-1:-1:-1;;;;;19787:32:1;;;;19782:2;19767:18;;19760:60;-1:-1:-1;19851:2:1;19836:18;19829:34;19686:65;19359:510;-1:-1:-1;;19359:510:1:o
Swarm Source
ipfs://9d2a24d2c944d4c169544edfb200dcaeb6c5ccf4e9e1854b5565798d6ac28ae5
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 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.