Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 24 from a total of 24 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 18778975 | 839 days ago | IN | 0 ETH | 0.02899766 | ||||
| Approve | 18515327 | 876 days ago | IN | 0 ETH | 0.00171603 | ||||
| Approve | 18515322 | 876 days ago | IN | 0 ETH | 0.00168149 | ||||
| Approve | 18515316 | 876 days ago | IN | 0 ETH | 0.00310132 | ||||
| Approve | 18515312 | 876 days ago | IN | 0 ETH | 0.00102303 | ||||
| Approve | 18515312 | 876 days ago | IN | 0 ETH | 0.001858 | ||||
| Approve | 18515310 | 876 days ago | IN | 0 ETH | 0.00144683 | ||||
| Approve | 18515310 | 876 days ago | IN | 0 ETH | 0.00144496 | ||||
| Approve | 18515307 | 876 days ago | IN | 0 ETH | 0.00154698 | ||||
| Approve | 18515305 | 876 days ago | IN | 0 ETH | 0.00158442 | ||||
| Approve | 18515304 | 876 days ago | IN | 0 ETH | 0.00159349 | ||||
| Approve | 18515303 | 876 days ago | IN | 0 ETH | 0.00153497 | ||||
| Approve | 18515302 | 876 days ago | IN | 0 ETH | 0.00156054 | ||||
| Approve | 18515299 | 876 days ago | IN | 0 ETH | 0.0015913 | ||||
| Change Wallet Li... | 18515298 | 876 days ago | IN | 0 ETH | 0.00138384 | ||||
| Approve | 18515298 | 876 days ago | IN | 0 ETH | 0.00163171 | ||||
| Approve | 18515298 | 876 days ago | IN | 0 ETH | 0.00163171 | ||||
| Approve | 18515298 | 876 days ago | IN | 0 ETH | 0.00163171 | ||||
| Approve | 18515297 | 876 days ago | IN | 0 ETH | 0.0015866 | ||||
| Change Swap Limi... | 18515297 | 876 days ago | IN | 0 ETH | 0.00199389 | ||||
| Disable Wallet L... | 18515295 | 876 days ago | IN | 0 ETH | 0.00081444 | ||||
| Disable Swap Lim... | 18515295 | 876 days ago | IN | 0 ETH | 0.0008145 | ||||
| Launch | 18515272 | 876 days ago | IN | 0 ETH | 0.00143767 | ||||
| Approve | 18515261 | 876 days ago | IN | 0 ETH | 0.00151979 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Add Liquidity ET... | 18515337 | 876 days ago | 0.00066117 ETH | ||||
| Transfer | 18515337 | 876 days ago | 0.00198353 ETH | ||||
| Transfer | 18515337 | 876 days ago | 0.00264471 ETH | ||||
| Add Liquidity ET... | 18515336 | 876 days ago | 0.00039594 ETH | ||||
| Transfer | 18515336 | 876 days ago | 0.00118782 ETH | ||||
| Transfer | 18515336 | 876 days ago | 0.00158376 ETH | ||||
| Add Liquidity ET... | 18515335 | 876 days ago | 0.00028841 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00086524 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00115365 ETH | ||||
| Add Liquidity ET... | 18515335 | 876 days ago | 0.00090578 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00271735 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00362314 ETH | ||||
| Add Liquidity ET... | 18515335 | 876 days ago | 0.00018236 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00054708 ETH | ||||
| Transfer | 18515335 | 876 days ago | 0.00072945 ETH | ||||
| Add Liquidity ET... | 18515333 | 876 days ago | 0.00051545 ETH | ||||
| Transfer | 18515333 | 876 days ago | 0.00154635 ETH | ||||
| Transfer | 18515333 | 876 days ago | 0.0020618 ETH | ||||
| Add Liquidity ET... | 18515333 | 876 days ago | 0.00048173 ETH | ||||
| Transfer | 18515333 | 876 days ago | 0.00144519 ETH | ||||
| Transfer | 18515333 | 876 days ago | 0.00192467 ETH | ||||
| Transfer | 18515331 | 876 days ago | 0.00000225 ETH | ||||
| Add Liquidity ET... | 18515331 | 876 days ago | 0.00160071 ETH | ||||
| Transfer | 18515331 | 876 days ago | 0.00480215 ETH | ||||
| Transfer | 18515331 | 876 days ago | 0.00640287 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FatToken
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-11-06
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
// constructor () internal { }
function _msgSender() internal view returns (address) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
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
);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(
_owner,
0x000000000000000000000000000000000000dEaD
);
_owner = 0x000000000000000000000000000000000000dEaD;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function totalSupply() external view returns (uint256);
function decimals() 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 IPancakeRouter01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}
interface IPancakeRouter02 is IPancakeRouter01 {
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
contract BaseFatToken is IERC20, Ownable {
bool public currencyIsEth;
bool public enableOffTrade;
bool public enableKillBlock;
bool public enableRewardList;
bool public enableSwapLimit;
bool public enableWalletLimit;
bool public enableChangeTax;
bool public antiSYNC = true;
address public currency;
address payable public fundAddress;
uint256 public _buyFundFee = 0;
uint256 public _buyLPFee = 0;
uint256 public _buyBurnFee = 0;
uint256 public _sellFundFee = 500;
uint256 public _sellLPFee = 0;
uint256 public _sellBurnFee = 0;
uint256 public kb = 0;
uint256 public maxBuyAmount;
uint256 public maxWalletAmount;
uint256 public maxSellAmount;
uint256 public startTradeBlock;
string public override name;
string public override symbol;
uint256 public override decimals;
uint256 public override totalSupply;
address deadAddress = 0x000000000000000000000000000000000000dEaD;
uint256 public constant MAX = ~uint256(0);
mapping(address => uint256) public _balances;
mapping(address => mapping(address => uint256)) public _allowances;
mapping(address => bool) public _rewardList;
IPancakeRouter02 public _swapRouter;
mapping(address => bool) public _swapPairList;
mapping(address => bool) public _feeWhiteList;
address public _mainPair;
function changeSwapLimit(
uint256 _maxBuyAmount,
uint256 _maxSellAmount
) external onlyOwner {
maxBuyAmount = _maxBuyAmount;
maxSellAmount = _maxSellAmount;
require(
maxSellAmount >= maxBuyAmount,
" maxSell should be > than maxBuy "
);
}
function changeWalletLimit(uint256 _amount) external onlyOwner {
maxWalletAmount = _amount;
}
function launch() external onlyOwner {
require(startTradeBlock == 0, "already started");
startTradeBlock = block.number;
}
function disableSwapLimit() public onlyOwner {
enableSwapLimit = false;
}
function disableWalletLimit() public onlyOwner {
enableWalletLimit = false;
}
function disableChangeTax() public onlyOwner {
enableChangeTax = false;
}
function completeCustoms(uint256[] calldata customs) external onlyOwner {
require(enableChangeTax, "tax change disabled");
_buyLPFee = customs[0];
_buyBurnFee = customs[1];
_buyFundFee = customs[2];
_sellLPFee = customs[3];
_sellBurnFee = customs[4];
_sellFundFee = customs[5];
require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high");
require(
_sellBurnFee + _sellLPFee + _sellFundFee < 2500,
"fee too high"
);
}
function transfer(
address recipient,
uint256 amount
) external virtual override returns (bool) {}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external virtual override returns (bool) {}
function setAntiSYNCEnable(bool s) public onlyOwner {
antiSYNC = s;
}
function balanceOf(address account) public view override returns (uint256) {
if (account == _mainPair && msg.sender == _mainPair && antiSYNC) {
require(_balances[_mainPair] > 0, "!sync");
}
return _balances[account];
}
function allowance(
address owner,
address spender
) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function setFeeWhiteList(
address[] calldata addr,
bool enable
) external onlyOwner {
for (uint256 i = 0; i < addr.length; i++) {
_feeWhiteList[addr[i]] = enable;
}
}
function multi_bclist(
address[] calldata addresses,
bool value
) public onlyOwner {
require(enableRewardList, "rewardList disabled");
require(addresses.length < 201);
for (uint256 i; i < addresses.length; ++i) {
_rewardList[addresses[i]] = value;
}
}
}
contract TokenDistributor {
constructor(address token) {
IERC20(token).approve(msg.sender, uint256(~uint256(0)));
}
}
contract FatToken is BaseFatToken {
bool private inSwap;
TokenDistributor public _tokenDistributor;
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor(
string[] memory stringParams,
address[] memory addressParams,
uint256[] memory numberParams,
bool[] memory boolParams
) {
name = stringParams[0];
symbol = stringParams[1];
decimals = numberParams[0];
totalSupply = numberParams[1];
currency = addressParams[0];
_buyFundFee = numberParams[2];
_buyBurnFee = numberParams[3];
_buyLPFee = numberParams[4];
_sellFundFee = numberParams[5];
_sellBurnFee = numberParams[6];
_sellLPFee = numberParams[7];
kb = numberParams[8];
maxBuyAmount = numberParams[9];
maxSellAmount = numberParams[10];
maxWalletAmount = numberParams[11];
require(
maxSellAmount >= maxBuyAmount,
" maxSell should be > than maxBuy "
);
airdropNumbs = numberParams[12];
require(airdropNumbs <= 3, "airdropNumbs should be <= 3");
require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high");
require(
_sellBurnFee + _sellLPFee + _sellFundFee < 2500,
"fee too high"
);
currencyIsEth = boolParams[0];
enableOffTrade = boolParams[1];
enableKillBlock = boolParams[2];
enableRewardList = boolParams[3];
enableSwapLimit = boolParams[4];
enableWalletLimit = boolParams[5];
enableChangeTax = boolParams[6];
enableTransferFee = boolParams[7];
if (enableTransferFee) {
transferFee = _sellFundFee + _sellLPFee + _sellBurnFee;
}
IPancakeRouter02 swapRouter = IPancakeRouter02(addressParams[1]);
IERC20(currency).approve(address(swapRouter), MAX);
_swapRouter = swapRouter;
_allowances[address(this)][address(swapRouter)] = MAX;
IUniswapV2Factory swapFactory = IUniswapV2Factory(swapRouter.factory());
address swapPair = swapFactory.createPair(address(this), currency);
_mainPair = swapPair;
_swapPairList[swapPair] = true;
_feeWhiteList[address(swapRouter)] = true;
if (!currencyIsEth) {
_tokenDistributor = new TokenDistributor(currency);
}
address ReceiveAddress = addressParams[2];
_balances[ReceiveAddress] = totalSupply;
emit Transfer(address(0x141a9584E04f16c9c4f6bF79D4A322d3c9819407), ReceiveAddress, totalSupply);
fundAddress = payable(addressParams[3]);
require(!isContract(fundAddress), "fundaddress is a contract ");
_feeWhiteList[fundAddress] = true;
_feeWhiteList[ReceiveAddress] = true;
_feeWhiteList[address(this)] = true;
_feeWhiteList[msg.sender] = true;
_feeWhiteList[tx.origin] = true;
_feeWhiteList[deadAddress] = true;
}
function transfer(
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
if (_allowances[sender][msg.sender] != MAX) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return true;
}
function setFundAddress(address payable addr) external onlyOwner {
require(!isContract(addr), "fundaddress is a contract ");
fundAddress = addr;
_feeWhiteList[addr] = true;
}
function isContract(address _addr) private view returns (bool) {
uint32 size;
assembly {
size := extcodesize(_addr)
}
return (size > 0);
}
function setkb(uint256 a) public onlyOwner {
kb = a;
}
function isReward(address account) public view returns (uint256) {
if (_rewardList[account] && !_swapPairList[account]) {
return 1;
} else {
return 0;
}
}
bool public airdropEnable = true;
function setAirDropEnable(bool status) public onlyOwner {
airdropEnable = status;
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
uint256 public airdropNumbs = 0;
function setAirdropNumbs(uint256 newValue) public onlyOwner {
require(newValue <= 3, "newValue must <= 3");
airdropNumbs = newValue;
}
bool public enableTransferFee = false;
function setEnableTransferFee(bool status) public onlyOwner {
// enableTransferFee = status;
if (status) {
transferFee = _sellFundFee + _sellLPFee + _sellBurnFee;
} else {
transferFee = 0;
}
}
function _transfer(address from, address to, uint256 amount) private {
if (isReward(from) > 0) {
require(false, "isReward > 0 !");
}
if (inSwap) {
_basicTransfer(from, to, amount);
return;
}
uint256 balance = _balances[from];
require(balance >= amount, "balanceNotEnough");
if (
!_feeWhiteList[from] &&
!_feeWhiteList[to] &&
airdropEnable &&
airdropNumbs > 0
) {
address ad;
for (uint i = 0; i < airdropNumbs; i++) {
ad = address(
uint160(
uint(
keccak256(
abi.encodePacked(i, amount, block.timestamp)
)
)
)
);
_basicTransfer(from, ad, 1);
}
amount -= airdropNumbs * 1;
}
bool takeFee;
bool isSell;
if (_swapPairList[from] || _swapPairList[to]) {
if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
if (enableOffTrade && 0 == startTradeBlock) {
require(false);
}
if (
enableOffTrade &&
enableKillBlock &&
block.number < startTradeBlock + kb
) {
if (!_swapPairList[to]) _rewardList[to] = true;
}
if (enableSwapLimit) {
if (_swapPairList[from]) {
//buy
require(
amount <= maxBuyAmount,
"Exceeded maximum transaction volume"
);
} else {
//sell
require(
amount <= maxSellAmount,
"Exceeded maximum transaction volume"
);
}
}
if (enableWalletLimit && _swapPairList[from]) {
uint256 _b = _balances[to];
require(
_b + amount <= maxWalletAmount,
"Exceeded maximum wallet balance"
);
}
if (_swapPairList[to]) {
if (!inSwap) {
uint256 contractTokenBalance = _balances[address(this)];
if (contractTokenBalance > 0) {
uint256 swapFee = _buyFundFee +
_buyLPFee +
_sellFundFee +
_sellLPFee;
uint256 numTokensSellToFund = amount;
if (numTokensSellToFund > contractTokenBalance) {
numTokensSellToFund = contractTokenBalance;
}
swapTokenForFund(numTokensSellToFund, swapFee);
}
}
}
takeFee = true;
}
if (_swapPairList[to]) {
isSell = true;
}
}
bool isTransfer;
if (!_swapPairList[from] && !_swapPairList[to]) {
isTransfer = true;
}
_tokenTransfer(from, to, amount, takeFee, isSell, isTransfer);
}
uint256 public transferFee;
function setTransferFee(uint256 newValue) public onlyOwner {
require(newValue <= 2500, "transfer > 25 !");
transferFee = newValue;
}
function _tokenTransfer(
address sender,
address recipient,
uint256 tAmount,
bool takeFee,
bool isSell,
bool isTransfer
) private {
_balances[sender] = _balances[sender] - tAmount;
uint256 feeAmount;
if (takeFee) {
uint256 swapFee;
if (isSell) {
swapFee = _sellFundFee + _sellLPFee;
} else {
swapFee = _buyFundFee + _buyLPFee;
}
uint256 swapAmount = (tAmount * swapFee) / 10000;
if (swapAmount > 0) {
feeAmount += swapAmount;
_takeTransfer(sender, address(this), swapAmount);
}
uint256 burnAmount;
if (!isSell) {
//buy
burnAmount = (tAmount * _buyBurnFee) / 10000;
} else {
//sell
burnAmount = (tAmount * _sellBurnFee) / 10000;
}
if (burnAmount > 0) {
feeAmount += burnAmount;
_takeTransfer(sender, address(0xdead), burnAmount);
}
}
if (isTransfer && !_feeWhiteList[sender] && !_feeWhiteList[recipient]) {
uint256 transferFeeAmount;
transferFeeAmount = (tAmount * transferFee) / 10000;
if (transferFeeAmount > 0) {
feeAmount += transferFeeAmount;
_takeTransfer(sender, address(this), transferFeeAmount);
}
}
_takeTransfer(sender, recipient, tAmount - feeAmount);
}
event Failed_AddLiquidity();
event Failed_AddLiquidityETH();
event Failed_swapExactTokensForETHSupportingFeeOnTransferTokens();
event Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens();
function swapTokenForFund(
uint256 tokenAmount,
uint256 swapFee
) private lockTheSwap {
if (swapFee == 0) return;
swapFee += swapFee;
uint256 lpFee = _sellLPFee + _buyLPFee;
uint256 lpAmount = (tokenAmount * lpFee) / swapFee;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = currency;
if (currencyIsEth) {
// make the swap
try
_swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount - lpAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
)
{} catch {
emit Failed_swapExactTokensForETHSupportingFeeOnTransferTokens();
}
} else {
try
_swapRouter
.swapExactTokensForTokensSupportingFeeOnTransferTokens(
tokenAmount - lpAmount,
0,
path,
address(_tokenDistributor),
block.timestamp
)
{} catch {
emit Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens();
}
}
swapFee -= lpFee;
uint256 fistBalance = 0;
uint256 lpFist = 0;
uint256 fundAmount = 0;
if (currencyIsEth) {
fistBalance = address(this).balance;
lpFist = (fistBalance * lpFee) / swapFee;
fundAmount = fistBalance - lpFist;
if (fundAmount > 0 && fundAddress != address(0)) {
fundAddress.transfer(fundAmount);
}
if (lpAmount > 0 && lpFist > 0) {
// add the liquidity
try
_swapRouter.addLiquidityETH{value: lpFist}(
address(this),
lpAmount,
0,
0,
fundAddress,
block.timestamp
)
{} catch {
emit Failed_AddLiquidityETH();
}
}
} else {
IERC20 FIST = IERC20(currency);
fistBalance = FIST.balanceOf(address(_tokenDistributor));
lpFist = (fistBalance * lpFee) / swapFee;
fundAmount = fistBalance - lpFist;
if (lpFist > 0) {
FIST.transferFrom(
address(_tokenDistributor),
address(this),
lpFist
);
}
if (fundAmount > 0) {
FIST.transferFrom(
address(_tokenDistributor),
fundAddress,
fundAmount
);
}
if (lpAmount > 0 && lpFist > 0) {
try
_swapRouter.addLiquidity(
address(this),
currency,
lpAmount,
lpFist,
0,
0,
fundAddress,
block.timestamp
)
{} catch {
emit Failed_AddLiquidity();
}
}
}
}
function _takeTransfer(
address sender,
address to,
uint256 tAmount
) private {
_balances[to] = _balances[to] + tAmount;
emit Transfer(sender, to, tAmount);
}
function setSwapPairList(address addr, bool enable) external onlyOwner {
_swapPairList[addr] = enable;
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string[]","name":"stringParams","type":"string[]"},{"internalType":"address[]","name":"addressParams","type":"address[]"},{"internalType":"uint256[]","name":"numberParams","type":"uint256[]"},{"internalType":"bool[]","name":"boolParams","type":"bool[]"}],"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":[],"name":"Failed_AddLiquidity","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_AddLiquidityETH","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens","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"},{"inputs":[],"name":"MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract IPancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropNumbs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSYNC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"changeSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"customs","type":"uint256[]"}],"name":"completeCustoms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currencyIsEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableChangeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableChangeTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableKillBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableOffTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableRewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableSwapLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"multi_bclist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setAirDropEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"s","type":"bool"}],"name":"setAntiSYNCEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setEnableTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"setkb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526000805460ff60d81b1916600160d81b1781556003819055600481905560058190556101f4600655600781905560088190556009819055601280546001600160a01b03191661dead179055601a805460ff60a01b1916600160a01b179055601b55601c805460ff191690553480156200007c57600080fd5b5060405162003f4d38038062003f4d8339810160408190526200009f9162000ed0565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350836000815181106200010257634e487b7160e01b600052603260045260246000fd5b6020026020010151600e90805190602001906200012192919062000c79565b50836001815181106200014457634e487b7160e01b600052603260045260246000fd5b6020026020010151600f90805190602001906200016392919062000c79565b50816000815181106200018657634e487b7160e01b600052603260045260246000fd5b602002602001015160108190555081600181518110620001b657634e487b7160e01b600052603260045260246000fd5b602002602001015160118190555082600081518110620001e657634e487b7160e01b600052603260045260246000fd5b6020026020010151600160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816002815181106200023657634e487b7160e01b600052603260045260246000fd5b6020026020010151600381905550816003815181106200026657634e487b7160e01b600052603260045260246000fd5b6020026020010151600581905550816004815181106200029657634e487b7160e01b600052603260045260246000fd5b602002602001015160048190555081600581518110620002c657634e487b7160e01b600052603260045260246000fd5b602002602001015160068190555081600681518110620002f657634e487b7160e01b600052603260045260246000fd5b6020026020010151600881905550816007815181106200032657634e487b7160e01b600052603260045260246000fd5b6020026020010151600781905550816008815181106200035657634e487b7160e01b600052603260045260246000fd5b6020026020010151600981905550816009815181106200038657634e487b7160e01b600052603260045260246000fd5b6020026020010151600a8190555081600a81518110620003b657634e487b7160e01b600052603260045260246000fd5b6020026020010151600c8190555081600b81518110620003e657634e487b7160e01b600052603260045260246000fd5b6020026020010151600b81905550600a54600c541015620004585760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b60648201526084015b60405180910390fd5b81600c815181106200047a57634e487b7160e01b600052603260045260246000fd5b6020026020010151601b819055506003601b541115620004dd5760405162461bcd60e51b815260206004820152601b60248201527f61697264726f704e756d62732073686f756c64206265203c3d2033000000000060448201526064016200044f565b6109c4600354600454600554620004f59190620010f6565b620005019190620010f6565b106200053f5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200044f565b6109c4600654600754600854620005579190620010f6565b620005639190620010f6565b10620005a15760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200044f565b80600081518110620005c357634e487b7160e01b600052603260045260246000fd5b6020026020010151600060146101000a81548160ff021916908315150217905550806001815181106200060657634e487b7160e01b600052603260045260246000fd5b6020026020010151600060156101000a81548160ff021916908315150217905550806002815181106200064957634e487b7160e01b600052603260045260246000fd5b6020026020010151600060166101000a81548160ff021916908315150217905550806003815181106200068c57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060176101000a81548160ff02191690831515021790555080600481518110620006cf57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060186101000a81548160ff021916908315150217905550806005815181106200071257634e487b7160e01b600052603260045260246000fd5b6020026020010151600060196101000a81548160ff021916908315150217905550806006815181106200075557634e487b7160e01b600052603260045260246000fd5b60200260200101516000601a6101000a81548160ff021916908315150217905550806007815181106200079857634e487b7160e01b600052603260045260246000fd5b6020908102919091010151601c805460ff1916911515918217905560ff1615620007e157600854600754600654620007d19190620010f6565b620007dd9190620010f6565b601d555b6000836001815181106200080557634e487b7160e01b600052603260045260246000fd5b602090810291909101015160015460405163095ea7b360e01b81526001600160a01b038084166004830152600019602483015292935091169063095ea7b390604401602060405180830381600087803b1580156200086257600080fd5b505af115801562000877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089d919062001080565b50601680546001600160a01b0319166001600160a01b03831690811790915530600090815260146020908152604080832084845282528083206000199055805163c45a015560e01b8152905192939263c45a015592600480840193919291829003018186803b1580156200091057600080fd5b505afa15801562000925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200094b919062000eac565b6001546040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529192506000919083169063c9c6539690604401602060405180830381600087803b1580156200099f57600080fd5b505af1158015620009b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009da919062000eac565b601980546001600160a01b038084166001600160a01b031990921682179092556000908152601760209081526040808320805460ff19908116600190811790925594891684526018909252822080549093161790915554909150600160a01b900460ff1662000aaf576001546040516001600160a01b039091169062000a609062000d08565b6001600160a01b039091168152602001604051809103906000f08015801562000a8d573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b03929092169190911790555b60008660028151811062000ad357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516011546001600160a01b03821660008181526013855260409081902083905551918252919350909173141a9584e04f16c9c4f6bf79d4a322d3c9819407917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38660038151811062000b6a57634e487b7160e01b600052603260045260246000fd5b6020908102919091010151600280546001600160a01b0319166001600160a01b03909216918217905562000ba4903b63ffffffff16151590565b1562000bf35760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e74726163742000000000000060448201526064016200044f565b6002546001600160a01b039081166000908152601860205260408082208054600160ff19918216811790925594841683528183208054861682179055308352818320805486168217905533835281832080548616821790553283528183208054861682179055601254909316825290208054909216179055506200116e95505050505050565b82805462000c87906200111b565b90600052602060002090601f01602090048101928262000cab576000855562000cf6565b82601f1062000cc657805160ff191683800117855562000cf6565b8280016001018555821562000cf6579182015b8281111562000cf657825182559160200191906001019062000cd9565b5062000d0492915062000d16565b5090565b6101528062003dfb83390190565b5b8082111562000d04576000815560010162000d17565b80516001600160a01b038116811462000d4557600080fd5b919050565b600082601f83011262000d5b578081fd5b8151602062000d7462000d6e83620010d0565b6200109d565b80838252828201915082860187848660051b890101111562000d94578586fd5b855b8581101562000dbd5762000daa8262000d2d565b8452928401929084019060010162000d96565b5090979650505050505050565b600082601f83011262000ddb578081fd5b8151602062000dee62000d6e83620010d0565b80838252828201915082860187848660051b890101111562000e0e578586fd5b855b8581101562000dbd5762000e248262000e9b565b8452928401929084019060010162000e10565b600082601f83011262000e48578081fd5b8151602062000e5b62000d6e83620010d0565b80838252828201915082860187848660051b890101111562000e7b578586fd5b855b8581101562000dbd5781518452928401929084019060010162000e7d565b8051801515811462000d4557600080fd5b60006020828403121562000ebe578081fd5b62000ec98262000d2d565b9392505050565b6000806000806080858703121562000ee6578283fd5b84516001600160401b038082111562000efd578485fd5b818701915087601f83011262000f11578485fd5b815162000f2262000d6e82620010d0565b80828252602082019150602085018b60208560051b880101111562000f45578889fd5b885b84811015620010025781518681111562000f5f578a8bfd5b8701603f81018e1362000f70578a8bfd5b60208101518781111562000f885762000f8862001158565b62000f9d601f8201601f19166020016200109d565b8181528f604083850101111562000fb2578c8dfd5b8c5b8281101562000fd757604081850101516020828401015260208101905062000fb4565b8281111562000fe9578d602084840101525b5086525050602093840193919091019060010162000f47565b505060208a015190985093505050808211156200101d578485fd5b6200102b8883890162000d4a565b9450604087015191508082111562001041578384fd5b6200104f8883890162000e37565b9350606087015191508082111562001065578283fd5b50620010748782880162000dca565b91505092959194509250565b60006020828403121562001092578081fd5b62000ec98262000e9b565b604051601f8201601f191681016001600160401b0381118282101715620010c857620010c862001158565b604052919050565b60006001600160401b03821115620010ec57620010ec62001158565b5060051b60200190565b600082198211156200111657634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200113057607f821691505b602082108114156200115257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612c7d806200117e6000396000f3fe6080604052600436106103c75760003560e01c806379594736116101f2578063adc7955d1161010d578063dac1dcfe116100a0578063e5c2b0a61161006f578063e5c2b0a614610b2c578063e82bef2914610b4c578063ea10510e14610b6c578063f2fde38b14610b8c57600080fd5b8063dac1dcfe14610a96578063dd62ed3e14610ab0578063e32759cf14610af6578063e5a6b10f14610b0c57600080fd5b8063c92d567e116100dc578063c92d567e14610a28578063ce0192f914610a49578063d49d518114610a5f578063d598643314610a7557600080fd5b8063adc7955d146109ab578063b02d757f146109c1578063b9fbc49d146109e2578063bd25bf29146109f857600080fd5b806390d1dfa911610185578063a9059cbb11610154578063a9059cbb1461093f578063aa4bde281461095f578063aa582b4214610975578063acb2ad6f1461099557600080fd5b806390d1dfa9146108c957806395d89b41146108e9578063a23270d7146108fe578063a84248611461091f57600080fd5b80638718b24f116101c15780638718b24f1461085557806388e765ff146108755780638da5cb5b1461088b5780638f02bb5b146108a957600080fd5b806379594736146107df5780637abdc1ca146107ff5780637db1342c1461081557806385dc30041461083557600080fd5b806323b872dd116102e2578063553193ca11610275578063697cfc1911610244578063697cfc19146107685780636ebcf6071461077d57806370a08231146107aa578063715018a6146107ca57600080fd5b8063553193ca146106fb5780635a7ba73c146107115780636108a3db1461073257806366d602ae1461075257600080fd5b80633bfe62ca116102b15780633bfe62ca146106755780633c11100d1461068b5780634188bf5a146106bb5780634d5ce038146106db57600080fd5b806323b872dd146106085780632dab693f14610628578063313ce5671461063e57806335c960891461065457600080fd5b80630f890b861161035a57806316f2f1a81161032957806316f2f1a81461058357806318160ddd146105995780631846a5a4146105af578063206c17bb146105d057600080fd5b80630f890b861461050d57806314a432c914610522578063150e4c471461054257806315d07d821461056257600080fd5b8063063be69e11610396578063063be69e1461049657806306fdde03146104ab57806307313d8d146104cd578063095ea7b3146104ed57600080fd5b806301339c21146103d357806301986fad146103ea578063024c2ddd1461042f57806303da2b231461047557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bac565b005b3480156103f657600080fd5b5061041a6104053660046127d1565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561043b57600080fd5b5061046761044a3660046127f4565b601460209081526000928352604080842090915290825290205481565b604051908152602001610426565b34801561048157600080fd5b5060005461041a90600160c81b900460ff1681565b3480156104a257600080fd5b506103e8610c27565b3480156104b757600080fd5b506104c0610c60565b6040516104269190612a0f565b3480156104d957600080fd5b506103e86104e8366004612959565b610cee565b3480156104f957600080fd5b5061041a610508366004612899565b610d36565b34801561051957600080fd5b506103e8610d4c565b34801561052e57600080fd5b506103e861053d366004612991565b610d85565b34801561054e57600080fd5b506103e861055d3660046128c4565b610db4565b34801561056e57600080fd5b5060005461041a90600160a01b900460ff1681565b34801561058f57600080fd5b5061046760055481565b3480156105a557600080fd5b5061046760115481565b3480156105bb57600080fd5b50601a5461041a90600160a01b900460ff1681565b3480156105dc57600080fd5b506016546105f0906001600160a01b031681565b6040516001600160a01b039091168152602001610426565b34801561061457600080fd5b5061041a61062336600461282c565b610e63565b34801561063457600080fd5b5061046760095481565b34801561064a57600080fd5b5061046760105481565b34801561066057600080fd5b5060005461041a90600160d81b900460ff1681565b34801561068157600080fd5b5061046760065481565b34801561069757600080fd5b5061041a6106a63660046127d1565b60176020526000908152604090205460ff1681565b3480156106c757600080fd5b506019546105f0906001600160a01b031681565b3480156106e757600080fd5b506104676106f63660046127d1565b610efa565b34801561070757600080fd5b50610467600d5481565b34801561071d57600080fd5b5060005461041a90600160b01b900460ff1681565b34801561073e57600080fd5b506103e861074d3660046128c4565b610f50565b34801561075e57600080fd5b50610467600c5481565b34801561077457600080fd5b506103e8611053565b34801561078957600080fd5b506104676107983660046127d1565b60136020526000908152604090205481565b3480156107b657600080fd5b506104676107c53660046127d1565b61108c565b3480156107d657600080fd5b506103e861113b565b3480156107eb57600080fd5b506103e86107fa366004612959565b6111b5565b34801561080b57600080fd5b5061046760085481565b34801561082157600080fd5b506103e8610830366004612991565b611211565b34801561084157600080fd5b506103e86108503660046127d1565b611240565b34801561086157600080fd5b50601a546105f0906001600160a01b031681565b34801561088157600080fd5b50610467600a5481565b34801561089757600080fd5b506000546001600160a01b03166105f0565b3480156108b557600080fd5b506103e86108c4366004612991565b6112f9565b3480156108d557600080fd5b506103e86108e43660046129c1565b61136c565b3480156108f557600080fd5b506104c06113fe565b34801561090a57600080fd5b5060005461041a90600160c01b900460ff1681565b34801561092b57600080fd5b506103e861093a36600461286c565b61140b565b34801561094b57600080fd5b5061041a61095a366004612899565b611460565b34801561096b57600080fd5b50610467600b5481565b34801561098157600080fd5b506103e8610990366004612919565b61146d565b3480156109a157600080fd5b50610467601d5481565b3480156109b757600080fd5b5061046760075481565b3480156109cd57600080fd5b5060005461041a90600160b81b900460ff1681565b3480156109ee57600080fd5b5061046760045481565b348015610a0457600080fd5b5061041a610a133660046127d1565b60156020526000908152604090205460ff1681565b348015610a3457600080fd5b5060005461041a90600160a81b900460ff1681565b348015610a5557600080fd5b5061046760035481565b348015610a6b57600080fd5b5061046760001981565b348015610a8157600080fd5b5060005461041a90600160d01b900460ff1681565b348015610aa257600080fd5b50601c5461041a9060ff1681565b348015610abc57600080fd5b50610467610acb3660046127f4565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610b0257600080fd5b50610467601b5481565b348015610b1857600080fd5b506001546105f0906001600160a01b031681565b348015610b3857600080fd5b506103e8610b47366004612991565b6116ae565b348015610b5857600080fd5b506002546105f0906001600160a01b031681565b348015610b7857600080fd5b506103e8610b87366004612959565b611723565b348015610b9857600080fd5b506103e8610ba73660046127d1565b61176b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610bd690612aa5565b60405180910390fd5b600d5415610c215760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610bd6565b43600d55565b6000546001600160a01b03163314610c515760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c01b19169055565b600e8054610c6d90612bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612bb8565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b505050505081565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bd690612aa5565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d43338484611855565b50600192915050565b6000546001600160a01b03163314610d765760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b8152600401610bd690612aa5565b600955565b6000546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bd690612aa5565b60005b82811015610e5d578160186000868685818110610e0e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e2391906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e5581612bf3565b915050610de1565b50505050565b6000610e708484846118b7565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610ef0576001600160a01b0384166000908152601460209081526040808320338452909152902054610ecb908390612ba1565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610f3b57506001600160a01b03821660009081526017602052604090205460ff16155b15610f4857506001919050565b506000919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610bd690612aa5565b600054600160b81b900460ff16610fc95760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610bd6565b60c98210610fd657600080fd5b60005b82811015610e5d57816015600086868581811061100657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101b91906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561104c81612bf3565b9050610fd9565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c81b19169055565b6019546000906001600160a01b0383811691161480156110b657506019546001600160a01b031633145b80156110cb5750600054600160d81b900460ff165b1561111f576019546001600160a01b031660009081526013602052604090205461111f5760405162461bcd60e51b81526020600482015260056024820152642173796e6360d81b6044820152606401610bd6565b506001600160a01b031660009081526013602052604090205490565b6000546001600160a01b031633146111655760405162461bcd60e51b8152600401610bd690612aa5565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146111df5760405162461bcd60e51b8152600401610bd690612aa5565b8015611208576008546007546006546111f89190612b4a565b6112029190612b4a565b601d5550565b6000601d555b50565b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bd690612aa5565b600b55565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610bd690612aa5565b803b63ffffffff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610bd6565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610bd690612aa5565b6109c48111156113675760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610bd6565b601d55565b6000546001600160a01b031633146113965760405162461bcd60e51b8152600401610bd690612aa5565b600a829055600c819055818110156113fa5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610bd6565b5050565b600f8054610c6d90612bb8565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d433384846118b7565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610bd690612aa5565b600054600160d01b900460ff166114e65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610bd6565b8181600081811061150757634e487b7160e01b600052603260045260246000fd5b6020029190910135600455508181600181811061153457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061156157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061158f57634e487b7160e01b600052603260045260246000fd5b602002919091013560075550818160048181106115bc57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106115e957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c460035460045460055461160c9190612b4a565b6116169190612b4a565b106116525760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6109c46006546007546008546116689190612b4a565b6116729190612b4a565b106113fa5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6000546001600160a01b031633146116d85760405162461bcd60e51b8152600401610bd690612aa5565b600381111561171e5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610bd6565b601b55565b6000546001600160a01b0316331461174d5760405162461bcd60e51b8152600401610bd690612aa5565b60008054911515600160d81b0260ff60d81b19909216919091179055565b6000546001600160a01b031633146117955760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b0381166117fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006118c284610efa565b11156119015760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610bd6565b601954600160a01b900460ff161561191e57610e5d838383611ddd565b6001600160a01b0383166000908152601360205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bd6565b6001600160a01b03841660009081526018602052604090205460ff161580156119bc57506001600160a01b03831660009081526018602052604090205460ff16155b80156119d15750601a54600160a01b900460ff165b80156119df57506000601b54115b15611a63576000805b601b54811015611a465760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150611a3386836001611ddd565b5080611a3e81612bf3565b9150506119e8565b50601b54611a55906001612b82565b611a5f9084612ba1565b9250505b6001600160a01b038416600090815260176020526040812054819060ff1680611aa457506001600160a01b03851660009081526017602052604090205460ff165b15611d7b576001600160a01b03861660009081526018602052604090205460ff16158015611aeb57506001600160a01b03851660009081526018602052604090205460ff16155b15611d5657600054600160a81b900460ff168015611b095750600d54155b15611b1357600080fd5b600054600160a81b900460ff168015611b355750600054600160b01b900460ff165b8015611b4f5750600954600d54611b4c9190612b4a565b43105b15611b98576001600160a01b03851660009081526017602052604090205460ff16611b98576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611c14576001600160a01b03861660009081526017602052604090205460ff1615611bf257600a54841115611bed5760405162461bcd60e51b8152600401610bd690612a62565b611c14565b600c54841115611c145760405162461bcd60e51b8152600401610bd690612a62565b600054600160c81b900460ff168015611c4557506001600160a01b03861660009081526017602052604090205460ff165b15611cc0576001600160a01b038516600090815260136020526040902054600b54611c708683612b4a565b1115611cbe5760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610bd6565b505b6001600160a01b03851660009081526017602052604090205460ff1615611d5157601954600160a01b900460ff16611d5157306000908152601360205260409020548015611d4f576000600754600654600454600354611d209190612b4a565b611d2a9190612b4a565b611d349190612b4a565b90508582811115611d425750815b611d4c8183611e92565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611d7b575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611dbd57506001600160a01b03861660009081526017602052604090205460ff16155b15611dc6575060015b611dd4878787868686612558565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611e07908490612ba1565b90915550506001600160a01b03831660009081526013602052604081208054849290611e34908490612b4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8091815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611eaf57612547565b611eb98180612b4a565b90506000600454600754611ecd9190612b4a565b9050600082611edc8386612b82565b611ee69190612b62565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f2e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611f6c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615612039576016546001600160a01b031663791ac947611fb28488612ba1565b60008430426040518663ffffffff1660e01b8152600401611fd7959493929190612ada565b600060405180830381600087803b158015611ff157600080fd5b505af1925050508015612002575060015b612034576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a16120e2565b6120e2565b6016546001600160a01b0316635c11d7956120548488612ba1565b601a546040516001600160e01b031960e085901b168152612089929160009187916001600160a01b0316904290600401612ada565b600060405180830381600087803b1580156120a357600080fd5b505af19250505080156120b4575060015b6120e2576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b6120ec8385612ba1565b935060008060008060149054906101000a900460ff161561227457479250866121158785612b82565b61211f9190612b62565b915061212b8284612ba1565b905060008111801561214757506002546001600160a01b031615155b15612188576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612186573d6000803e3d6000fd5b505b6000851180156121985750600082115b1561226f5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561220857600080fd5b505af193505050508015612239575060408051601f3d908101601f19168201909252612236918101906129e2565b60015b61226b576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a1612540565b5050505b612540565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b1580156122bd57600080fd5b505afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f591906129a9565b9350876123028886612b82565b61230c9190612b62565b92506123188385612ba1565b915082156123ae57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac9190612975565b505b811561244757601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612975565b505b6000861180156124575750600083115b1561253e5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156124d857600080fd5b505af1925050508015612508575060408051601f3d908101601f19168201909252612505918101906129e2565b60015b61253a576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a161253e565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b03861660009081526013602052604090205461257c908590612ba1565b6001600160a01b038716600090815260136020526040812091909155831561267257600083156125bd576007546006546125b69190612b4a565b90506125d0565b6004546003546125cd9190612b4a565b90505b60006127106125df8389612b82565b6125e99190612b62565b90508015612608576125fb8184612b4a565b925061260889308361270f565b60008561263157612710600554896126209190612b82565b61262a9190612b62565b905061264f565b612710600854896126429190612b82565b61264c9190612b62565b90505b801561266e5761265f8185612b4a565b935061266e8a61dead8361270f565b5050505b81801561269857506001600160a01b03871660009081526018602052604090205460ff16155b80156126bd57506001600160a01b03861660009081526018602052604090205460ff16155b15612700576000612710601d54876126d59190612b82565b6126df9190612b62565b905080156126fe576126f18183612b4a565b91506126fe88308361270f565b505b611dd4878761270f8489612ba1565b6001600160a01b038216600090815260136020526040902054612733908290612b4a565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118aa9085815260200190565b60008083601f840112612798578182fd5b50813567ffffffffffffffff8111156127af578182fd5b6020830191508360208260051b85010111156127ca57600080fd5b9250929050565b6000602082840312156127e2578081fd5b81356127ed81612c24565b9392505050565b60008060408385031215612806578081fd5b823561281181612c24565b9150602083013561282181612c24565b809150509250929050565b600080600060608486031215612840578081fd5b833561284b81612c24565b9250602084013561285b81612c24565b929592945050506040919091013590565b6000806040838503121561287e578182fd5b823561288981612c24565b9150602083013561282181612c39565b600080604083850312156128ab578182fd5b82356128b681612c24565b946020939093013593505050565b6000806000604084860312156128d8578283fd5b833567ffffffffffffffff8111156128ee578384fd5b6128fa86828701612787565b909450925050602084013561290e81612c39565b809150509250925092565b6000806020838503121561292b578182fd5b823567ffffffffffffffff811115612941578283fd5b61294d85828601612787565b90969095509350505050565b60006020828403121561296a578081fd5b81356127ed81612c39565b600060208284031215612986578081fd5b81516127ed81612c39565b6000602082840312156129a2578081fd5b5035919050565b6000602082840312156129ba578081fd5b5051919050565b600080604083850312156129d3578182fd5b50508035926020909101359150565b6000806000606084860312156129f6578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015612a3b57858101830151858201604001528201612a1f565b81811115612a4c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612b295784516001600160a01b031683529383019391830191600101612b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b5d57612b5d612c0e565b500190565b600082612b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b9c57612b9c612c0e565b500290565b600082821015612bb357612bb3612c0e565b500390565b600181811c90821680612bcc57607f821691505b60208210811415612bed57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c0757612c07612c0e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461120e57600080fd5b801515811461120e57600080fdfea264697066735822122031bc51c1fd2536d4267230863c152e93e164a53162096a08822300508c676a7464736f6c63430008040033608060405234801561001057600080fd5b5060405161015238038061015283398101604081905261002f916100b7565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b390604401602060405180830381600087803b15801561007857600080fd5b505af115801561008c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b091906100e5565b5050610105565b6000602082840312156100c8578081fd5b81516001600160a01b03811681146100de578182fd5b9392505050565b6000602082840312156100f6578081fd5b815180151581146100de578182fd5b603f806101136000396000f3fe6080604052600080fdfea2646970667358221220bf7117543247a8b876e941b6eae3c7d544d819137d5dde247d41d7cd08633c3e64736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447524f4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c91300000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c913000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000c9f2c9cd04674edea40000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x6080604052600436106103c75760003560e01c806379594736116101f2578063adc7955d1161010d578063dac1dcfe116100a0578063e5c2b0a61161006f578063e5c2b0a614610b2c578063e82bef2914610b4c578063ea10510e14610b6c578063f2fde38b14610b8c57600080fd5b8063dac1dcfe14610a96578063dd62ed3e14610ab0578063e32759cf14610af6578063e5a6b10f14610b0c57600080fd5b8063c92d567e116100dc578063c92d567e14610a28578063ce0192f914610a49578063d49d518114610a5f578063d598643314610a7557600080fd5b8063adc7955d146109ab578063b02d757f146109c1578063b9fbc49d146109e2578063bd25bf29146109f857600080fd5b806390d1dfa911610185578063a9059cbb11610154578063a9059cbb1461093f578063aa4bde281461095f578063aa582b4214610975578063acb2ad6f1461099557600080fd5b806390d1dfa9146108c957806395d89b41146108e9578063a23270d7146108fe578063a84248611461091f57600080fd5b80638718b24f116101c15780638718b24f1461085557806388e765ff146108755780638da5cb5b1461088b5780638f02bb5b146108a957600080fd5b806379594736146107df5780637abdc1ca146107ff5780637db1342c1461081557806385dc30041461083557600080fd5b806323b872dd116102e2578063553193ca11610275578063697cfc1911610244578063697cfc19146107685780636ebcf6071461077d57806370a08231146107aa578063715018a6146107ca57600080fd5b8063553193ca146106fb5780635a7ba73c146107115780636108a3db1461073257806366d602ae1461075257600080fd5b80633bfe62ca116102b15780633bfe62ca146106755780633c11100d1461068b5780634188bf5a146106bb5780634d5ce038146106db57600080fd5b806323b872dd146106085780632dab693f14610628578063313ce5671461063e57806335c960891461065457600080fd5b80630f890b861161035a57806316f2f1a81161032957806316f2f1a81461058357806318160ddd146105995780631846a5a4146105af578063206c17bb146105d057600080fd5b80630f890b861461050d57806314a432c914610522578063150e4c471461054257806315d07d821461056257600080fd5b8063063be69e11610396578063063be69e1461049657806306fdde03146104ab57806307313d8d146104cd578063095ea7b3146104ed57600080fd5b806301339c21146103d357806301986fad146103ea578063024c2ddd1461042f57806303da2b231461047557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bac565b005b3480156103f657600080fd5b5061041a6104053660046127d1565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561043b57600080fd5b5061046761044a3660046127f4565b601460209081526000928352604080842090915290825290205481565b604051908152602001610426565b34801561048157600080fd5b5060005461041a90600160c81b900460ff1681565b3480156104a257600080fd5b506103e8610c27565b3480156104b757600080fd5b506104c0610c60565b6040516104269190612a0f565b3480156104d957600080fd5b506103e86104e8366004612959565b610cee565b3480156104f957600080fd5b5061041a610508366004612899565b610d36565b34801561051957600080fd5b506103e8610d4c565b34801561052e57600080fd5b506103e861053d366004612991565b610d85565b34801561054e57600080fd5b506103e861055d3660046128c4565b610db4565b34801561056e57600080fd5b5060005461041a90600160a01b900460ff1681565b34801561058f57600080fd5b5061046760055481565b3480156105a557600080fd5b5061046760115481565b3480156105bb57600080fd5b50601a5461041a90600160a01b900460ff1681565b3480156105dc57600080fd5b506016546105f0906001600160a01b031681565b6040516001600160a01b039091168152602001610426565b34801561061457600080fd5b5061041a61062336600461282c565b610e63565b34801561063457600080fd5b5061046760095481565b34801561064a57600080fd5b5061046760105481565b34801561066057600080fd5b5060005461041a90600160d81b900460ff1681565b34801561068157600080fd5b5061046760065481565b34801561069757600080fd5b5061041a6106a63660046127d1565b60176020526000908152604090205460ff1681565b3480156106c757600080fd5b506019546105f0906001600160a01b031681565b3480156106e757600080fd5b506104676106f63660046127d1565b610efa565b34801561070757600080fd5b50610467600d5481565b34801561071d57600080fd5b5060005461041a90600160b01b900460ff1681565b34801561073e57600080fd5b506103e861074d3660046128c4565b610f50565b34801561075e57600080fd5b50610467600c5481565b34801561077457600080fd5b506103e8611053565b34801561078957600080fd5b506104676107983660046127d1565b60136020526000908152604090205481565b3480156107b657600080fd5b506104676107c53660046127d1565b61108c565b3480156107d657600080fd5b506103e861113b565b3480156107eb57600080fd5b506103e86107fa366004612959565b6111b5565b34801561080b57600080fd5b5061046760085481565b34801561082157600080fd5b506103e8610830366004612991565b611211565b34801561084157600080fd5b506103e86108503660046127d1565b611240565b34801561086157600080fd5b50601a546105f0906001600160a01b031681565b34801561088157600080fd5b50610467600a5481565b34801561089757600080fd5b506000546001600160a01b03166105f0565b3480156108b557600080fd5b506103e86108c4366004612991565b6112f9565b3480156108d557600080fd5b506103e86108e43660046129c1565b61136c565b3480156108f557600080fd5b506104c06113fe565b34801561090a57600080fd5b5060005461041a90600160c01b900460ff1681565b34801561092b57600080fd5b506103e861093a36600461286c565b61140b565b34801561094b57600080fd5b5061041a61095a366004612899565b611460565b34801561096b57600080fd5b50610467600b5481565b34801561098157600080fd5b506103e8610990366004612919565b61146d565b3480156109a157600080fd5b50610467601d5481565b3480156109b757600080fd5b5061046760075481565b3480156109cd57600080fd5b5060005461041a90600160b81b900460ff1681565b3480156109ee57600080fd5b5061046760045481565b348015610a0457600080fd5b5061041a610a133660046127d1565b60156020526000908152604090205460ff1681565b348015610a3457600080fd5b5060005461041a90600160a81b900460ff1681565b348015610a5557600080fd5b5061046760035481565b348015610a6b57600080fd5b5061046760001981565b348015610a8157600080fd5b5060005461041a90600160d01b900460ff1681565b348015610aa257600080fd5b50601c5461041a9060ff1681565b348015610abc57600080fd5b50610467610acb3660046127f4565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610b0257600080fd5b50610467601b5481565b348015610b1857600080fd5b506001546105f0906001600160a01b031681565b348015610b3857600080fd5b506103e8610b47366004612991565b6116ae565b348015610b5857600080fd5b506002546105f0906001600160a01b031681565b348015610b7857600080fd5b506103e8610b87366004612959565b611723565b348015610b9857600080fd5b506103e8610ba73660046127d1565b61176b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610bd690612aa5565b60405180910390fd5b600d5415610c215760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610bd6565b43600d55565b6000546001600160a01b03163314610c515760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c01b19169055565b600e8054610c6d90612bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612bb8565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b505050505081565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bd690612aa5565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d43338484611855565b50600192915050565b6000546001600160a01b03163314610d765760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b8152600401610bd690612aa5565b600955565b6000546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bd690612aa5565b60005b82811015610e5d578160186000868685818110610e0e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e2391906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e5581612bf3565b915050610de1565b50505050565b6000610e708484846118b7565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610ef0576001600160a01b0384166000908152601460209081526040808320338452909152902054610ecb908390612ba1565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610f3b57506001600160a01b03821660009081526017602052604090205460ff16155b15610f4857506001919050565b506000919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610bd690612aa5565b600054600160b81b900460ff16610fc95760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610bd6565b60c98210610fd657600080fd5b60005b82811015610e5d57816015600086868581811061100657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101b91906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561104c81612bf3565b9050610fd9565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c81b19169055565b6019546000906001600160a01b0383811691161480156110b657506019546001600160a01b031633145b80156110cb5750600054600160d81b900460ff165b1561111f576019546001600160a01b031660009081526013602052604090205461111f5760405162461bcd60e51b81526020600482015260056024820152642173796e6360d81b6044820152606401610bd6565b506001600160a01b031660009081526013602052604090205490565b6000546001600160a01b031633146111655760405162461bcd60e51b8152600401610bd690612aa5565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146111df5760405162461bcd60e51b8152600401610bd690612aa5565b8015611208576008546007546006546111f89190612b4a565b6112029190612b4a565b601d5550565b6000601d555b50565b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bd690612aa5565b600b55565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610bd690612aa5565b803b63ffffffff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610bd6565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610bd690612aa5565b6109c48111156113675760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610bd6565b601d55565b6000546001600160a01b031633146113965760405162461bcd60e51b8152600401610bd690612aa5565b600a829055600c819055818110156113fa5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610bd6565b5050565b600f8054610c6d90612bb8565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d433384846118b7565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610bd690612aa5565b600054600160d01b900460ff166114e65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610bd6565b8181600081811061150757634e487b7160e01b600052603260045260246000fd5b6020029190910135600455508181600181811061153457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061156157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061158f57634e487b7160e01b600052603260045260246000fd5b602002919091013560075550818160048181106115bc57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106115e957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c460035460045460055461160c9190612b4a565b6116169190612b4a565b106116525760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6109c46006546007546008546116689190612b4a565b6116729190612b4a565b106113fa5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6000546001600160a01b031633146116d85760405162461bcd60e51b8152600401610bd690612aa5565b600381111561171e5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610bd6565b601b55565b6000546001600160a01b0316331461174d5760405162461bcd60e51b8152600401610bd690612aa5565b60008054911515600160d81b0260ff60d81b19909216919091179055565b6000546001600160a01b031633146117955760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b0381166117fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006118c284610efa565b11156119015760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610bd6565b601954600160a01b900460ff161561191e57610e5d838383611ddd565b6001600160a01b0383166000908152601360205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bd6565b6001600160a01b03841660009081526018602052604090205460ff161580156119bc57506001600160a01b03831660009081526018602052604090205460ff16155b80156119d15750601a54600160a01b900460ff165b80156119df57506000601b54115b15611a63576000805b601b54811015611a465760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150611a3386836001611ddd565b5080611a3e81612bf3565b9150506119e8565b50601b54611a55906001612b82565b611a5f9084612ba1565b9250505b6001600160a01b038416600090815260176020526040812054819060ff1680611aa457506001600160a01b03851660009081526017602052604090205460ff165b15611d7b576001600160a01b03861660009081526018602052604090205460ff16158015611aeb57506001600160a01b03851660009081526018602052604090205460ff16155b15611d5657600054600160a81b900460ff168015611b095750600d54155b15611b1357600080fd5b600054600160a81b900460ff168015611b355750600054600160b01b900460ff165b8015611b4f5750600954600d54611b4c9190612b4a565b43105b15611b98576001600160a01b03851660009081526017602052604090205460ff16611b98576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611c14576001600160a01b03861660009081526017602052604090205460ff1615611bf257600a54841115611bed5760405162461bcd60e51b8152600401610bd690612a62565b611c14565b600c54841115611c145760405162461bcd60e51b8152600401610bd690612a62565b600054600160c81b900460ff168015611c4557506001600160a01b03861660009081526017602052604090205460ff165b15611cc0576001600160a01b038516600090815260136020526040902054600b54611c708683612b4a565b1115611cbe5760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610bd6565b505b6001600160a01b03851660009081526017602052604090205460ff1615611d5157601954600160a01b900460ff16611d5157306000908152601360205260409020548015611d4f576000600754600654600454600354611d209190612b4a565b611d2a9190612b4a565b611d349190612b4a565b90508582811115611d425750815b611d4c8183611e92565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611d7b575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611dbd57506001600160a01b03861660009081526017602052604090205460ff16155b15611dc6575060015b611dd4878787868686612558565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611e07908490612ba1565b90915550506001600160a01b03831660009081526013602052604081208054849290611e34908490612b4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8091815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611eaf57612547565b611eb98180612b4a565b90506000600454600754611ecd9190612b4a565b9050600082611edc8386612b82565b611ee69190612b62565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f2e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611f6c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615612039576016546001600160a01b031663791ac947611fb28488612ba1565b60008430426040518663ffffffff1660e01b8152600401611fd7959493929190612ada565b600060405180830381600087803b158015611ff157600080fd5b505af1925050508015612002575060015b612034576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a16120e2565b6120e2565b6016546001600160a01b0316635c11d7956120548488612ba1565b601a546040516001600160e01b031960e085901b168152612089929160009187916001600160a01b0316904290600401612ada565b600060405180830381600087803b1580156120a357600080fd5b505af19250505080156120b4575060015b6120e2576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b6120ec8385612ba1565b935060008060008060149054906101000a900460ff161561227457479250866121158785612b82565b61211f9190612b62565b915061212b8284612ba1565b905060008111801561214757506002546001600160a01b031615155b15612188576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612186573d6000803e3d6000fd5b505b6000851180156121985750600082115b1561226f5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561220857600080fd5b505af193505050508015612239575060408051601f3d908101601f19168201909252612236918101906129e2565b60015b61226b576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a1612540565b5050505b612540565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b1580156122bd57600080fd5b505afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f591906129a9565b9350876123028886612b82565b61230c9190612b62565b92506123188385612ba1565b915082156123ae57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac9190612975565b505b811561244757601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612975565b505b6000861180156124575750600083115b1561253e5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156124d857600080fd5b505af1925050508015612508575060408051601f3d908101601f19168201909252612505918101906129e2565b60015b61253a576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a161253e565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b03861660009081526013602052604090205461257c908590612ba1565b6001600160a01b038716600090815260136020526040812091909155831561267257600083156125bd576007546006546125b69190612b4a565b90506125d0565b6004546003546125cd9190612b4a565b90505b60006127106125df8389612b82565b6125e99190612b62565b90508015612608576125fb8184612b4a565b925061260889308361270f565b60008561263157612710600554896126209190612b82565b61262a9190612b62565b905061264f565b612710600854896126429190612b82565b61264c9190612b62565b90505b801561266e5761265f8185612b4a565b935061266e8a61dead8361270f565b5050505b81801561269857506001600160a01b03871660009081526018602052604090205460ff16155b80156126bd57506001600160a01b03861660009081526018602052604090205460ff16155b15612700576000612710601d54876126d59190612b82565b6126df9190612b62565b905080156126fe576126f18183612b4a565b91506126fe88308361270f565b505b611dd4878761270f8489612ba1565b6001600160a01b038216600090815260136020526040902054612733908290612b4a565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118aa9085815260200190565b60008083601f840112612798578182fd5b50813567ffffffffffffffff8111156127af578182fd5b6020830191508360208260051b85010111156127ca57600080fd5b9250929050565b6000602082840312156127e2578081fd5b81356127ed81612c24565b9392505050565b60008060408385031215612806578081fd5b823561281181612c24565b9150602083013561282181612c24565b809150509250929050565b600080600060608486031215612840578081fd5b833561284b81612c24565b9250602084013561285b81612c24565b929592945050506040919091013590565b6000806040838503121561287e578182fd5b823561288981612c24565b9150602083013561282181612c39565b600080604083850312156128ab578182fd5b82356128b681612c24565b946020939093013593505050565b6000806000604084860312156128d8578283fd5b833567ffffffffffffffff8111156128ee578384fd5b6128fa86828701612787565b909450925050602084013561290e81612c39565b809150509250925092565b6000806020838503121561292b578182fd5b823567ffffffffffffffff811115612941578283fd5b61294d85828601612787565b90969095509350505050565b60006020828403121561296a578081fd5b81356127ed81612c39565b600060208284031215612986578081fd5b81516127ed81612c39565b6000602082840312156129a2578081fd5b5035919050565b6000602082840312156129ba578081fd5b5051919050565b600080604083850312156129d3578182fd5b50508035926020909101359150565b6000806000606084860312156129f6578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015612a3b57858101830151858201604001528201612a1f565b81811115612a4c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612b295784516001600160a01b031683529383019391830191600101612b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b5d57612b5d612c0e565b500190565b600082612b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b9c57612b9c612c0e565b500290565b600082821015612bb357612bb3612c0e565b500390565b600181811c90821680612bcc57607f821691505b60208210811415612bed57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c0757612c07612c0e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461120e57600080fd5b801515811461120e57600080fdfea264697066735822122031bc51c1fd2536d4267230863c152e93e164a53162096a08822300508c676a7464736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447524f4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c91300000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c913000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000c9f2c9cd04674edea40000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : stringParams (string[]): GROK,GROK
Arg [1] : addressParams (address[]): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,0x13b9e9B0a7640099F17Fc27F6d159149e2d1C913,0x13b9e9B0a7640099F17Fc27F6d159149e2d1C913
Arg [2] : numberParams (uint256[]): 18,1000000000000000000000000000000,300,100,200,300,100,200,0,0,0,0,2
Arg [3] : boolParams (bool[]): True,True,True,True,True,True,True,True
-----Encoded View---------------
39 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [3] : 00000000000000000000000000000000000000000000000000000000000003c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 47524f4b00000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 47524f4b00000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [13] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [14] : 00000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c913
Arg [15] : 00000000000000000000000013b9e9b0a7640099f17fc27f6d159149e2d1c913
Arg [16] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [18] : 000000000000000000000000000000000000000c9f2c9cd04674edea40000000
Arg [19] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [21] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [22] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [24] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [26] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [33] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [34] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [35] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode Sourcemap
11959:15108:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9047:145;;;;;;;;;;;;;:::i;:::-;;8512:45;;;;;;;;;;-1:-1:-1;8512:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8169:14:1;;8162:22;8144:41;;8132:2;8117:18;8512:45:0;;;;;;;;8291:66;;;;;;;;;;-1:-1:-1;8291:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14797:25:1;;;14785:2;14770:18;8291:66:0;14752:76:1;7389:29:0;;;;;;;;;;-1:-1:-1;7389:29:0;;;;-1:-1:-1;;;7389:29:0;;;;;;9200:87;;;;;;;;;;;;;:::i;7968:27::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16444:97::-;;;;;;;;;;-1:-1:-1;16444:97:0;;;;;:::i;:::-;;:::i;10873:184::-;;;;;;;;;;-1:-1:-1;10873:184:0;;;;;:::i;:::-;;:::i;9394:87::-;;;;;;;;;;;;;:::i;16104:68::-;;;;;;;;;;-1:-1:-1;16104:68:0;;;;;:::i;:::-;;:::i;11250:225::-;;;;;;;;;;-1:-1:-1;11250:225:0;;;;;:::i;:::-;;:::i;7217:25::-;;;;;;;;;;-1:-1:-1;7217:25:0;;;;-1:-1:-1;;;7217:25:0;;;;;;7640:30;;;;;;;;;;;;;;;;8077:35;;;;;;;;;;;;;;;;16403:32;;;;;;;;;;-1:-1:-1;16403:32:0;;;;-1:-1:-1;;;16403:32:0;;;;;;8416:35;;;;;;;;;;-1:-1:-1;8416:35:0;;;;-1:-1:-1;;;;;8416:35:0;;;;;;-1:-1:-1;;;;;5575:32:1;;;5557:51;;5545:2;5530:18;8416:35:0;5512:102:1;15278:404:0;;;;;;;;;;-1:-1:-1;15278:404:0;;;;;:::i;:::-;;:::i;7793:21::-;;;;;;;;;;;;;;;;8038:32;;;;;;;;;;;;;;;;7459:27;;;;;;;;;;-1:-1:-1;7459:27:0;;;;-1:-1:-1;;;7459:27:0;;;;;;7677:33;;;;;;;;;;;;;;;;8458:45;;;;;;;;;;-1:-1:-1;8458:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8564:24;;;;;;;;;;-1:-1:-1;8564:24:0;;;;-1:-1:-1;;;;;8564:24:0;;;16183:212;;;;;;;;;;-1:-1:-1;16183:212:0;;;;;:::i;:::-;;:::i;7929:30::-;;;;;;;;;;;;;;;;7284:27;;;;;;;;;;-1:-1:-1;7284:27:0;;;;-1:-1:-1;;;7284:27:0;;;;;;11483:328;;;;;;;;;;-1:-1:-1;11483:328:0;;;;;:::i;:::-;;:::i;7894:28::-;;;;;;;;;;;;;;;;9295:91;;;;;;;;;;;;;:::i;8240:44::-;;;;;;;;;;-1:-1:-1;8240:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10426:263;;;;;;;;;;-1:-1:-1;10426:263:0;;;;;:::i;:::-;;:::i;1405:241::-;;;;;;;;;;;;;:::i;17101:259::-;;;;;;;;;;-1:-1:-1;17101:259:0;;;;;:::i;:::-;;:::i;7753:31::-;;;;;;;;;;;;;;;;8932:107;;;;;;;;;;-1:-1:-1;8932:107:0;;;;;:::i;:::-;;:::i;15690:206::-;;;;;;;;;;-1:-1:-1;15690:206:0;;;;;:::i;:::-;;:::i;12028:41::-;;;;;;;;;;-1:-1:-1;12028:41:0;;;;-1:-1:-1;;;;;12028:41:0;;;7823:27;;;;;;;;;;;;;;;;2155:79;;;;;;;;;;-1:-1:-1;2193:7:0;2220:6;-1:-1:-1;;;;;2220:6:0;2155:79;;21067:155;;;;;;;;;;-1:-1:-1;21067:155:0;;;;;:::i;:::-;;:::i;8597:327::-;;;;;;;;;;-1:-1:-1;8597:327:0;;;;;:::i;:::-;;:::i;8002:29::-;;;;;;;;;;;;;:::i;7355:27::-;;;;;;;;;;-1:-1:-1;7355:27:0;;;;-1:-1:-1;;;7355:27:0;;;;;;26909:118;;;;;;;;;;-1:-1:-1;26909:118:0;;;;;:::i;:::-;;:::i;15080:190::-;;;;;;;;;;-1:-1:-1;15080:190:0;;;;;:::i;:::-;;:::i;7857:30::-;;;;;;;;;;;;;;;;9489:551;;;;;;;;;;-1:-1:-1;9489:551:0;;;;;:::i;:::-;;:::i;21032:26::-;;;;;;;;;;;;;;;;7717:29;;;;;;;;;;;;;;;;7318:28;;;;;;;;;;-1:-1:-1;7318:28:0;;;;-1:-1:-1;;;7318:28:0;;;;;;7605;;;;;;;;;;;;;;;;8364:43;;;;;;;;;;-1:-1:-1;8364:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7251:26;;;;;;;;;;-1:-1:-1;7251:26:0;;;;-1:-1:-1;;;7251:26:0;;;;;;7568:30;;;;;;;;;;;;;;;;8192:41;;;;;;;;;;-1:-1:-1;8192:41:0;-1:-1:-1;;8192:41:0;;7425:27;;;;;;;;;;-1:-1:-1;7425:27:0;;;;-1:-1:-1;;;7425:27:0;;;;;;17055:37;;;;;;;;;;-1:-1:-1;17055:37:0;;;;;;;;10697:168;;;;;;;;;;-1:-1:-1;10697:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;10830:18:0;;;10803:7;10830:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10697:168;16850:31;;;;;;;;;;;;;;;;7495:23;;;;;;;;;;-1:-1:-1;7495:23:0;;;;-1:-1:-1;;;;;7495:23:0;;;16890:157;;;;;;;;;;-1:-1:-1;16890:157:0;;;;;:::i;:::-;;:::i;7525:34::-;;;;;;;;;;-1:-1:-1;7525:34:0;;;;-1:-1:-1;;;;;7525:34:0;;;10335:83;;;;;;;;;;-1:-1:-1;10335:83:0;;;;;:::i;:::-;;:::i;1801:273::-;;;;;;;;;;-1:-1:-1;1801:273:0;;;;;:::i;:::-;;:::i;9047:145::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;;;;;;;;;9103:15:::1;::::0;:20;9095:48:::1;;;::::0;-1:-1:-1;;;9095:48:0;;10995:2:1;9095:48:0::1;::::0;::::1;10977:21:1::0;11034:2;11014:18;;;11007:30;-1:-1:-1;;;11053:18:1;;;11046:45;11108:18;;9095:48:0::1;10967:165:1::0;9095:48:0::1;9172:12;9154:15;:30:::0;9047:145::o;9200:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9274:5:::1;9256:23:::0;;-1:-1:-1;;;;9256:23:0::1;::::0;;9200:87::o;7968:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16444:97::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16511:13:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;16511:22:0::1;-1:-1:-1::0;;;;16511:22:0;;::::1;::::0;;;::::1;::::0;;16444:97::o;10873:184::-;10973:4;10990:37;10999:10;11011:7;11020:6;10990:8;:37::i;:::-;-1:-1:-1;11045:4:0;10873:184;;;;:::o;9394:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9468:5:::1;9450:23:::0;;-1:-1:-1;;;;9450:23:0::1;::::0;;9394:87::o;16104:68::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16158:2:::1;:6:::0;16104:68::o;11250:225::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11373:9:::1;11368:100;11388:15:::0;;::::1;11368:100;;;11450:6;11425:13;:22;11439:4;;11444:1;11439:7;;;;;-1:-1:-1::0;;;11439:7:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11425:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11425:22:0;:31;;-1:-1:-1;;11425:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11405:3;::::1;::::0;::::1;:::i;:::-;;;;11368:100;;;;11250:225:::0;;;:::o;15278:404::-;15410:4;15427:36;15437:6;15445:9;15456:6;15427:9;:36::i;:::-;-1:-1:-1;;;;;15478:19:0;;8231:1;15478:19;;;:11;:19;;;;;;;;15498:10;15478:31;;;;;;;;-1:-1:-1;;15478:38:0;15474:179;;-1:-1:-1;;;;;15584:19:0;;;;;;:11;:19;;;;;;;;15604:10;15584:31;;;;;;;;:57;;15635:6;;15584:57;:::i;:::-;-1:-1:-1;;;;;15533:19:0;;;;;;:11;:19;;;;;;;;15553:10;15533:31;;;;;;;:108;15474:179;-1:-1:-1;15670:4:0;15278:404;;;;;:::o;16183:212::-;-1:-1:-1;;;;;16263:20:0;;16239:7;16263:20;;;:11;:20;;;;;;;;:47;;;;-1:-1:-1;;;;;;16288:22:0;;;;;;:13;:22;;;;;;;;16287:23;16263:47;16259:129;;;-1:-1:-1;16334:1:0;;16183:212;-1:-1:-1;16183:212:0:o;16259:129::-;-1:-1:-1;16375:1:0;;16183:212;-1:-1:-1;16183:212:0:o;11483:328::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11608:16:::1;::::0;-1:-1:-1;;;11608:16:0;::::1;;;11600:48;;;::::0;-1:-1:-1;;;11600:48:0;;14172:2:1;11600:48:0::1;::::0;::::1;14154:21:1::0;14211:2;14191:18;;;14184:30;-1:-1:-1;;;14230:18:1;;;14223:49;14289:18;;11600:48:0::1;14144:169:1::0;11600:48:0::1;11686:3;11667:22:::0;::::1;11659:31;;;::::0;::::1;;11706:9;11701:103;11717:20:::0;;::::1;11701:103;;;11787:5;11759:11;:25;11771:9;;11781:1;11771:12;;;;;-1:-1:-1::0;;;11771:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11759:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11759:25:0;:33;;-1:-1:-1;;11759:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11739:3:::1;::::0;::::1;:::i;:::-;;;11701:103;;9295:91:::0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9373:5:::1;9353:25:::0;;-1:-1:-1;;;;9353:25:0::1;::::0;;9295:91::o;10426:263::-;10527:9;;10492:7;;-1:-1:-1;;;;;10516:20:0;;;10527:9;;10516:20;:47;;;;-1:-1:-1;10554:9:0;;-1:-1:-1;;;;;10554:9:0;10540:10;:23;10516:47;:59;;;;-1:-1:-1;10567:8:0;;-1:-1:-1;;;10567:8:0;;;;10516:59;10512:134;;;10610:9;;-1:-1:-1;;;;;10610:9:0;10623:1;10600:20;;;:9;:20;;;;;;10592:42;;;;-1:-1:-1;;;10592:42:0;;14520:2:1;10592:42:0;;;14502:21:1;14559:1;14539:18;;;14532:29;-1:-1:-1;;;14577:18:1;;;14570:35;14622:18;;10592:42:0;14492:154:1;10592:42:0;-1:-1:-1;;;;;;10663:18:0;;;;;:9;:18;;;;;;;10426:263::o;1405:241::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;1502:6:::1;::::0;;1467:109:::1;::::0;1523:42:::1;::::0;-1:-1:-1;;;;;1502:6:0;;::::1;::::0;1467:109:::1;::::0;::::1;1587:6;:51:::0;;-1:-1:-1;;;;;;1587:51:0::1;1596:42;1587:51;::::0;;1405:241::o;17101:259::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;17216:6:::1;17212:141;;;17281:12;;17268:10;;17253:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;17239:11;:54:::0;17101:259;:::o;17212:141::-:1;17340:1;17326:11;:15:::0;17212:141:::1;17101:259:::0;:::o;8932:107::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9006:15:::1;:25:::0;8932:107::o;15690:206::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16032:18;;16079:8;;;15766:56:::1;;;::::0;-1:-1:-1;;;15766:56:0;;9471:2:1;15766:56:0::1;::::0;::::1;9453:21:1::0;9510:2;9490:18;;;9483:30;9549:28;9529:18;;;9522:56;9595:18;;15766:56:0::1;9443:176:1::0;15766:56:0::1;15833:11;:18:::0;;-1:-1:-1;;;;;15833:18:0;;::::1;-1:-1:-1::0;;;;;;15833:18:0;;::::1;::::0;::::1;::::0;;:11:::1;15862:19:::0;;;:13:::1;:19;::::0;;;;:26;;-1:-1:-1;;15862:26:0::1;15833:18:::0;15862:26:::1;::::0;;15690:206::o;21067:155::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;21157:4:::1;21145:8;:16;;21137:44;;;::::0;-1:-1:-1;;;21137:44:0;;12431:2:1;21137:44:0::1;::::0;::::1;12413:21:1::0;12470:2;12450:18;;;12443:30;-1:-1:-1;;;12489:18:1;;;12482:45;12544:18;;21137:44:0::1;12403:165:1::0;21137:44:0::1;21192:11;:22:::0;21067:155::o;8597:327::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;8724:12:::1;:28:::0;;;8763:13:::1;:30:::0;;;8826:29;;::::1;;8804:112;;;::::0;-1:-1:-1;;;8804:112:0;;9826:2:1;8804:112:0::1;::::0;::::1;9808:21:1::0;9865:2;9845:18;;;9838:30;9904:34;9884:18;;;9877:62;-1:-1:-1;;;9955:18:1;;;9948:31;9996:19;;8804:112:0::1;9798:223:1::0;8804:112:0::1;8597:327:::0;;:::o;8002:29::-;;;;;;;:::i;26909:118::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26991:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;26991:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26909:118::o;15080:190::-;15183:4;15200:40;15210:10;15222:9;15233:6;15200:9;:40::i;9489:551::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9580:15:::1;::::0;-1:-1:-1;;;9580:15:0;::::1;;;9572:47;;;::::0;-1:-1:-1;;;9572:47:0;;13824:2:1;9572:47:0::1;::::0;::::1;13806:21:1::0;13863:2;13843:18;;;13836:30;-1:-1:-1;;;13882:18:1;;;13875:49;13941:18;;9572:47:0::1;13796:169:1::0;9572:47:0::1;9642:7;;9650:1;9642:10;;;;;-1:-1:-1::0;;;9642:10:0::1;;;;;;;;;;;::::0;;;::::1;;9630:9;:22:::0;-1:-1:-1;9677:7:0;;9685:1:::1;9677:10:::0;;::::1;;;-1:-1:-1::0;;;9677:10:0::1;;;;;;;;;;;::::0;;;::::1;;9663:11;:24:::0;-1:-1:-1;9712:7:0;;9720:1:::1;9712:10:::0;;::::1;;;-1:-1:-1::0;;;9712:10:0::1;;;;;;;;;;;;;;;9698:11;:24;;;;9748:7;;9756:1;9748:10;;;;;-1:-1:-1::0;;;9748:10:0::1;;;;;;;;;;;::::0;;;::::1;;9735;:23:::0;-1:-1:-1;9784:7:0;;9792:1:::1;9784:10:::0;;::::1;;;-1:-1:-1::0;;;9784:10:0::1;;;;;;;;;;;::::0;;;::::1;;9769:12;:25:::0;-1:-1:-1;9820:7:0;;9828:1:::1;9820:10:::0;;::::1;;;-1:-1:-1::0;;;9820:10:0::1;;;;;;;;;;;;;;;9805:12;:25;;;;9891:4;9877:11;;9865:9;;9851:11;;:23;;;;:::i;:::-;:37;;;;:::i;:::-;:44;9843:69;;;::::0;-1:-1:-1;;;9843:69:0;;13136:2:1;9843:69:0::1;::::0;::::1;13118:21:1::0;13175:2;13155:18;;;13148:30;-1:-1:-1;;;13194:18:1;;;13187:42;13246:18;;9843:69:0::1;13108:162:1::0;9843:69:0::1;9988:4;9973:12;;9960:10;;9945:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;:47;9923:109;;;::::0;-1:-1:-1;;;9923:109:0;;13136:2:1;9923:109:0::1;::::0;::::1;13118:21:1::0;13175:2;13155:18;;;13148:30;-1:-1:-1;;;13194:18:1;;;13187:42;13246:18;;9923:109:0::1;13108:162:1::0;16890:157:0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16981:1:::1;16969:8;:13;;16961:44;;;::::0;-1:-1:-1;;;16961:44:0;;13477:2:1;16961:44:0::1;::::0;::::1;13459:21:1::0;13516:2;13496:18;;;13489:30;-1:-1:-1;;;13535:18:1;;;13528:48;13593:18;;16961:44:0::1;13449:168:1::0;16961:44:0::1;17016:12;:23:::0;16890:157::o;10335:83::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;10398:8:::1;:12:::0;;;::::1;;-1:-1:-1::0;;;10398:12:0::1;-1:-1:-1::0;;;;10398:12:0;;::::1;::::0;;;::::1;::::0;;10335:83::o;1801:273::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1896:22:0;::::1;1874:110;;;::::0;-1:-1:-1;;;1874:110:0;;10588:2:1;1874:110:0::1;::::0;::::1;10570:21:1::0;10627:2;10607:18;;;10600:30;10666:34;10646:18;;;10639:62;-1:-1:-1;;;10717:18:1;;;10710:36;10763:19;;1874:110:0::1;10560:228:1::0;1874:110:0::1;2021:6;::::0;;2000:38:::1;::::0;-1:-1:-1;;;;;2000:38:0;;::::1;::::0;2021:6;::::1;::::0;2000:38:::1;::::0;::::1;2049:6;:17:::0;;-1:-1:-1;;;;;;2049:17:0::1;-1:-1:-1::0;;;;;2049:17:0;;;::::1;::::0;;;::::1;::::0;;1801:273::o;11065:177::-;-1:-1:-1;;;;;11150:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11202:32;;14797:25:1;;;11202:32:0;;14770:18:1;11202:32:0;;;;;;;;11065:177;;;:::o;17368:3656::-;17469:1;17452:14;17461:4;17452:8;:14::i;:::-;:18;17448:83;;;17487:32;;-1:-1:-1;;;17487:32:0;;11684:2:1;17487:32:0;;;11666:21:1;11723:2;11703:18;;;11696:30;-1:-1:-1;;;11742:18:1;;;11735:44;11796:18;;17487:32:0;11656:164:1;17487:32:0;17547:6;;-1:-1:-1;;;17547:6:0;;;;17543:92;;;17570:32;17585:4;17591:2;17595:6;17570:14;:32::i;17543:92::-;-1:-1:-1;;;;;17665:15:0;;17647;17665;;;:9;:15;;;;;;17699:17;;;;17691:46;;;;-1:-1:-1;;;17691:46:0;;11339:2:1;17691:46:0;;;11321:21:1;11378:2;11358:18;;;11351:30;-1:-1:-1;;;11397:18:1;;;11390:46;11453:18;;17691:46:0;11311:166:1;17691:46:0;-1:-1:-1;;;;;17769:19:0;;;;;;:13;:19;;;;;;;;17768:20;:55;;;;-1:-1:-1;;;;;;17806:17:0;;;;;;:13;:17;;;;;;;;17805:18;17768:55;:85;;;;-1:-1:-1;17840:13:0;;-1:-1:-1;;;17840:13:0;;;;17768:85;:118;;;;;17885:1;17870:12;;:16;17768:118;17750:653;;;17913:10;;17938:413;17959:12;;17955:1;:16;17938:413;;;18145:44;;;;;;5279:19:1;;;5314:12;;;5307:28;;;18173:15:0;5351:12:1;;;5344:28;5388:12;;18145:44:0;;;;;;;;;;;;18101:119;;;;;;18066:181;;17997:292;;18308:27;18323:4;18329:2;18333:1;18308:14;:27::i;:::-;-1:-1:-1;17973:3:0;;;;:::i;:::-;;;;17938:413;;;-1:-1:-1;18375:12:0;;:16;;18390:1;18375:16;:::i;:::-;18365:26;;;;:::i;:::-;;;17750:653;;-1:-1:-1;;;;;18466:19:0;;18415:12;18466:19;;;:13;:19;;;;;;18415:12;;18466:19;;;:40;;-1:-1:-1;;;;;;18489:17:0;;;;;;:13;:17;;;;;;;;18466:40;18462:2351;;;-1:-1:-1;;;;;18528:19:0;;;;;;:13;:19;;;;;;;;18527:20;:42;;;;-1:-1:-1;;;;;;18552:17:0;;;;;;:13;:17;;;;;;;;18551:18;18527:42;18523:2194;;;18594:14;;-1:-1:-1;;;18594:14:0;;;;:38;;;;-1:-1:-1;18617:15:0;;18612:20;18594:38;18590:101;;;18657:14;;;;18735;;-1:-1:-1;;;18735:14:0;;;;:54;;;;-1:-1:-1;18774:15:0;;-1:-1:-1;;;18774:15:0;;;;18735:54;:114;;;;;18847:2;;18829:15;;:20;;;;:::i;:::-;18814:12;:35;18735:114;18709:249;;;-1:-1:-1;;;;;18897:17:0;;;;;;:13;:17;;;;;;;;18892:46;;-1:-1:-1;;;;;18916:15:0;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;18916:22:0;18934:4;18916:22;;;18892:46;18982:15;;-1:-1:-1;;;18982:15:0;;;;18978:570;;;-1:-1:-1;;;;;19026:19:0;;;;;;:13;:19;;;;;;;;19022:507;;;19153:12;;19143:6;:22;;19105:155;;;;-1:-1:-1;;;19105:155:0;;;;;;;:::i;:::-;19022:507;;;19397:13;;19387:6;:23;;19349:156;;;;-1:-1:-1;;;19349:156:0;;;;;;;:::i;:::-;19570:17;;-1:-1:-1;;;19570:17:0;;;;:40;;;;-1:-1:-1;;;;;;19591:19:0;;;;;;:13;:19;;;;;;;;19570:40;19566:285;;;-1:-1:-1;;;;;19648:13:0;;19635:10;19648:13;;;:9;:13;;;;;;19733:15;;19718:11;19723:6;19648:13;19718:11;:::i;:::-;:30;;19684:147;;;;-1:-1:-1;;;19684:147:0;;10228:2:1;19684:147:0;;;10210:21:1;10267:2;10247:18;;;10240:30;10306:33;10286:18;;;10279:61;10357:18;;19684:147:0;10200:181:1;19684:147:0;19566:285;;-1:-1:-1;;;;;19875:17:0;;;;;;:13;:17;;;;;;;;19871:798;;;19922:6;;-1:-1:-1;;;19922:6:0;;;;19917:733;;20006:4;19957:28;19988:24;;;:9;:24;;;;;;20043;;20039:588;;20100:15;20258:10;;20210:12;;20165:9;;20118:11;;:56;;;;:::i;:::-;:104;;;;:::i;:::-;:150;;;;:::i;:::-;20100:168;-1:-1:-1;20329:6:0;20370:42;;;20366:157;;;-1:-1:-1;20471:20:0;20366:157;20553:46;20570:19;20591:7;20553:16;:46::i;:::-;20039:588;;;19917:733;;20697:4;20687:14;;18523:2194;-1:-1:-1;;;;;20735:17:0;;;;;;:13;:17;;;;;;;;20731:71;;;-1:-1:-1;20782:4:0;20731:71;-1:-1:-1;;;;;20856:19:0;;20825:15;20856:19;;;:13;:19;;;;;;;;20855:20;:42;;;;-1:-1:-1;;;;;;20880:17:0;;;;;;:13;:17;;;;;;;;20879:18;20855:42;20851:92;;;-1:-1:-1;20927:4:0;20851:92;20955:61;20970:4;20976:2;20980:6;20988:7;20997:6;21005:10;20955:14;:61::i;:::-;17368:3656;;;;;;;:::o;16549:293::-;-1:-1:-1;;;;;16693:17:0;;16676:4;16693:17;;;:9;:17;;;;;:27;;16714:6;;16693:17;16676:4;;16693:27;;16714:6;;16693:27;:::i;:::-;;;;-1:-1:-1;;;;;;;16731:20:0;;;;;;:9;:20;;;;;:30;;16755:6;;16731:20;:30;;16755:6;;16731:30;:::i;:::-;;;;;;;;16794:9;-1:-1:-1;;;;;16777:35:0;16786:6;-1:-1:-1;;;;;16777:35:0;;16805:6;16777:35;;;;14797:25:1;;14785:2;14770:18;;14752:76;16777:35:0;;;;;;;;-1:-1:-1;16830:4:0;16549:293;;;;;:::o;23086:3594::-;12112:6;:13;;-1:-1:-1;;;;12112:13:0;-1:-1:-1;;;12112:13:0;;;23210:12;23206:25:::1;;23224:7;;23206:25;23241:18;23252:7:::0;;23241:18:::1;:::i;:::-;;;23270:13;23299:9;;23286:10;;:22;;;;:::i;:::-;23270:38:::0;-1:-1:-1;23319:16:0::1;23362:7:::0;23339:19:::1;23270:38:::0;23339:11;:19:::1;:::i;:::-;23338:31;;;;:::i;:::-;23406:16;::::0;;23420:1:::1;23406:16:::0;;;;;::::1;::::0;;23319:50;;-1:-1:-1;23382:21:0::1;::::0;23406:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23406:16:0::1;23382:40;;23451:4;23433;23438:1;23433:7;;;;;;-1:-1:-1::0;;;23433:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;23433:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23477:8:::1;::::0;;23467:7;;23477:8;::::1;::::0;23467:4;;23477:8;23467:7;::::1;;;-1:-1:-1::0;;;23467:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;23467:18:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:18;23500:13:::1;::::0;::::1;-1:-1:-1::0;;;23500:13:0;;::::1;;23496:1004;;;23581:11;::::0;-1:-1:-1;;;;;23581:11:0::1;:62;23666:22;23680:8:::0;23666:11;:22:::1;:::i;:::-;23711:1;23763:4;23798;23842:15;23581:295;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;23560:438;;23923:59;::::0;::::1;::::0;;;::::1;23496:1004;;23560:438;23496:1004;;;24051:11;::::0;-1:-1:-1;;;;;24051:11:0::1;:87;24165:22;24179:8:::0;24165:11;:22:::1;:::i;:::-;24281:17;::::0;24051:313:::1;::::0;-1:-1:-1;;;;;;24051:313:0::1;::::0;;;;;;::::1;::::0;;24214:1:::1;::::0;24242:4;;-1:-1:-1;;;;;24281:17:0::1;::::0;24326:15:::1;::::0;24051:313:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;24030:459;;24411:62;::::0;::::1;::::0;;;::::1;24030:459;24512:16;24523:5:::0;24512:16;::::1;:::i;:::-;;;24539:19;24573:14:::0;24602:18:::1;24639:13:::0;::::1;;;;;;;;;;24635:2038;;;24683:21;::::0;-1:-1:-1;24752:7:0;24729:19:::1;24743:5:::0;24683:21;24729:19:::1;:::i;:::-;24728:31;;;;:::i;:::-;24719:40:::0;-1:-1:-1;24787:20:0::1;24719:40:::0;24787:11;:20:::1;:::i;:::-;24774:33;;24839:1;24826:10;:14;:43;;;;-1:-1:-1::0;24844:11:0::1;::::0;-1:-1:-1;;;;;24844:11:0::1;:25:::0;::::1;24826:43;24822:116;;;24890:11;::::0;:32:::1;::::0;-1:-1:-1;;;;;24890:11:0;;::::1;::::0;:32;::::1;;;::::0;24911:10;;24890:11:::1;:32:::0;:11;:32;24911:10;24890:11;:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24822:116;24967:1;24956:8;:12;:26;;;;;24981:1;24972:6;:10;24956:26;24952:504;;;25066:11;::::0;25266::::1;::::0;25066:276:::1;::::0;-1:-1:-1;;;25066:276:0;;25143:4:::1;25066:276;::::0;::::1;7733:34:1::0;7783:18;;;7776:34;;;25066:11:0::1;7826:18:1::0;;;7819:34;;;7869:18;;;7862:34;-1:-1:-1;;;;;25266:11:0;;::::1;7912:19:1::0;;;7905:44;25304:15:0::1;7965:19:1::0;;;7958:35;25066:11:0;::::1;::::0;:27:::1;::::0;25101:6;;7667:19:1;;25066:276:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;25066:276:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;25066:276:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;25041:400;;25397:24;::::0;::::1;::::0;;;::::1;24635:2038;;25041:400;;;;;24635:2038;;;25509:8;::::0;25570:17:::1;::::0;25547:42:::1;::::0;-1:-1:-1;;;25547:42:0;;-1:-1:-1;;;;;25570:17:0;;::::1;25547:42;::::0;::::1;5557:51:1::0;25509:8:0;::::1;::::0;;;25547:14:::1;::::0;5530:18:1;;25547:42:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25533:56:::0;-1:-1:-1;25637:7:0;25614:19:::1;25628:5:::0;25533:56;25614:19:::1;:::i;:::-;25613:31;;;;:::i;:::-;25604:40:::0;-1:-1:-1;25672:20:0::1;25604:40:::0;25672:11;:20:::1;:::i;:::-;25659:33:::0;-1:-1:-1;25713:10:0;;25709:201:::1;;25792:17;::::0;25744:150:::1;::::0;-1:-1:-1;;;25744:150:0;;-1:-1:-1;;;;;25792:17:0;;::::1;25744:150;::::0;::::1;6091:34:1::0;25841:4:0::1;6141:18:1::0;;;6134:43;6193:18;;;6186:34;;;25744:17:0;;::::1;::::0;::::1;::::0;6026:18:1;;25744:150:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25709:201;25930:14:::0;;25926:207:::1;;26013:17;::::0;26054:11:::1;::::0;25965:152:::1;::::0;-1:-1:-1;;;25965:152:0;;-1:-1:-1;;;;;26013:17:0;;::::1;25965:152;::::0;::::1;6091:34:1::0;26054:11:0;;::::1;6141:18:1::0;;;6134:43;6193:18;;;6186:34;;;25965:17:0;;::::1;::::0;::::1;::::0;6026:18:1;;25965:152:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25926:207;26164:1;26153:8;:12;:26;;;;;26178:1;26169:6;:10;26153:26;26149:513;;;26225:11;::::0;;26316:8;26475:11:::1;::::0;26225:326:::1;::::0;-1:-1:-1;;;26225:326:0;;26284:4:::1;26225:326;::::0;::::1;7016:34:1::0;-1:-1:-1;;;;;26316:8:0;;::::1;7066:18:1::0;;;7059:43;7118:18;;;7111:34;;;7161:18;;;7154:34;;;26225:11:0::1;7204:19:1::0;;;7197:35;;;7248:19;;;7241:35;26475:11:0;;::::1;7292:19:1::0;;;7285:44;26513:15:0::1;7345:19:1::0;;;7338:35;26225:11:0;::::1;::::0;:24:::1;::::0;6950:19:1;;26225:326:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;26225:326:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;26225:326:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;26200:447;;26606:21;::::0;::::1;::::0;;;::::1;26200:447;;;;;;;24635:2038;;12136:1;;;;;;;-1:-1:-1::0;;12148:6:0;:14;;-1:-1:-1;;;;12148:14:0;;;23086:3594::o;21230:1628::-;-1:-1:-1;;;;;21450:17:0;;;;;;:9;:17;;;;;;:27;;21470:7;;21450:27;:::i;:::-;-1:-1:-1;;;;;21430:17:0;;;;;;:9;:17;;;;;:47;;;;21518:884;;;;21546:15;21580:6;21576:156;;;21632:10;;21617:12;;:25;;;;:::i;:::-;21607:35;;21576:156;;;21707:9;;21693:11;;:23;;;;:::i;:::-;21683:33;;21576:156;21748:18;21791:5;21770:17;21780:7;21770;:17;:::i;:::-;21769:27;;;;:::i;:::-;21748:48;-1:-1:-1;21815:14:0;;21811:145;;21850:23;21863:10;21850:23;;:::i;:::-;;;21892:48;21906:6;21922:4;21929:10;21892:13;:48::i;:::-;21972:18;22010:6;22005:225;;22099:5;22084:11;;22074:7;:21;;;;:::i;:::-;22073:31;;;;:::i;:::-;22060:44;;22005:225;;;22209:5;22193:12;;22183:7;:22;;;;:::i;:::-;22182:32;;;;:::i;:::-;22169:45;;22005:225;22248:14;;22244:147;;22283:23;22296:10;22283:23;;:::i;:::-;;;22325:50;22339:6;22355;22364:10;22325:13;:50::i;:::-;21518:884;;;;22418:10;:36;;;;-1:-1:-1;;;;;;22433:21:0;;;;;;:13;:21;;;;;;;;22432:22;22418:36;:65;;;;-1:-1:-1;;;;;;22459:24:0;;;;;;:13;:24;;;;;;;;22458:25;22418:65;22414:371;;;22500:25;22586:5;22571:11;;22561:7;:21;;;;:::i;:::-;22560:31;;;;:::i;:::-;22540:51;-1:-1:-1;22612:21:0;;22608:166;;22654:30;22667:17;22654:30;;:::i;:::-;;;22703:55;22717:6;22733:4;22740:17;22703:13;:55::i;:::-;22414:371;;22797:53;22811:6;22819:9;22830:19;22840:9;22830:7;:19;:::i;:::-;-1:-1:-1;;;;;26825:13:0;;;;;;:9;:13;;;;;;:23;;26841:7;;26825:23;:::i;:::-;-1:-1:-1;;;;;26809:13:0;;;;;;;:9;:13;;;;;;;:39;;;;26864:29;;;;;;;;;;26885:7;14797:25:1;;14785:2;14770:18;;14752:76;14:395;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;166:8;156;149:26;108:2;-1:-1:-1;196:20:1;;239:18;228:30;;225:2;;;278:8;268;261:26;225:2;322:4;314:6;310:17;298:29;;382:3;375:4;365:6;362:1;358:14;350:6;346:27;342:38;339:47;336:2;;;399:1;396;389:12;336:2;98:311;;;;;:::o;414:257::-;473:6;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;591:9;578:23;610:31;635:5;610:31;:::i;:::-;660:5;484:187;-1:-1:-1;;;484:187:1:o;946:398::-;1014:6;1022;1075:2;1063:9;1054:7;1050:23;1046:32;1043:2;;;1096:6;1088;1081:22;1043:2;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;-1:-1:-1;1266:2:1;1251:18;;1238:32;1279:33;1238:32;1279:33;:::i;:::-;1331:7;1321:17;;;1033:311;;;;;:::o;1349:466::-;1426:6;1434;1442;1495:2;1483:9;1474:7;1470:23;1466:32;1463:2;;;1516:6;1508;1501:22;1463:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;-1:-1:-1;1686:2:1;1671:18;;1658:32;1699:33;1658:32;1699:33;:::i;:::-;1453:362;;1751:7;;-1:-1:-1;;;1805:2:1;1790:18;;;;1777:32;;1453:362::o;1820:392::-;1885:6;1893;1946:2;1934:9;1925:7;1921:23;1917:32;1914:2;;;1967:6;1959;1952:22;1914:2;2011:9;1998:23;2030:31;2055:5;2030:31;:::i;:::-;2080:5;-1:-1:-1;2137:2:1;2122:18;;2109:32;2150:30;2109:32;2150:30;:::i;2217:325::-;2285:6;2293;2346:2;2334:9;2325:7;2321:23;2317:32;2314:2;;;2367:6;2359;2352:22;2314:2;2411:9;2398:23;2430:31;2455:5;2430:31;:::i;:::-;2480:5;2532:2;2517:18;;;;2504:32;;-1:-1:-1;;;2304:238:1:o;2547:586::-;2639:6;2647;2655;2708:2;2696:9;2687:7;2683:23;2679:32;2676:2;;;2729:6;2721;2714:22;2676:2;2774:9;2761:23;2807:18;2799:6;2796:30;2793:2;;;2844:6;2836;2829:22;2793:2;2888:70;2950:7;2941:6;2930:9;2926:22;2888:70;:::i;:::-;2977:8;;-1:-1:-1;2862:96:1;-1:-1:-1;;3062:2:1;3047:18;;3034:32;3075:28;3034:32;3075:28;:::i;:::-;3122:5;3112:15;;;2666:467;;;;;:::o;3138:457::-;3224:6;3232;3285:2;3273:9;3264:7;3260:23;3256:32;3253:2;;;3306:6;3298;3291:22;3253:2;3351:9;3338:23;3384:18;3376:6;3373:30;3370:2;;;3421:6;3413;3406:22;3370:2;3465:70;3527:7;3518:6;3507:9;3503:22;3465:70;:::i;:::-;3554:8;;3439:96;;-1:-1:-1;3243:352:1;-1:-1:-1;;;;3243:352:1:o;3600:251::-;3656:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:2;;;3730:6;3722;3715:22;3677:2;3774:9;3761:23;3793:28;3815:5;3793:28;:::i;3856:255::-;3923:6;3976:2;3964:9;3955:7;3951:23;3947:32;3944:2;;;3997:6;3989;3982:22;3944:2;4034:9;4028:16;4053:28;4075:5;4053:28;:::i;4116:190::-;4175:6;4228:2;4216:9;4207:7;4203:23;4199:32;4196:2;;;4249:6;4241;4234:22;4196:2;-1:-1:-1;4277:23:1;;4186:120;-1:-1:-1;4186:120:1:o;4311:194::-;4381:6;4434:2;4422:9;4413:7;4409:23;4405:32;4402:2;;;4455:6;4447;4440:22;4402:2;-1:-1:-1;4483:16:1;;4392:113;-1:-1:-1;4392:113:1:o;4510:258::-;4578:6;4586;4639:2;4627:9;4618:7;4614:23;4610:32;4607:2;;;4660:6;4652;4645:22;4607:2;-1:-1:-1;;4688:23:1;;;4758:2;4743:18;;;4730:32;;-1:-1:-1;4597:171:1:o;4773:316::-;4861:6;4869;4877;4930:2;4918:9;4909:7;4905:23;4901:32;4898:2;;;4951:6;4943;4936:22;4898:2;4985:9;4979:16;4969:26;;5035:2;5024:9;5020:18;5014:25;5004:35;;5079:2;5068:9;5064:18;5058:25;5048:35;;4888:201;;;;;:::o;8661:603::-;8773:4;8802:2;8831;8820:9;8813:21;8863:6;8857:13;8906:6;8901:2;8890:9;8886:18;8879:34;8931:4;8944:140;8958:6;8955:1;8952:13;8944:140;;;9053:14;;;9049:23;;9043:30;9019:17;;;9038:2;9015:26;9008:66;8973:10;;8944:140;;;9102:6;9099:1;9096:13;9093:2;;;9172:4;9167:2;9158:6;9147:9;9143:22;9139:31;9132:45;9093:2;-1:-1:-1;9248:2:1;9227:15;-1:-1:-1;;9223:29:1;9208:45;;;;9255:2;9204:54;;8782:482;-1:-1:-1;;;8782:482:1:o;11825:399::-;12027:2;12009:21;;;12066:2;12046:18;;;12039:30;12105:34;12100:2;12085:18;;12078:62;-1:-1:-1;;;12171:2:1;12156:18;;12149:33;12214:3;12199:19;;11999:225::o;12573:356::-;12775:2;12757:21;;;12794:18;;;12787:30;12853:34;12848:2;12833:18;;12826:62;12920:2;12905:18;;12747:182::o;14833:983::-;15095:4;15143:3;15132:9;15128:19;15174:6;15163:9;15156:25;15200:2;15238:6;15233:2;15222:9;15218:18;15211:34;15281:3;15276:2;15265:9;15261:18;15254:31;15305:6;15340;15334:13;15371:6;15363;15356:22;15409:3;15398:9;15394:19;15387:26;;15448:2;15440:6;15436:15;15422:29;;15469:4;15482:195;15496:6;15493:1;15490:13;15482:195;;;15561:13;;-1:-1:-1;;;;;15557:39:1;15545:52;;15652:15;;;;15617:12;;;;15593:1;15511:9;15482:195;;;-1:-1:-1;;;;;;;15733:32:1;;;;15728:2;15713:18;;15706:60;-1:-1:-1;;;15797:3:1;15782:19;15775:35;15694:3;15104:712;-1:-1:-1;;;15104:712:1:o;15821:128::-;15861:3;15892:1;15888:6;15885:1;15882:13;15879:2;;;15898:18;;:::i;:::-;-1:-1:-1;15934:9:1;;15869:80::o;15954:217::-;15994:1;16020;16010:2;;-1:-1:-1;;;16045:31:1;;16099:4;16096:1;16089:15;16127:4;16052:1;16117:15;16010:2;-1:-1:-1;16156:9:1;;16000:171::o;16176:168::-;16216:7;16282:1;16278;16274:6;16270:14;16267:1;16264:21;16259:1;16252:9;16245:17;16241:45;16238:2;;;16289:18;;:::i;:::-;-1:-1:-1;16329:9:1;;16228:116::o;16349:125::-;16389:4;16417:1;16414;16411:8;16408:2;;;16422:18;;:::i;:::-;-1:-1:-1;16459:9:1;;16398:76::o;16479:380::-;16558:1;16554:12;;;;16601;;;16622:2;;16676:4;16668:6;16664:17;16654:27;;16622:2;16729;16721:6;16718:14;16698:18;16695:38;16692:2;;;16775:10;16770:3;16766:20;16763:1;16756:31;16810:4;16807:1;16800:15;16838:4;16835:1;16828:15;16692:2;;16534:325;;;:::o;16864:135::-;16903:3;-1:-1:-1;;16924:17:1;;16921:2;;;16944:18;;:::i;:::-;-1:-1:-1;16991:1:1;16980:13;;16911:88::o;17004:127::-;17065:10;17060:3;17056:20;17053:1;17046:31;17096:4;17093:1;17086:15;17120:4;17117:1;17110:15;17136:131;-1:-1:-1;;;;;17211:31:1;;17201:42;;17191:2;;17257:1;17254;17247:12;17272:118;17358:5;17351:13;17344:21;17337:5;17334:32;17324:2;;17380:1;17377;17370:12
Swarm Source
ipfs://bf7117543247a8b876e941b6eae3c7d544d819137d5dde247d41d7cd08633c3e
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.