Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 912 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 371413917 | 155 days ago | IN | 0 ETH | 0.00000026 | ||||
| Approve | 334300537 | 262 days ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 264830757 | 464 days ago | IN | 0 ETH | 0.0000044 | ||||
| Approve | 264830738 | 464 days ago | IN | 0 ETH | 0.0000044 | ||||
| Approve | 264821729 | 464 days ago | IN | 0 ETH | 0.00000158 | ||||
| Approve | 263691805 | 468 days ago | IN | 0 ETH | 0.00000116 | ||||
| Approve | 258839319 | 482 days ago | IN | 0 ETH | 0.00000065 | ||||
| Approve | 204341242 | 640 days ago | IN | 0 ETH | 0.00000108 | ||||
| Approve | 193854947 | 671 days ago | IN | 0 ETH | 0.00000078 | ||||
| Approve | 177495128 | 720 days ago | IN | 0 ETH | 0.00003391 | ||||
| Approve | 175119270 | 727 days ago | IN | 0 ETH | 0.00003158 | ||||
| Approve | 157458706 | 780 days ago | IN | 0 ETH | 0.00013269 | ||||
| Approve | 153166185 | 794 days ago | IN | 0 ETH | 0.00006906 | ||||
| Approve | 149381704 | 805 days ago | IN | 0 ETH | 0.00006292 | ||||
| Approve | 137167189 | 844 days ago | IN | 0 ETH | 0.00005043 | ||||
| Approve | 103381581 | 949 days ago | IN | 0 ETH | 0.0000297 | ||||
| Approve | 103381536 | 949 days ago | IN | 0 ETH | 0.0000297 | ||||
| Approve | 90736162 | 986 days ago | IN | 0 ETH | 0.00007144 | ||||
| Approve | 85709826 | 1001 days ago | IN | 0 ETH | 0.00006333 | ||||
| Approve | 84383985 | 1005 days ago | IN | 0 ETH | 0.00005861 | ||||
| Approve | 82764456 | 1009 days ago | IN | 0 ETH | 0.00006569 | ||||
| Approve | 82764361 | 1009 days ago | IN | 0 ETH | 0.00006569 | ||||
| Approve | 82512528 | 1010 days ago | IN | 0 ETH | 0.00006875 | ||||
| Approve | 82080370 | 1011 days ago | IN | 0 ETH | 0.00011076 | ||||
| Approve | 80696043 | 1015 days ago | IN | 0 ETH | 0.00004464 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 75800971 | 1030 days ago | 0 ETH | ||||
| 75800971 | 1030 days ago | 0 ETH | ||||
| 75800971 | 1030 days ago | 0 ETH | ||||
| 72789115 | 1039 days ago | 0.0000604 ETH | ||||
| 72789115 | 1039 days ago | 0.00001006 ETH | ||||
| 72789115 | 1039 days ago | 0.00007046 ETH | ||||
| 72789115 | 1039 days ago | 0.00986701 ETH | ||||
| 72789115 | 1039 days ago | 0.01201756 ETH | ||||
| 72789115 | 1039 days ago | 0.01201756 ETH | ||||
| 71193357 | 1043 days ago | 0 ETH | ||||
| 71193357 | 1043 days ago | 0 ETH | ||||
| 71193357 | 1043 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0.02746099 ETH | ||||
| 71028638 | 1044 days ago | 0.02746099 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 71028638 | 1044 days ago | 0 ETH | ||||
| 68300315 | 1052 days ago | 0.02905394 ETH | ||||
| 68300315 | 1052 days ago | 0.00484232 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ARBIFY
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2023-02-09
*/
/*
─────────────────────────────────────────────────────────────────────────────────────────────────
─██████████████─████████████████───██████████████───██████████─██████████████─████████──████████─
─██░░░░░░░░░░██─██░░░░░░░░░░░░██───██░░░░░░░░░░██───██░░░░░░██─██░░░░░░░░░░██─██░░░░██──██░░░░██─
─██░░██████░░██─██░░████████░░██───██░░██████░░██───████░░████─██░░██████████─████░░██──██░░████─
─██░░██──██░░██─██░░██────██░░██───██░░██──██░░██─────██░░██───██░░██───────────██░░░░██░░░░██───
─██░░██████░░██─██░░████████░░██───██░░██████░░████───██░░██───██░░██████████───████░░░░░░████───
─██░░░░░░░░░░██─██░░░░░░░░░░░░██───██░░░░░░░░░░░░██───██░░██───██░░░░░░░░░░██─────████░░████─────
─██░░██████░░██─██░░██████░░████───██░░████████░░██───██░░██───██░░██████████───────██░░██───────
─██░░██──██░░██─██░░██──██░░██─────██░░██────██░░██───██░░██───██░░██───────────────██░░██───────
─██░░██──██░░██─██░░██──██░░██████─██░░████████░░██─████░░████─██░░██───────────────██░░██───────
─██░░██──██░░██─██░░██──██░░░░░░██─██░░░░░░░░░░░░██─██░░░░░░██─██░░██───────────────██░░██───────
─██████──██████─██████──██████████─████████████████─██████████─██████───────────────██████───────
─────────────────────────────────────────────────────────────────────────────────────────────────
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity >=0.5.0;
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
pragma solidity >=0.5.0;
interface IWETH {
function deposit() external payable;
function transfer(address to, uint value) external returns (bool);
function withdraw(uint) external;
}
pragma solidity ^0.7.4;
library SafeMathInt {
int256 private constant MIN_INT256 = int256(1) << 255;
int256 private constant MAX_INT256 = ~(int256(1) << 255);
function mul(int256 a, int256 b) internal pure returns (int256) {
int256 c = a * b;
require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
require((b == 0) || (c / b == a));
return c;
}
function div(int256 a, int256 b) internal pure returns (int256) {
require(b != -1 || a != MIN_INT256);
return a / b;
}
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
function abs(int256 a) internal pure returns (int256) {
require(a != MIN_INT256);
return a < 0 ? -a : a;
}
}
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;
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
interface IERC20Uniswap {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function migrator() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
function setMigrator(address) external;
}
pragma solidity >=0.6.2;
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
// File: contracts/uniswapv2/interfaces/IERC20.sol
contract Ownable {
address private _owner;
event OwnershipRenounced(address indexed previousOwner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_owner = msg.sender;
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(isOwner());
_;
}
function isOwner() public view returns (bool) {
return msg.sender == _owner;
}
function renounceOwnership() public onlyOwner {
emit OwnershipRenounced(_owner);
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
abstract contract ERC20Detailed is IERC20Uniswap {
string private _name;
string private _symbol;
uint8 private _decimals;
constructor(
string memory name_,
string memory symbol_,
uint8 decimals_
) {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
}
function name() public override view returns (string memory) {
return _name;
}
function symbol() override public view returns (string memory) {
return _symbol;
}
function decimals() override public view returns (uint8) {
return _decimals;
}
}
contract ARBIFY is ERC20Detailed, Ownable {
using SafeMath for uint256;
using SafeMathInt for int256;
event LogRebase(uint256 indexed epoch, uint256 totalSupply);
string public _name = "Arbify";
string public _symbol = "ARBIFY";
uint8 public _decimals = 5;
IUniswapV2Pair public pairContract;
mapping(address => bool) _isFeeExempt;
modifier validRecipient(address to) {
require(to != address(0x0));
_;
}
uint256 public constant DECIMALS = 5;
uint256 public constant MAX_UINT256 = ~uint256(0);
uint8 public constant RATE_DECIMALS = 7;
uint256 private constant INITIAL_FRAGMENTS_SUPPLY =
325 * 10**3 * 10**DECIMALS;
uint256 public liquidityFee = 40;
uint256 public treasuryFee = 10;
uint256 public RFVFundFee = 60;
uint256 public sellFee = 20;
uint256 public firePitFee = 10;
uint256 public totalFee =
liquidityFee.add(treasuryFee).add(RFVFundFee).add(
firePitFee
);
uint256 public feeDenominator = 1000;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
address public autoLiquidityReceiver;
address public treasuryReceiver;
address public RFVFundReceiver;
address public firePit;
address public pairAddress;
bool public swapEnabled = true;
IUniswapV2Router02 public router;
address public pair;
bool inSwap = false;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
uint256 private constant TOTAL_GONS =
MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
uint256 private constant MAX_SUPPLY = 325 * 10**7 * 10**DECIMALS;
bool public _autoRebase;
bool public _autoAddLiquidity;
uint256 public _initRebaseStartTime;
uint256 public _lastRebasedTime;
uint256 public _lastAddLiquidityTime;
uint256 public _totalSupply;
uint256 private _gonsPerFragment;
mapping(address => uint256) private _gonBalances;
mapping(address => mapping(address => uint256)) private _allowedFragments;
mapping(address => bool) public blacklist;
constructor() ERC20Detailed("Arbify", "ARBIFY", uint8(DECIMALS)) Ownable() {
router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
pair = IUniswapV2Factory(router.factory()).createPair(
router.WETH(),
address(this)
);
autoLiquidityReceiver = 0xfD0B546894710f86A96A3c32Abc86c24B37e6D58;
treasuryReceiver = 0x7b5fa807F55E912A855B1BE48f5674aaae009F70;
RFVFundReceiver = 0x036351af50fC5ca8e3b74B858e00f1e0aF82fe08;
firePit = DEAD;
_allowedFragments[address(this)][address(router)] = uint256(-1);
pairAddress = pair;
pairContract = IUniswapV2Pair(pair);
_totalSupply = INITIAL_FRAGMENTS_SUPPLY;
_gonBalances[treasuryReceiver] = TOTAL_GONS;
_gonsPerFragment = TOTAL_GONS.div(_totalSupply);
_initRebaseStartTime = block.timestamp;
_lastRebasedTime = block.timestamp;
_autoRebase = true;
_autoAddLiquidity = true;
_isFeeExempt[treasuryReceiver] = true;
_isFeeExempt[address(this)] = true;
_transferOwnership(treasuryReceiver);
emit Transfer(address(0x0), treasuryReceiver, _totalSupply);
}
function rebase() internal {
if ( inSwap ) return;
uint256 rebaseRate;
uint256 deltaTimeFromInit = block.timestamp - _initRebaseStartTime;
uint256 deltaTime = block.timestamp - _lastRebasedTime;
uint256 times = deltaTime.div(15 minutes);
uint256 epoch = times.mul(15);
if (deltaTimeFromInit < (365 days)) {
rebaseRate = 2355;
} else if (deltaTimeFromInit >= (365 days)) {
rebaseRate = 211;
} else if (deltaTimeFromInit >= ((15 * 365 days) / 10)) {
rebaseRate = 14;
} else if (deltaTimeFromInit >= (7 * 365 days)) {
rebaseRate = 2;
}
for (uint256 i = 0; i < times; i++) {
_totalSupply = _totalSupply
.mul((10**RATE_DECIMALS).add(rebaseRate))
.div(10**RATE_DECIMALS);
}
_gonsPerFragment = TOTAL_GONS.div(_totalSupply);
_lastRebasedTime = _lastRebasedTime.add(times.mul(15 minutes));
pairContract.sync();
emit LogRebase(epoch, _totalSupply);
}
function transfer(address to, uint256 value)
external
override
validRecipient(to)
returns (bool)
{
_transferFrom(msg.sender, to, value);
return true;
}
function transferFrom(
address from,
address to,
uint256 value
) external override validRecipient(to) returns (bool) {
if (_allowedFragments[from][msg.sender] != uint256(-1)) {
_allowedFragments[from][msg.sender] = _allowedFragments[from][
msg.sender
].sub(value, "Insufficient Allowance");
}
_transferFrom(from, to, value);
return true;
}
function _basicTransfer(
address from,
address to,
uint256 amount
) internal returns (bool) {
uint256 gonAmount = amount.mul(_gonsPerFragment);
_gonBalances[from] = _gonBalances[from].sub(gonAmount);
_gonBalances[to] = _gonBalances[to].add(gonAmount);
return true;
}
function _transferFrom(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
require(!blacklist[sender] && !blacklist[recipient], "in_blacklist");
if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}
if (shouldRebase()) {
rebase();
}
if (shouldAddLiquidity()) {
addLiquidity();
}
if (shouldSwapBack()) {
swapBack();
}
uint256 gonAmount = amount.mul(_gonsPerFragment);
_gonBalances[sender] = _gonBalances[sender].sub(gonAmount);
uint256 gonAmountReceived = shouldTakeFee(sender, recipient)
? takeFee(sender, recipient, gonAmount)
: gonAmount;
_gonBalances[recipient] = _gonBalances[recipient].add(
gonAmountReceived
);
emit Transfer(
sender,
recipient,
gonAmountReceived.div(_gonsPerFragment)
);
return true;
}
function takeFee(
address sender,
address recipient,
uint256 gonAmount
) internal returns (uint256) {
uint256 _totalFee = totalFee;
uint256 _treasuryFee = treasuryFee;
if (recipient == pair) {
_totalFee = totalFee.add(sellFee);
_treasuryFee = treasuryFee.add(sellFee);
}
uint256 feeAmount = gonAmount.div(feeDenominator).mul(_totalFee);
_gonBalances[firePit] = _gonBalances[firePit].add(
gonAmount.div(feeDenominator).mul(firePitFee)
);
_gonBalances[address(this)] = _gonBalances[address(this)].add(
gonAmount.div(feeDenominator).mul(_treasuryFee.add(RFVFundFee))
);
_gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(
gonAmount.div(feeDenominator).mul(liquidityFee)
);
emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment));
return gonAmount.sub(feeAmount);
}
function addLiquidity() internal swapping {
uint256 autoLiquidityAmount = _gonBalances[autoLiquidityReceiver].div(
_gonsPerFragment
);
_gonBalances[address(this)] = _gonBalances[address(this)].add(
_gonBalances[autoLiquidityReceiver]
);
_gonBalances[autoLiquidityReceiver] = 0;
uint256 amountToLiquify = autoLiquidityAmount.div(2);
uint256 amountToSwap = autoLiquidityAmount.sub(amountToLiquify);
if( amountToSwap == 0 ) {
return;
}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETHLiquidity = address(this).balance.sub(balanceBefore);
if (amountToLiquify > 0 && amountETHLiquidity > 0) {
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
}
_lastAddLiquidityTime = block.timestamp;
}
function swapBack() internal swapping {
uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);
if( amountToSwap == 0) {
return;
}
uint256 balanceBefore = address(this).balance;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETHToTreasuryAndRFV = address(this).balance.sub(
balanceBefore
);
(bool success, ) = payable(treasuryReceiver).call{
value: amountETHToTreasuryAndRFV.mul(treasuryFee).div(
treasuryFee.add(RFVFundFee)
),
gas: 30000
}("");
(success, ) = payable(RFVFundReceiver).call{
value: amountETHToTreasuryAndRFV.mul(RFVFundFee).div(
treasuryFee.add(RFVFundFee)
),
gas: 30000
}("");
}
function withdrawAllToTreasury() external swapping onlyOwner {
uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment);
require( amountToSwap > 0,"There is no 401k token deposited in token contract");
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
treasuryReceiver,
block.timestamp
);
}
function shouldTakeFee(address from, address to)
internal
view
returns (bool)
{
return
(pair == from || pair == to) &&
!_isFeeExempt[from];
}
function shouldRebase() internal view returns (bool) {
return
_autoRebase &&
(_totalSupply < MAX_SUPPLY) &&
msg.sender != pair &&
!inSwap &&
block.timestamp >= (_lastRebasedTime + 15 minutes);
}
function shouldAddLiquidity() internal view returns (bool) {
return
_autoAddLiquidity &&
!inSwap &&
msg.sender != pair;
}
function shouldSwapBack() internal view returns (bool) {
return
!inSwap &&
msg.sender != pair ;
}
function setAutoRebase(bool _flag) external onlyOwner {
if (_flag) {
_autoRebase = _flag;
_lastRebasedTime = block.timestamp;
} else {
_autoRebase = _flag;
}
}
function setAutoAddLiquidity(bool _flag) external onlyOwner {
if(_flag) {
_autoAddLiquidity = _flag;
_lastAddLiquidityTime = block.timestamp;
} else {
_autoAddLiquidity = _flag;
}
}
function allowance(address owner_, address spender)
external
view
override
returns (uint256)
{
return _allowedFragments[owner_][spender];
}
function decreaseAllowance(address spender, uint256 subtractedValue)
external
returns (bool)
{
uint256 oldValue = _allowedFragments[msg.sender][spender];
if (subtractedValue >= oldValue) {
_allowedFragments[msg.sender][spender] = 0;
} else {
_allowedFragments[msg.sender][spender] = oldValue.sub(
subtractedValue
);
}
emit Approval(
msg.sender,
spender,
_allowedFragments[msg.sender][spender]
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
external
returns (bool)
{
_allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][
spender
].add(addedValue);
emit Approval(
msg.sender,
spender,
_allowedFragments[msg.sender][spender]
);
return true;
}
function approve(address spender, uint256 value)
external
override
returns (bool)
{
_allowedFragments[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function checkFeeExempt(address _addr) external view returns (bool) {
return _isFeeExempt[_addr];
}
function getCirculatingSupply() public view returns (uint256) {
return
(TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div(
_gonsPerFragment
);
}
function isNotInSwap() external view returns (bool) {
return !inSwap;
}
function setFeeReceivers(
address _autoLiquidityReceiver,
address _treasuryReceiver,
address _RFVFundReceiver,
address _firePit
) external onlyOwner {
autoLiquidityReceiver = _autoLiquidityReceiver;
treasuryReceiver = _treasuryReceiver;
RFVFundReceiver = _RFVFundReceiver;
firePit = _firePit;
}
function getLiquidityBacking(uint256 accuracy)
public
view
returns (uint256)
{
uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment);
return
accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply());
}
function setWhitelist(address _addr) external onlyOwner {
_isFeeExempt[_addr] = true;
}
function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner {
require(isContract(_botAddress), "only contract address, not allowed exteranlly owned account");
blacklist[_botAddress] = _flag;
}
function setPairAddress(address _pairAddress) public onlyOwner {
pairAddress = _pairAddress;
}
function setLP(address _address) external onlyOwner {
pairContract = IUniswapV2Pair(_address);
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address who) external view override returns (uint256) {
return _gonBalances[who].div(_gonsPerFragment);
}
function isContract(address addr) internal view returns (bool) {
uint size;
assembly { size := extcodesize(addr) }
return size > 0;
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RFVFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RFVFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastRebasedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firePit","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firePitFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_RFVFundReceiver","type":"address"},{"internalType":"address","name":"_firePit","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600660808190526541726269667960d01b60a0908152620000299160039190620006e4565b506040805180820190915260068082526541524249465960d01b60209092019182526200005991600491620006e4565b506005805460ff19168117905560286007819055600a6008819055603c600981905560148255600b829055620000b892620000a4919082908462000516602090811b6200175417901c565b6200051660201b620017541790919060201c565b600c556103e8600d55600e80546001600160a01b031990811661dead17909155600f805490911690556014805460ff60a01b19908116600160a01b179091556016805490911690553480156200010d57600080fd5b506040518060400160405280600681526020016541726269667960d01b8152506040518060400160405280600681526020016541524249465960d01b8152506005826000908051906020019062000166929190620006e4565b5081516200017c906001906020850190620006e4565b506002805460ff191660ff9290921691909117610100600160a81b0319166101003302179055505060158054731b02da8cb0d097eb8d57a175b88c7d8b479975066001600160a01b031990911617908190556040805163c45a015560e01b815290516001600160a01b039092169163c45a015591600480820192602092909190829003018186803b1580156200021157600080fd5b505afa15801562000226573d6000803e3d6000fd5b505050506040513d60208110156200023d57600080fd5b5051601554604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b1580156200028c57600080fd5b505afa158015620002a1573d6000803e3d6000fd5b505050506040513d6020811015620002b857600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200030857600080fd5b505af11580156200031d573d6000803e3d6000fd5b505050506040513d60208110156200033457600080fd5b5051601680546001600160a01b039283166001600160a01b031991821617825560108054821673fd0b546894710f86a96a3c32abc86c24b37e6d58179055601180548216737b5fa807f55e912a855b1be48f5674aaae009f7017815560128054831673036351af50fc5ca8e3b74b858e00f1e0af82fe08179055600e54601380548416918616919091179055306000908152601d60209081526040808320601554881684528252808320600019905594546014805490951690871690811790945560058054610100909502610100600160a81b03199095169490941790935564079126a500601a90815591549094168452601c8252919092206325878aff199081905590546200044d9262000578811b620017ae17901c565b601b554260178190556018556016805460ff60b01b1960ff60a81b19909116600160a81b1716600160b01b179055601180546001600160a01b03908116600090815260066020526040808220805460ff19908116600190811790925530845291909220805490911690911790559054620004c89116620005c2565b601154601a5460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a362000790565b60008282018381101562000571576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006200057183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063d60201b60201c565b6001600160a01b038116620005d657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183620006cd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200069157818101518382015260200162000677565b50505050905090810190601f168015620006bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620006da57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200071c576000855562000767565b82601f106200073757805160ff191683800117855562000767565b8280016001018555821562000767579182015b82811115620007675782518255916020019190600101906200074a565b506200077592915062000779565b5090565b5b808211156200077557600081556001016200077a565b61283f80620007a06000396000f3fe60806040526004361061036f5760003560e01c8063854cff2f116101c6578063b09f1266116100f7578063d439979011610095578063e15beb801161006f578063e15beb8014610a90578063f2fde38b14610abc578063f887ea4014610aef578063f9f92be414610b0457610376565b8063d4399790146109f8578063d51ed1c814610a2b578063dd62ed3e14610a5557610376565b8063cc32d176116100d1578063cc32d1761461098d578063cfbac92f146109a2578063d0fede66146109ce578063d28d8852146109e357610376565b8063b09f12661461094e578063bd59558114610963578063ca33e64c1461097857610376565b8063a22d483211610164578063a8aa1b311161013e578063a8aa1b31146108d6578063a8b08982146108eb578063a9059cbb14610900578063afb9cf6d1461093957610376565b8063a22d483214610855578063a457c2d714610888578063a6cf7293146108c157610376565b806395d89b41116101a057806395d89b411461080157806398118cb4146108165780639b2912cc1461082b5780639b87676c1461084057610376565b8063854cff2f146107a45780638da5cb5b146107d75780638f32d59b146107ec57610376565b806333a581d2116102a05780635a604c521161023e5780636ddd1713116102185780636ddd17131461073257806370a0823114610747578063715018a61461077a57806383b4ac681461078f57610376565b80635a604c52146106f35780635d43e203146107085780636912652c1461071d57610376565b80633c8e556d1161027a5780633c8e556d146106695780633eaaf86b146106b457806349d98142146106c95780634d709adf146106de57610376565b806333a581d2146105e057806337c9be87146105f5578063395093511461063057610376565b80632b112e491161030d5780632f34d282116102e75780632f34d28214610556578063313ce5671461058b57806332424aa3146105b657806332b75683146105cb57610376565b80632b112e49146105175780632b14ca561461052c5780632e0f26251461054157610376565b8063180b0d7e11610349578063180b0d7e1461048357806318160ddd146104aa5780631df4ccfc146104bf57806323b872dd146104d457610376565b806306fdde031461037b57806308b1fd8f14610405578063095ea7b31461043657610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610b37565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103ca5781810151838201526020016103b2565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041157600080fd5b5061041a610bcd565b604080516001600160a01b039092168252519081900360200190f35b34801561044257600080fd5b5061046f6004803603604081101561045957600080fd5b506001600160a01b038135169060200135610bdc565b604080519115158252519081900360200190f35b34801561048f57600080fd5b50610498610c43565b60408051918252519081900360200190f35b3480156104b657600080fd5b50610498610c49565b3480156104cb57600080fd5b50610498610c4f565b3480156104e057600080fd5b5061046f600480360360608110156104f757600080fd5b506001600160a01b03813581169160208101359091169060400135610c55565b34801561052357600080fd5b50610498610d2f565b34801561053857600080fd5b50610498610d89565b34801561054d57600080fd5b50610498610d8f565b34801561056257600080fd5b506105896004803603602081101561057957600080fd5b50356001600160a01b0316610d94565b005b34801561059757600080fd5b506105a0610dcd565b6040805160ff9092168252519081900360200190f35b3480156105c257600080fd5b506105a0610dd6565b3480156105d757600080fd5b50610498610ddf565b3480156105ec57600080fd5b50610498610de5565b34801561060157600080fd5b506105896004803603604081101561061857600080fd5b506001600160a01b0381351690602001351515610deb565b34801561063c57600080fd5b5061046f6004803603604081101561065357600080fd5b506001600160a01b038135169060200135610e6b565b34801561067557600080fd5b506105896004803603608081101561068c57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610efe565b3480156106c057600080fd5b50610498610f5f565b3480156106d557600080fd5b5061041a610f65565b3480156106ea57600080fd5b5061041a610f74565b3480156106ff57600080fd5b506105a0610f88565b34801561071457600080fd5b5061041a610f8d565b34801561072957600080fd5b5061046f610f9c565b34801561073e57600080fd5b5061046f610fac565b34801561075357600080fd5b506104986004803603602081101561076a57600080fd5b50356001600160a01b0316610fbc565b34801561078657600080fd5b50610589610fe4565b34801561079b57600080fd5b5061046f611044565b3480156107b057600080fd5b50610589600480360360208110156107c757600080fd5b50356001600160a01b0316611055565b3480156107e357600080fd5b5061041a61108a565b3480156107f857600080fd5b5061046f61109e565b34801561080d57600080fd5b506103906110b4565b34801561082257600080fd5b50610498611114565b34801561083757600080fd5b5061049861111a565b34801561084c57600080fd5b50610498611120565b34801561086157600080fd5b506105896004803603602081101561087857600080fd5b50356001600160a01b0316611126565b34801561089457600080fd5b5061046f600480360360408110156108ab57600080fd5b506001600160a01b038135169060200135611159565b3480156108cd57600080fd5b50610498611242565b3480156108e257600080fd5b5061041a611248565b3480156108f757600080fd5b5061041a611257565b34801561090c57600080fd5b5061046f6004803603604081101561092357600080fd5b506001600160a01b038135169060200135611266565b34801561094557600080fd5b5061046f611292565b34801561095a57600080fd5b506103906112a2565b34801561096f57600080fd5b50610589611330565b34801561098457600080fd5b5061041a61155e565b34801561099957600080fd5b5061049861156d565b3480156109ae57600080fd5b50610589600480360360208110156109c557600080fd5b50351515611573565b3480156109da57600080fd5b506104986115c5565b3480156109ef57600080fd5b506103906115cb565b348015610a0457600080fd5b5061046f60048036036020811015610a1b57600080fd5b50356001600160a01b0316611626565b348015610a3757600080fd5b5061049860048036036020811015610a4e57600080fd5b5035611644565b348015610a6157600080fd5b5061049860048036036040811015610a7857600080fd5b506001600160a01b0381358116916020013516611698565b348015610a9c57600080fd5b5061058960048036036020811015610ab357600080fd5b503515156116c3565b348015610ac857600080fd5b5061058960048036036020811015610adf57600080fd5b50356001600160a01b0316611716565b348015610afb57600080fd5b5061041a611730565b348015610b1057600080fd5b5061046f60048036036020811015610b2757600080fd5b50356001600160a01b031661173f565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610c6b57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d18576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610cf39185906117f0565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d23858585611887565b50600195945050505050565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610d84929091610d7e9190610d78906325878aff1990611a78565b90611a78565b906117ae565b905090565b600a5481565b600581565b610d9c61109e565b610da557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610df361109e565b610dfc57600080fd5b610e0582611aba565b610e405760405162461bcd60e51b815260040180806020018281038252603b8152602001806127cf603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610e999083611754565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610f0661109e565b610f0f57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b601a5481565b6013546001600160a01b031681565b60055461010090046001600160a01b031681565b600781565b6012546001600160a01b031681565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610c3d91906117ae565b610fec61109e565b610ff557600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601654600160a01b900460ff161590565b61105d61109e565b61106657600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc35780601f10610b9857610100808354040283529160200191610bc3565b60075481565b60195481565b60175481565b61112e61109e565b61113757600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b03861684529091528120548083106111ad57336000908152601d602090815260408083206001600160a01b03881684529091528120556111dc565b6111b78184611a78565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600b5481565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661127c57600080fd5b611287338585611887565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b17905561134b61109e565b61135457600080fd5b601b54306000908152601c6020526040812054909161137391906117ae565b9050600081116113b45760405162461bcd60e51b815260040180806020018281038252603281526020018061277c6032913960400191505060405180910390fd5b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113e357fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143757600080fd5b505afa15801561144b573d6000803e3d6000fd5b505050506040513d602081101561146157600080fd5b505181518290600190811061147257fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561150c5781810151838201526020016114f4565b505050509050019650505050505050600060405180830381600087803b15801561153557600080fd5b505af1158015611549573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b61157b61109e565b61158457600080fd5b80156115aa576016805460ff60b01b1916600160b01b83151502179055426019556115c2565b6016805460ff60b01b1916600160b01b831515021790555b50565b60095481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113285780601f106112fd57610100808354040283529160200191611328565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c60205260408120549091829161166f916117ae565b905061169161167c610d2f565b610d7e61168a846002611ac0565b8690611ac0565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6116cb61109e565b6116d457600080fd5b80156116fa576016805460ff60a81b1916600160a81b83151502179055426018556115c2565b60168054821515600160a81b0260ff60a81b1990911617905550565b61171e61109e565b61172757600080fd5b6115c281611b19565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b600082820183811015611691576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061169183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b93565b6000818484111561187f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561184457818101518382015260200161182c565b50505050905090810190601f1680156118715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff161580156118c957506001600160a01b0383166000908152601e602052604090205460ff16155b611909576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff161561192d57611926848484611bf8565b9050611691565b611935611c8a565b1561194257611942611cf0565b61194a611e93565b1561195757611957611ed3565b61195f612211565b1561196c5761196c61223c565b6000611983601b5484611ac090919063ffffffff16565b6001600160a01b0386166000908152601c60205260409020549091506119a99082611a78565b6001600160a01b0386166000908152601c60205260408120919091556119cf868661255f565b6119d957816119e4565b6119e48686846125b3565b6001600160a01b0386166000908152601c6020526040902054909150611a0a9082611754565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a5b9085906117ae565b60408051918252519081900360200190a350600195945050505050565b600061169183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f0565b3b151590565b600082611acf57506000610c3d565b82820282848281611adc57fe5b04146116915760405162461bcd60e51b81526004018080602001828103825260218152602001806127ae6021913960400191505060405180910390fd5b6001600160a01b038116611b2c57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611be25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561184457818101518382015260200161182c565b506000838581611bee57fe5b0495945050505050565b600080611c10601b5484611ac090919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611c369082611a78565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611c659082611754565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611cae5750601a5466012795f58d5000115b8015611cc557506016546001600160a01b03163314155b8015611cdb5750601654600160a01b900460ff16155b8015610d845750506018546103840142101590565b601654600160a01b900460ff1615611d0757611e91565b6017546018546000914290810391900382611d24826103846117ae565b90506000611d3382600f611ac0565b90506301e13380841015611d4b576109339450611d83565b6301e133808410611d5f5760d39450611d83565b6302d1cd408410611d7357600e9450611d83565b630d2868808410611d8357600294505b60005b82811015611db657611dab62989680610d7e611da2828a611754565b601a5490611ac0565b601a55600101611d86565b50601a54611dca906325878aff19906117ae565b601b55611de5611ddc83610384611ac0565b60185490611754565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611eb95750601654600160a01b900460ff16155b8015610d845750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c60205260408120549091611f1091906117ae565b6010546001600160a01b03166000908152601c602052604080822054308352912054919250611f3f9190611754565b306000908152601c6020526040808220929092556010546001600160a01b03168152908120819055611f728260026117ae565b90506000611f808383611a78565b905080611f8f57505050612202565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fbe57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505181518290600190811061204d57fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156120e75781810151838201526020016120cf565b505050509050019650505050505050600060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b50505050600061213d8247611a7890919063ffffffff16565b905060008511801561214f5750600081115b156121f7576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b1580156121c957600080fd5b505af11580156121dd573d6000803e3d6000fd5b50505050506040513d60608110156121f457600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610d845750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c6020526040812054909161226e91906117ae565b90508061227b5750612202565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106122ae57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561230257600080fd5b505afa158015612316573d6000803e3d6000fd5b505050506040513d602081101561232c57600080fd5b505181518290600190811061233d57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156123f75781810151838201526020016123df565b505050509050019650505050505050600060405180830381600087803b15801561242057600080fd5b505af1158015612434573d6000803e3d6000fd5b50505050600061244d8347611a7890919063ffffffff16565b6011546009546008549293506000926001600160a01b0390921691612484916124769190611754565b600854610d7e908690611ac0565b60405161753091906000818181858888f193505050503d80600081146124c6576040519150601f19603f3d011682016040523d82523d6000602084013e6124cb565b606091505b50506012546009546008549293506001600160a01b0390911691612501916124f39190611754565b600954610d7e908690611ac0565b60405161753091906000818181858888f193505050503d8060008114612543576040519150601f19603f3d011682016040523d82523d6000602084013e612548565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b038481169116148061258b57506016546001600160a01b038381169116145b8015611691575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b03868116911614156125ff57600a54600c546125e391611754565b91506125fc600a5460085461175490919063ffffffff16565b90505b60006126208361261a600d54886117ae90919063ffffffff16565b90611ac0565b9050612661612640600b5461261a600d54896117ae90919063ffffffff16565b6013546001600160a01b03166000908152601c602052604090205490611754565b6013546001600160a01b03166000908152601c60205260409020556009546126b6906126a090612692908590611754565b600d5461261a9089906117ae565b306000908152601c602052604090205490611754565b306000908152601c6020526040902055600754600d54612700916126df9161261a9089906117ae565b6010546001600160a01b03166000908152601c602052604090205490611754565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127559085906117ae565b60408051918252519081900360200190a36127708582611a78565b97965050505050505056fe5468657265206973206e6f203430316b20746f6b656e206465706f736974656420696e20746f6b656e20636f6e7472616374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e74a2646970667358221220f3b665b05be586054671326c0a0bc5b1e72c7bd7016f1719ec87387767487f4764736f6c63430007060033
Deployed Bytecode
0x60806040526004361061036f5760003560e01c8063854cff2f116101c6578063b09f1266116100f7578063d439979011610095578063e15beb801161006f578063e15beb8014610a90578063f2fde38b14610abc578063f887ea4014610aef578063f9f92be414610b0457610376565b8063d4399790146109f8578063d51ed1c814610a2b578063dd62ed3e14610a5557610376565b8063cc32d176116100d1578063cc32d1761461098d578063cfbac92f146109a2578063d0fede66146109ce578063d28d8852146109e357610376565b8063b09f12661461094e578063bd59558114610963578063ca33e64c1461097857610376565b8063a22d483211610164578063a8aa1b311161013e578063a8aa1b31146108d6578063a8b08982146108eb578063a9059cbb14610900578063afb9cf6d1461093957610376565b8063a22d483214610855578063a457c2d714610888578063a6cf7293146108c157610376565b806395d89b41116101a057806395d89b411461080157806398118cb4146108165780639b2912cc1461082b5780639b87676c1461084057610376565b8063854cff2f146107a45780638da5cb5b146107d75780638f32d59b146107ec57610376565b806333a581d2116102a05780635a604c521161023e5780636ddd1713116102185780636ddd17131461073257806370a0823114610747578063715018a61461077a57806383b4ac681461078f57610376565b80635a604c52146106f35780635d43e203146107085780636912652c1461071d57610376565b80633c8e556d1161027a5780633c8e556d146106695780633eaaf86b146106b457806349d98142146106c95780634d709adf146106de57610376565b806333a581d2146105e057806337c9be87146105f5578063395093511461063057610376565b80632b112e491161030d5780632f34d282116102e75780632f34d28214610556578063313ce5671461058b57806332424aa3146105b657806332b75683146105cb57610376565b80632b112e49146105175780632b14ca561461052c5780632e0f26251461054157610376565b8063180b0d7e11610349578063180b0d7e1461048357806318160ddd146104aa5780631df4ccfc146104bf57806323b872dd146104d457610376565b806306fdde031461037b57806308b1fd8f14610405578063095ea7b31461043657610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610b37565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103ca5781810151838201526020016103b2565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041157600080fd5b5061041a610bcd565b604080516001600160a01b039092168252519081900360200190f35b34801561044257600080fd5b5061046f6004803603604081101561045957600080fd5b506001600160a01b038135169060200135610bdc565b604080519115158252519081900360200190f35b34801561048f57600080fd5b50610498610c43565b60408051918252519081900360200190f35b3480156104b657600080fd5b50610498610c49565b3480156104cb57600080fd5b50610498610c4f565b3480156104e057600080fd5b5061046f600480360360608110156104f757600080fd5b506001600160a01b03813581169160208101359091169060400135610c55565b34801561052357600080fd5b50610498610d2f565b34801561053857600080fd5b50610498610d89565b34801561054d57600080fd5b50610498610d8f565b34801561056257600080fd5b506105896004803603602081101561057957600080fd5b50356001600160a01b0316610d94565b005b34801561059757600080fd5b506105a0610dcd565b6040805160ff9092168252519081900360200190f35b3480156105c257600080fd5b506105a0610dd6565b3480156105d757600080fd5b50610498610ddf565b3480156105ec57600080fd5b50610498610de5565b34801561060157600080fd5b506105896004803603604081101561061857600080fd5b506001600160a01b0381351690602001351515610deb565b34801561063c57600080fd5b5061046f6004803603604081101561065357600080fd5b506001600160a01b038135169060200135610e6b565b34801561067557600080fd5b506105896004803603608081101561068c57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610efe565b3480156106c057600080fd5b50610498610f5f565b3480156106d557600080fd5b5061041a610f65565b3480156106ea57600080fd5b5061041a610f74565b3480156106ff57600080fd5b506105a0610f88565b34801561071457600080fd5b5061041a610f8d565b34801561072957600080fd5b5061046f610f9c565b34801561073e57600080fd5b5061046f610fac565b34801561075357600080fd5b506104986004803603602081101561076a57600080fd5b50356001600160a01b0316610fbc565b34801561078657600080fd5b50610589610fe4565b34801561079b57600080fd5b5061046f611044565b3480156107b057600080fd5b50610589600480360360208110156107c757600080fd5b50356001600160a01b0316611055565b3480156107e357600080fd5b5061041a61108a565b3480156107f857600080fd5b5061046f61109e565b34801561080d57600080fd5b506103906110b4565b34801561082257600080fd5b50610498611114565b34801561083757600080fd5b5061049861111a565b34801561084c57600080fd5b50610498611120565b34801561086157600080fd5b506105896004803603602081101561087857600080fd5b50356001600160a01b0316611126565b34801561089457600080fd5b5061046f600480360360408110156108ab57600080fd5b506001600160a01b038135169060200135611159565b3480156108cd57600080fd5b50610498611242565b3480156108e257600080fd5b5061041a611248565b3480156108f757600080fd5b5061041a611257565b34801561090c57600080fd5b5061046f6004803603604081101561092357600080fd5b506001600160a01b038135169060200135611266565b34801561094557600080fd5b5061046f611292565b34801561095a57600080fd5b506103906112a2565b34801561096f57600080fd5b50610589611330565b34801561098457600080fd5b5061041a61155e565b34801561099957600080fd5b5061049861156d565b3480156109ae57600080fd5b50610589600480360360208110156109c557600080fd5b50351515611573565b3480156109da57600080fd5b506104986115c5565b3480156109ef57600080fd5b506103906115cb565b348015610a0457600080fd5b5061046f60048036036020811015610a1b57600080fd5b50356001600160a01b0316611626565b348015610a3757600080fd5b5061049860048036036020811015610a4e57600080fd5b5035611644565b348015610a6157600080fd5b5061049860048036036040811015610a7857600080fd5b506001600160a01b0381358116916020013516611698565b348015610a9c57600080fd5b5061058960048036036020811015610ab357600080fd5b503515156116c3565b348015610ac857600080fd5b5061058960048036036020811015610adf57600080fd5b50356001600160a01b0316611716565b348015610afb57600080fd5b5061041a611730565b348015610b1057600080fd5b5061046f60048036036020811015610b2757600080fd5b50356001600160a01b031661173f565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610c6b57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d18576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610cf39185906117f0565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d23858585611887565b50600195945050505050565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610d84929091610d7e9190610d78906325878aff1990611a78565b90611a78565b906117ae565b905090565b600a5481565b600581565b610d9c61109e565b610da557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610df361109e565b610dfc57600080fd5b610e0582611aba565b610e405760405162461bcd60e51b815260040180806020018281038252603b8152602001806127cf603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610e999083611754565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610f0661109e565b610f0f57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b601a5481565b6013546001600160a01b031681565b60055461010090046001600160a01b031681565b600781565b6012546001600160a01b031681565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610c3d91906117ae565b610fec61109e565b610ff557600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601654600160a01b900460ff161590565b61105d61109e565b61106657600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc35780601f10610b9857610100808354040283529160200191610bc3565b60075481565b60195481565b60175481565b61112e61109e565b61113757600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b03861684529091528120548083106111ad57336000908152601d602090815260408083206001600160a01b03881684529091528120556111dc565b6111b78184611a78565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600b5481565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661127c57600080fd5b611287338585611887565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b17905561134b61109e565b61135457600080fd5b601b54306000908152601c6020526040812054909161137391906117ae565b9050600081116113b45760405162461bcd60e51b815260040180806020018281038252603281526020018061277c6032913960400191505060405180910390fd5b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113e357fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143757600080fd5b505afa15801561144b573d6000803e3d6000fd5b505050506040513d602081101561146157600080fd5b505181518290600190811061147257fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561150c5781810151838201526020016114f4565b505050509050019650505050505050600060405180830381600087803b15801561153557600080fd5b505af1158015611549573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b61157b61109e565b61158457600080fd5b80156115aa576016805460ff60b01b1916600160b01b83151502179055426019556115c2565b6016805460ff60b01b1916600160b01b831515021790555b50565b60095481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113285780601f106112fd57610100808354040283529160200191611328565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c60205260408120549091829161166f916117ae565b905061169161167c610d2f565b610d7e61168a846002611ac0565b8690611ac0565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6116cb61109e565b6116d457600080fd5b80156116fa576016805460ff60a81b1916600160a81b83151502179055426018556115c2565b60168054821515600160a81b0260ff60a81b1990911617905550565b61171e61109e565b61172757600080fd5b6115c281611b19565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b600082820183811015611691576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061169183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b93565b6000818484111561187f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561184457818101518382015260200161182c565b50505050905090810190601f1680156118715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff161580156118c957506001600160a01b0383166000908152601e602052604090205460ff16155b611909576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff161561192d57611926848484611bf8565b9050611691565b611935611c8a565b1561194257611942611cf0565b61194a611e93565b1561195757611957611ed3565b61195f612211565b1561196c5761196c61223c565b6000611983601b5484611ac090919063ffffffff16565b6001600160a01b0386166000908152601c60205260409020549091506119a99082611a78565b6001600160a01b0386166000908152601c60205260408120919091556119cf868661255f565b6119d957816119e4565b6119e48686846125b3565b6001600160a01b0386166000908152601c6020526040902054909150611a0a9082611754565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a5b9085906117ae565b60408051918252519081900360200190a350600195945050505050565b600061169183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f0565b3b151590565b600082611acf57506000610c3d565b82820282848281611adc57fe5b04146116915760405162461bcd60e51b81526004018080602001828103825260218152602001806127ae6021913960400191505060405180910390fd5b6001600160a01b038116611b2c57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611be25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561184457818101518382015260200161182c565b506000838581611bee57fe5b0495945050505050565b600080611c10601b5484611ac090919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611c369082611a78565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611c659082611754565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611cae5750601a5466012795f58d5000115b8015611cc557506016546001600160a01b03163314155b8015611cdb5750601654600160a01b900460ff16155b8015610d845750506018546103840142101590565b601654600160a01b900460ff1615611d0757611e91565b6017546018546000914290810391900382611d24826103846117ae565b90506000611d3382600f611ac0565b90506301e13380841015611d4b576109339450611d83565b6301e133808410611d5f5760d39450611d83565b6302d1cd408410611d7357600e9450611d83565b630d2868808410611d8357600294505b60005b82811015611db657611dab62989680610d7e611da2828a611754565b601a5490611ac0565b601a55600101611d86565b50601a54611dca906325878aff19906117ae565b601b55611de5611ddc83610384611ac0565b60185490611754565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611eb95750601654600160a01b900460ff16155b8015610d845750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c60205260408120549091611f1091906117ae565b6010546001600160a01b03166000908152601c602052604080822054308352912054919250611f3f9190611754565b306000908152601c6020526040808220929092556010546001600160a01b03168152908120819055611f728260026117ae565b90506000611f808383611a78565b905080611f8f57505050612202565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fbe57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505181518290600190811061204d57fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156120e75781810151838201526020016120cf565b505050509050019650505050505050600060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b50505050600061213d8247611a7890919063ffffffff16565b905060008511801561214f5750600081115b156121f7576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b1580156121c957600080fd5b505af11580156121dd573d6000803e3d6000fd5b50505050506040513d60608110156121f457600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610d845750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c6020526040812054909161226e91906117ae565b90508061227b5750612202565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106122ae57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561230257600080fd5b505afa158015612316573d6000803e3d6000fd5b505050506040513d602081101561232c57600080fd5b505181518290600190811061233d57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156123f75781810151838201526020016123df565b505050509050019650505050505050600060405180830381600087803b15801561242057600080fd5b505af1158015612434573d6000803e3d6000fd5b50505050600061244d8347611a7890919063ffffffff16565b6011546009546008549293506000926001600160a01b0390921691612484916124769190611754565b600854610d7e908690611ac0565b60405161753091906000818181858888f193505050503d80600081146124c6576040519150601f19603f3d011682016040523d82523d6000602084013e6124cb565b606091505b50506012546009546008549293506001600160a01b0390911691612501916124f39190611754565b600954610d7e908690611ac0565b60405161753091906000818181858888f193505050503d8060008114612543576040519150601f19603f3d011682016040523d82523d6000602084013e612548565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b038481169116148061258b57506016546001600160a01b038381169116145b8015611691575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b03868116911614156125ff57600a54600c546125e391611754565b91506125fc600a5460085461175490919063ffffffff16565b90505b60006126208361261a600d54886117ae90919063ffffffff16565b90611ac0565b9050612661612640600b5461261a600d54896117ae90919063ffffffff16565b6013546001600160a01b03166000908152601c602052604090205490611754565b6013546001600160a01b03166000908152601c60205260409020556009546126b6906126a090612692908590611754565b600d5461261a9089906117ae565b306000908152601c602052604090205490611754565b306000908152601c6020526040902055600754600d54612700916126df9161261a9089906117ae565b6010546001600160a01b03166000908152601c602052604090205490611754565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127559085906117ae565b60408051918252519081900360200190a36127708582611a78565b97965050505050505056fe5468657265206973206e6f203430316b20746f6b656e206465706f736974656420696e20746f6b656e20636f6e7472616374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e74a2646970667358221220f3b665b05be586054671326c0a0bc5b1e72c7bd7016f1719ec87387767487f4764736f6c63430007060033
Deployed Bytecode Sourcemap
17206:15972:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16899:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18476:31;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;18476:31:0;;;;;;;;;;;;;;30736:253;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30736:253:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18258:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;32714:102;;;;;;;;;;;;;:::i;18131:120::-;;;;;;;;;;;;;:::i;22072:465::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22072:465:0;;;;;;;;;;;;;;;;;:::i;31118:215::-;;;;;;;;;;;;;:::i;18060:27::-;;;;;;;;;;;;;:::i;17703:36::-;;;;;;;;;;;;;:::i;32592:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32592:110:0;-1:-1:-1;;;;;32592:110:0;;:::i;:::-;;17103:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17479:26;;;;;;;;;;;;;:::i;19129:31::-;;;;;;;;;;;;;:::i;17746:49::-;;;;;;;;;;;;;:::i;32228:236::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32228:236:0;;;;;;;;;;:::i;30322:406::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30322:406:0;;;;;;;;:::i;31436:376::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31436:376:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;19210:27::-;;;;;;;;;;;;;:::i;18551:22::-;;;;;;;;;;;;;:::i;17514:34::-;;;;;;;;;;;;;:::i;17802:39::-;;;;;;;;;;;;;:::i;18514:30::-;;;;;;;;;;;;;:::i;19051:29::-;;;;;;;;;;;;;:::i;18613:30::-;;;;;;;;;;;;;:::i;32827:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32827:138:0;-1:-1:-1;;;;;32827:138:0;;:::i;16104:126::-;;;;;;;;;;;;;:::i;31341:85::-;;;;;;;;;;;;;:::i;32119:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32119:101:0;-1:-1:-1;;;;;32119:101:0;;:::i;15839:79::-;;;;;;;;;;;;;:::i;16004:92::-;;;;;;;;;;;;;:::i;16999:96::-;;;;;;;;;;;;;:::i;17946:32::-;;;;;;;;;;;;;:::i;19167:36::-;;;;;;;;;;;;;:::i;19087:35::-;;;;;;;;;;;;;:::i;32476:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32476:108:0;-1:-1:-1;;;;;32476:108:0;;:::i;29718:596::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29718:596:0;;;;;;;;:::i;18094:30::-;;;;;;;;;;;;;:::i;18689:19::-;;;;;;;;;;;;;:::i;18580:26::-;;;;;;;;;;;;;:::i;21849:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21849:215:0;;;;;;;;:::i;19021:23::-;;;;;;;;;;;;;:::i;17440:32::-;;;;;;;;;;;;;:::i;27609:565::-;;;;;;;;;;;;;:::i;18433:36::-;;;;;;;;;;;;;:::i;17985:31::-;;;;;;;;;;;;;:::i;29256:252::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29256:252:0;;;;:::i;18023:30::-;;;;;;;;;;;;;:::i;17403:::-;;;;;;;;;;;;;:::i;30997:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30997:113:0;-1:-1:-1;;;;;30997:113:0;;:::i;31820:291::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31820:291:0;;:::i;29516:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29516:194:0;;;;;;;;;;:::i;29018:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29018:230:0;;;;:::i;16238:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16238:109:0;-1:-1:-1;;;;;16238:109:0;;:::i;18650:32::-;;;;;;;;;;;;;:::i;19420:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19420:41:0;-1:-1:-1;;;;;19420:41:0;;:::i;16899:92::-;16978:5;16971:12;;;;;;;;-1:-1:-1;;16971:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16945:13;;16971:12;;16978:5;;16971:12;;16978:5;16971:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16899:92;:::o;18476:31::-;;;-1:-1:-1;;;;;18476:31:0;;:::o;30736:253::-;30879:10;30839:4;30861:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;30861:38:0;;;;;;;;;;;:46;;;30923:36;;;;;;;30839:4;;30861:38;;30879:10;;30923:36;;;;;;;;-1:-1:-1;30977:4:0;30736:253;;;;;:::o;18258:36::-;;;;:::o;32714:102::-;32796:12;;32714:102;:::o;18131:120::-;;;;:::o;22072:465::-;22215:4;22202:2;-1:-1:-1;;;;;17656:18:0;;17648:27;;;;;;-1:-1:-1;;;;;22246:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;22270:10:::1;22246:35:::0;;;;;;;;-1:-1:-1;;22246:50:0::1;22242:225;;22351:104;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;22351:104:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;22351:23:0;::::1;-1:-1:-1::0;22351:23:0;;;:17:::1;:23:::0;;;;;22393:10:::1;22351:67:::0;;;;;;;;;;:104:::1;::::0;22423:5;;22351:71:::1;:104::i;:::-;-1:-1:-1::0;;;;;22313:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;22337:10:::1;22313:35:::0;;;;;;;:142;22242:225:::1;22477:30;22491:4;22497:2;22501:5;22477:13;:30::i;:::-;-1:-1:-1::0;22525:4:0::1;::::0;22072:465;-1:-1:-1;;;;;22072:465:0:o;31118:215::-;31294:16;;31264:4;;-1:-1:-1;;;;;31264:4:0;;;31171:7;31251:18;;;:12;:18;;;;;;;31240:4;;;;;31227:18;;;;;31171:7;;31211:114;;31294:16;;31212:58;;31251:18;31212:34;;-1:-1:-1;;18885:54:0;31212:14;:34::i;:::-;:38;;:58::i;:::-;31211:64;;:114::i;:::-;31191:134;;31118:215;:::o;18060:27::-;;;;:::o;17703:36::-;17738:1;17703:36;:::o;32592:110::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;32655:12:::1;:39:::0;;-1:-1:-1;;;;;32655:39:0;;::::1;;;-1:-1:-1::0;;;;;;32655:39:0;;::::1;::::0;;;::::1;::::0;;32592:110::o;17103:92::-;17178:9;;;;17103:92;:::o;17479:26::-;;;;;;:::o;19129:31::-;;;;:::o;17746:49::-;-1:-1:-1;;17746:49:0;:::o;32228:236::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;32324:23:::1;32335:11;32324:10;:23::i;:::-;32316:95;;;;-1:-1:-1::0;;;32316:95:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;32422:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;32422:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32228:236::o;30322:406::-;30503:10;30422:4;30485:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;30485:62:0;;;;;;;;;;:78;;30552:10;30485:66;:78::i;:::-;30462:10;30444:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;30444:38:0;;;;;;;;;;;;:119;;;30579;;;;;;30444:38;;30579:119;;;;;;;;;;;-1:-1:-1;30716:4:0;30322:406;;;;:::o;31436:376::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;31637:21:::1;:46:::0;;-1:-1:-1;;;;;31637:46:0;;::::1;-1:-1:-1::0;;;;;;31637:46:0;;::::1;;::::0;;;31694:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;31741:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;31786:7:::1;:18:::0;;;;;::::1;::::0;::::1;;::::0;;31436:376::o;19210:27::-;;;;:::o;18551:22::-;;;-1:-1:-1;;;;;18551:22:0;;:::o;17514:34::-;;;;;;-1:-1:-1;;;;;17514:34:0;;:::o;17802:39::-;17840:1;17802:39;:::o;18514:30::-;;;-1:-1:-1;;;;;18514:30:0;;:::o;19051:29::-;;;-1:-1:-1;;;19051:29:0;;;;;:::o;18613:30::-;;;-1:-1:-1;;;18613:30:0;;;;;:::o;32827:138::-;32940:16;;-1:-1:-1;;;;;32918:17:0;;32891:7;32918:17;;;:12;:17;;;;;;32891:7;;32918:39;;:17;:21;:39::i;16104:126::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;16185:6:::1;::::0;16166:26:::1;::::0;16185:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;16185:6:0::1;::::0;16166:26:::1;::::0;;;::::1;16203:6;:19:::0;;-1:-1:-1;;;;;;16203:19:0::1;::::0;;16104:126::o;31341:85::-;31412:6;;-1:-1:-1;;;31412:6:0;;;;31411:7;;31341:85::o;32119:101::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;-1:-1:-1;;;;;32186:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;-1:-1:-1;;32186:26:0::1;32208:4;32186:26;::::0;;32119:101::o;15839:79::-;15904:6;;;;;-1:-1:-1;;;;;15904:6:0;;15839:79::o;16004:92::-;16082:6;;;;;-1:-1:-1;;;;;16082:6:0;16068:10;:20;;16004:92::o;16999:96::-;17080:7;17073:14;;;;;;;;-1:-1:-1;;17073:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:13;;17073:14;;17080:7;;17073:14;;17080:7;17073:14;;;;;;;;;;;;;;;;;;;;;;;;17946:32;;;;:::o;19167:36::-;;;;:::o;19087:35::-;;;;:::o;32476:108::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;32550:11:::1;:26:::0;;-1:-1:-1;;;;;;32550:26:0::1;-1:-1:-1::0;;;;;32550:26:0;;;::::1;::::0;;;::::1;::::0;;32476:108::o;29718:596::-;29882:10;29823:4;29864:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;29864:38:0;;;;;;;;;;29917:27;;;29913:237;;29979:10;30002:1;29961:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;29961:38:0;;;;;;;;;:42;29913:237;;;30077:61;:8;30108:15;30077:12;:61::i;:::-;30054:10;30036:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;30036:38:0;;;;;;;;;:102;29913:237;30188:10;30235:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;30165:119:0;;30235:38;;;;;;;;;;;30165:119;;;;;;;;;30188:10;30165:119;;;;;;;;;;;-1:-1:-1;30302:4:0;;29718:596;-1:-1:-1;;;29718:596:0:o;18094:30::-;;;;:::o;18689:19::-;;;-1:-1:-1;;;;;18689:19:0;;:::o;18580:26::-;;;-1:-1:-1;;;;;18580:26:0;;:::o;21849:215::-;21976:4;21954:2;-1:-1:-1;;;;;17656:18:0;;17648:27;;;;;;21998:36:::1;22012:10;22024:2;22028:5;21998:13;:36::i;:::-;-1:-1:-1::0;22052:4:0::1;::::0;21849:215;-1:-1:-1;;;;21849:215:0:o;19021:23::-;;;-1:-1:-1;;;19021:23:0;;;;;:::o;17440:32::-;;;;;;;;;;;;;;;-1:-1:-1;;17440:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27609:565::-;18772:6;:13;;-1:-1:-1;;;;18772:13:0;-1:-1:-1;;;18772:13:0;;;15966:9:::1;:7;:9::i;:::-;15958:18;;;::::0;::::1;;27738:16:::2;::::0;27727:4:::2;27683:20;27706:27:::0;;;:12:::2;:27;::::0;;;;;27683:20;;27706:49:::2;::::0;:27;:31:::2;:49::i;:::-;27683:72;;27790:1;27775:12;:16;27766:79;;;;-1:-1:-1::0;;;27766:79:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27880:16;::::0;;27894:1:::2;27880:16:::0;;;;;::::2;::::0;;27856:21:::2;::::0;27880:16:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;27880:16:0::2;27856:40;;27925:4;27907;27912:1;27907:7;;;;;;;;-1:-1:-1::0;;;;;27907:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;27951:6:::2;::::0;:13:::2;::::0;;-1:-1:-1;;;27951:13:0;;;;:6;;;::::2;::::0;:11:::2;::::0;:13:::2;::::0;;::::2;::::0;27907:7;;27951:13;;;;;:6;:13;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;27951:13:0;27941:7;;:4;;27946:1:::2;::::0;27941:7;::::2;;;;;-1:-1:-1::0;;;;;27941:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;27975:6:::2;::::0;28109:16:::2;::::0;27975:191:::2;::::0;-1:-1:-1;;;27975:191:0;;::::2;::::0;::::2;::::0;;;:6:::2;:191:::0;;;;;;28109:16;;::::2;27975:191:::0;;;;;;28140:15:::2;27975:191:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::2;::::0;:57:::2;::::0;28047:12;;28090:4;;28109:16;;28140:15;;27975:191;;;;;::::2;::::0;::::2;::::0;;;:6;:191:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;18808:6:0;:14;;-1:-1:-1;;;;18808:14:0;;;-1:-1:-1;;;;27609:565:0:o;18433:36::-;;;-1:-1:-1;;;;;18433:36:0;;:::o;17985:31::-;;;;:::o;29256:252::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;29330:5:::1;29327:174;;;29352:17;:25:::0;;-1:-1:-1;;;;29352:25:0::1;-1:-1:-1::0;;;29352:25:0;::::1;;;;::::0;;29416:15:::1;29392:21;:39:::0;29327:174:::1;;;29464:17;:25:::0;;-1:-1:-1;;;;29464:25:0::1;-1:-1:-1::0;;;29464:25:0;::::1;;;;::::0;;29327:174:::1;29256:252:::0;:::o;18023:30::-;;;;:::o;17403:::-;;;;;;;;;;;;;;;-1:-1:-1;;17403:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30997:113;-1:-1:-1;;;;;31083:19:0;31059:4;31083:19;;;:12;:19;;;;;;;;;30997:113::o;31820:291::-;31990:16;;31980:4;;-1:-1:-1;;;;;31980:4:0;31915:7;31967:18;;;:12;:18;;;;;;31915:7;;;;31967:40;;:22;:40::i;:::-;31940:67;;32038:65;32080:22;:20;:22::i;:::-;32038:37;32051:23;:16;32072:1;32051:20;:23::i;:::-;32038:8;;:12;:37::i;:65::-;32018:85;31820:291;-1:-1:-1;;;31820:291:0:o;29516:194::-;-1:-1:-1;;;;;29668:25:0;;;29636:7;29668:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;29516:194::o;29018:230::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;29087:5:::1;29083:158;;;29109:11;:19:::0;;-1:-1:-1;;;;29109:19:0::1;-1:-1:-1::0;;;29109:19:0;::::1;;;;::::0;;29162:15:::1;29143:16;:34:::0;29083:158:::1;;;29210:11;:19:::0;;;::::1;;-1:-1:-1::0;;;29210:19:0::1;-1:-1:-1::0;;;;29210:19:0;;::::1;;::::0;;29018:230;:::o;16238:109::-;15966:9;:7;:9::i;:::-;15958:18;;;;;;16311:28:::1;16330:8;16311:18;:28::i;18650:32::-:0;;;-1:-1:-1;;;;;18650:32:0;;:::o;19420:41::-;;;;;;;;;;;;;;;:::o;7665:181::-;7723:7;7755:5;;;7779:6;;;;7771:46;;;;;-1:-1:-1;;;7771:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8490:132;8548:7;8575:39;8579:1;8582;8575:39;;;;;;;;;;;;;;;;;:3;:39::i;7998:226::-;8118:7;8154:12;8146:6;;;;8138:29;;;;-1:-1:-1;;;8138:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8190:5:0;;;7998:226::o;22892:1080::-;-1:-1:-1;;;;;23046:17:0;;23018:4;23046:17;;;:9;:17;;;;;;;;23045:18;:43;;;;-1:-1:-1;;;;;;23068:20:0;;;;;;:9;:20;;;;;;;;23067:21;23045:43;23037:68;;;;;-1:-1:-1;;;23037:68:0;;;;;;;;;;;;-1:-1:-1;;;23037:68:0;;;;;;;;;;;;;;;23122:6;;-1:-1:-1;;;23122:6:0;;;;23118:87;;;23152:41;23167:6;23175:9;23186:6;23152:14;:41::i;:::-;23145:48;;;;23118:87;23219:14;:12;:14::i;:::-;23215:54;;;23249:8;:6;:8::i;:::-;23285:20;:18;:20::i;:::-;23281:67;;;23322:14;:12;:14::i;:::-;23364:16;:14;:16::i;:::-;23360:59;;;23397:10;:8;:10::i;:::-;23431:17;23451:28;23462:16;;23451:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;23513:20:0;;;;;;:12;:20;;;;;;23431:48;;-1:-1:-1;23513:35:0;;23431:48;23513:24;:35::i;:::-;-1:-1:-1;;;;;23490:20:0;;;;;;:12;:20;;;;;:58;;;;23587:32;23503:6;23609:9;23587:13;:32::i;:::-;:110;;23688:9;23587:110;;;23635:37;23643:6;23651:9;23662;23635:7;:37::i;:::-;-1:-1:-1;;;;;23734:23:0;;;;;;:12;:23;;;;;;23559:138;;-1:-1:-1;23734:70:0;;23559:138;23734:27;:70::i;:::-;-1:-1:-1;;;;;23708:23:0;;;;;;;:12;:23;;;;;:96;;;;23914:16;;23824:118;;;;;;23892:39;;:17;;:21;:39::i;:::-;23824:118;;;;;;;;;;;;;;;-1:-1:-1;23960:4:0;;22892:1080;-1:-1:-1;;;;;22892:1080:0:o;7854:136::-;7912:7;7939:43;7943:1;7946;7939:43;;;;;;;;;;;;;;;;;:3;:43::i;32973:165::-;33086:17;33122:8;;;32973:165::o;8232:250::-;8290:7;8314:6;8310:47;;-1:-1:-1;8344:1:0;8337:8;;8310:47;8381:5;;;8385:1;8381;:5;:1;8405:5;;;;;:10;8397:56;;;;-1:-1:-1;;;8397:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16355:187;-1:-1:-1;;;;;16429:22:0;;16421:31;;;;;;16489:6;;16468:38;;-1:-1:-1;;;;;16468:38:0;;;;16489:6;;;;;16468:38;;;;;16517:6;:17;;-1:-1:-1;;;;;16517:17:0;;;;;-1:-1:-1;;;;;;16517:17:0;;;;;;;;;16355:187::o;8630:225::-;8750:7;8785:12;8778:5;8770:28;;;;-1:-1:-1;;;8770:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8809:9;8825:1;8821;:5;;;;;;;8630:225;-1:-1:-1;;;;;8630:225:0:o;22545:339::-;22663:4;22680:17;22700:28;22711:16;;22700:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;22760:18:0;;;;;;:12;:18;;;;;;22680:48;;-1:-1:-1;22760:33:0;;22680:48;22760:22;:33::i;:::-;-1:-1:-1;;;;;22739:18:0;;;;;;;:12;:18;;;;;;:54;;;;22823:16;;;;;;;:31;;22844:9;22823:20;:31::i;:::-;-1:-1:-1;;;;;22804:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;22872:4:0;;-1:-1:-1;22545:339:0;;;;;:::o;28404:274::-;28488:11;;28451:4;;-1:-1:-1;;;28488:11:0;;;;:55;;;;-1:-1:-1;28517:12:0;;18986:26;-1:-1:-1;28488:55:0;:90;;;;-1:-1:-1;28574:4:0;;-1:-1:-1;;;;;28574:4:0;28560:10;:18;;28488:90;:115;;;;-1:-1:-1;28597:6:0;;-1:-1:-1;;;28597:6:0;;;;28596:7;28488:115;:182;;;;-1:-1:-1;;28640:16:0;;28659:10;28640:29;28620:15;:50;;;28404:274::o;20724:1117::-;20777:6;;-1:-1:-1;;;20777:6:0;;;;20772:21;;;20786:7;;20772:21;20878:20;;20947:16;;20803:18;;20860:15;:38;;;;20929:34;;20803:18;20990:25;20929:34;21004:10;20990:13;:25::i;:::-;20974:41;-1:-1:-1;21026:13:0;21042;20974:41;21052:2;21042:9;:13::i;:::-;21026:29;;21093:8;21072:17;:30;21068:351;;;21132:4;21119:17;;21068:351;;;21180:8;21158:17;:31;21154:265;;21219:3;21206:16;;21154:265;;;21266:20;21244:17;:43;21240:179;;21317:2;21304:15;;21240:179;;;21363:12;21341:17;:35;21337:82;;21406:1;21393:14;;21337:82;21436:9;21431:190;21455:5;21451:1;:9;21431:190;;;21497:112;21591:17;21497:71;21532:35;21591:17;21556:10;21532:23;:35::i;:::-;21497:12;;;:34;:71::i;:112::-;21482:12;:127;21462:3;;21431:190;;;-1:-1:-1;21667:12:0;;21652:28;;-1:-1:-1;;18885:54:0;21652:14;:28::i;:::-;21633:16;:47;21710:43;21731:21;:5;21741:10;21731:9;:21::i;:::-;21710:16;;;:20;:43::i;:::-;21691:16;:62;;;;21766:12;;;;;;;;;-1:-1:-1;;;;;21766:12:0;-1:-1:-1;;;;;21766:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21820:12:0;;21803:30;;;;;;;21813:5;;-1:-1:-1;21803:30:0;;-1:-1:-1;21803:30:0;;;;;;;;20724:1117;;;;;;:::o;28686:176::-;28776:17;;28739:4;;-1:-1:-1;;;28776:17:0;;;;:42;;;;-1:-1:-1;28812:6:0;;-1:-1:-1;;;28812:6:0;;;;28811:7;28776:42;:78;;;;-1:-1:-1;;28850:4:0;;-1:-1:-1;;;;;28850:4:0;28836:10;:18;;;28686:176::o;25033:1407::-;18772:6;:13;;-1:-1:-1;;;;18772:13:0;-1:-1:-1;;;18772:13:0;;;25170:16:::1;::::0;25129:21:::1;::::0;-1:-1:-1;;;;;25129:21:0::1;18772:13:::0;25116:35;;;:12:::1;:35;::::0;;;;;18772:13;;25116:81:::1;::::0;:35;:39:::1;:81::i;:::-;25297:21;::::0;-1:-1:-1;;;;;25297:21:0::1;25284:35;::::0;;;:12:::1;:35;::::0;;;;;;25259:4:::1;25238:27:::0;;;;;25086:111;;-1:-1:-1;25238:92:0::1;::::0;:27;:31:::1;:92::i;:::-;25229:4;25208:27;::::0;;;:12:::1;:27;::::0;;;;;:122;;;;25354:21:::1;::::0;-1:-1:-1;;;;;25354:21:0::1;25341:35:::0;;;;;:39;;;25417:26:::1;:19:::0;25441:1:::1;25417:23;:26::i;:::-;25391:52:::0;-1:-1:-1;25454:20:0::1;25477:40;:19:::0;25391:52;25477:23:::1;:40::i;:::-;25454:63:::0;-1:-1:-1;25534:17:0;25530:57:::1;;25569:7;;;;;25530:57;25621:16;::::0;;25635:1:::1;25621:16:::0;;;;;::::1;::::0;;25597:21:::1;::::0;25621:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;25621:16:0::1;25597:40;;25666:4;25648;25653:1;25648:7;;;;;;;;-1:-1:-1::0;;;;;25648:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;25692:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;25692:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;25648:7;;25692:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;25692:13:0;25682:7;;:4;;25687:1:::1;::::0;25682:7;::::1;;;;;-1:-1:-1::0;;;;;25682:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;25778:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;25778:188:0;;::::1;::::0;::::1;::::0;;;25718:21:::1;25778:188:::0;;;;;;25920:4:::1;25778:188:::0;;;;;;25940:15:::1;25778:188:::0;;;;;;;;;;;;;;;;;;;;;25742:21:::1;::::0;25778:6;;;::::1;::::0;:57:::1;::::0;25850:12;;25718:21;;25893:4;;25778:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;25718:21;25778:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25979:26;26008:40;26034:13;26008:21;:25;;:40;;;;:::i;:::-;25979:69;;26083:1;26065:15;:19;:45;;;;;26109:1;26088:18;:22;26065:45;26061:322;;;26127:6;::::0;26301:21:::1;::::0;26127:244:::1;::::0;;-1:-1:-1;;;26127:244:0;;26203:4:::1;26127:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;26301:21:0;;::::1;26127:244:::0;;;;26341:15:::1;26127:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;26157:18;;26127:244;;;;;::::1;::::0;;;;;;;;;26157:18;26127:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;26061:322:0::1;-1:-1:-1::0;;26417:15:0::1;26393:21;:39:::0;-1:-1:-1;;;;18796:1:0::1;18808:6:::0;:14;;-1:-1:-1;;;;18808:14:0;;;25033:1407::o;28870:140::-;28958:6;;28919:4;;-1:-1:-1;;;28958:6:0;;;;28957:7;:42;;;;-1:-1:-1;;28995:4:0;;-1:-1:-1;;;;;28995:4:0;28981:10;:18;;;28870:140::o;26448:1153::-;18772:6;:13;;-1:-1:-1;;;;18772:13:0;-1:-1:-1;;;18772:13:0;;;26554:16:::1;::::0;26543:4:::1;18772:13:::0;26522:27;;;:12:::1;:27;::::0;;;;;18772:13;;26522:49:::1;::::0;:27;:31:::1;:49::i;:::-;26499:72:::0;-1:-1:-1;26588:17:0;26584:56:::1;;26622:7;;;26584:56;26732:16;::::0;;26746:1:::1;26732:16:::0;;;;;::::1;::::0;;26676:21:::1;::::0;26652::::1;::::0;26732:16;26746:1;26732:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26732:16:0::1;26708:40;;26777:4;26759;26764:1;26759:7;;;;;;;;-1:-1:-1::0;;;;;26759:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;26803:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;26803:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;26759:7;;26803:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;26803:13:0;26793:7;;:4;;26798:1:::1;::::0;26793:7;::::1;;;;;;;;;;:23;-1:-1:-1::0;;;;;26793:23:0::1;;;-1:-1:-1::0;;;;;26793:23:0::1;;;::::0;::::1;26839:6;;;;;;;;;-1:-1:-1::0;;;;;26839:6:0::1;-1:-1:-1::0;;;;;26839:57:0::1;;26911:12;26938:1;26954:4;26981;27001:15;26839:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;26839:188:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;27040:33;27076:64;27116:13;27076:21;:25;;:64;;;;:::i;:::-;27180:16;::::0;27305:10:::1;::::0;27289:11:::1;::::0;27040:100;;-1:-1:-1;27154:12:0::1;::::0;-1:-1:-1;;;;;27180:16:0;;::::1;::::0;27224:107:::1;::::0;27289:27:::1;::::0;:11;:15:::1;:27::i;:::-;27254:11;::::0;27224:42:::1;::::0;:25;;:29:::1;:42::i;:107::-;27172:199;::::0;27351:5:::1;::::0;27172:199;::::1;::::0;;;;;27351:5;27172:199:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;27404:15:0::1;::::0;27527:10:::1;::::0;27511:11:::1;::::0;27153:218;;-1:-1:-1;;;;;;27404:15:0;;::::1;::::0;27447:106:::1;::::0;27511:27:::1;::::0;:11;:15:::1;:27::i;:::-;27477:10;::::0;27447:41:::1;::::0;:25;;:29:::1;:41::i;:106::-;27396:197;::::0;27573:5:::1;::::0;27396:197;::::1;::::0;;;;;27573:5;27396:197:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;18808:6:0;:14;;-1:-1:-1;;;;18808:14:0;;;26448:1153::o;28182:214::-;28325:4;;28281;;-1:-1:-1;;;;;28325:12:0;;;:4;;:12;;:26;;-1:-1:-1;28341:4:0;;-1:-1:-1;;;;;28341:10:0;;;:4;;:10;28325:26;28324:64;;;;-1:-1:-1;;;;;;;;28370:18:0;;;;;:12;:18;;;;;;;;28369:19;;28182:214::o;23980:1045::-;24144:8;;24186:11;;24227:4;;24104:7;;24144:8;24186:11;-1:-1:-1;;;;;24214:17:0;;;24227:4;;24214:17;24210:137;;;24273:7;;24260:8;;:21;;:12;:21::i;:::-;24248:33;;24311:24;24327:7;;24311:11;;:15;;:24;;;;:::i;:::-;24296:39;;24210:137;24359:17;24379:44;24413:9;24379:29;24393:14;;24379:9;:13;;:29;;;;:::i;:::-;:33;;:44::i;:::-;24359:64;;24467:96;24507:45;24541:10;;24507:29;24521:14;;24507:9;:13;;:29;;;;:::i;:45::-;24480:7;;-1:-1:-1;;;;;24480:7:0;24467:21;;;;:12;:21;;;;;;;:25;:96::i;:::-;24456:7;;-1:-1:-1;;;;;24456:7:0;24443:21;;;;:12;:21;;;;;:120;24701:10;;24604:120;;24650:63;;24684:28;;:12;;:16;:28::i;:::-;24664:14;;24650:29;;:9;;:13;:29::i;:63::-;24625:4;24604:27;;;;:12;:27;;;;;;;:31;:120::i;:::-;24595:4;24574:27;;;;:12;:27;;;;;:150;24861:12;;24841:14;;24773:112;;24827:47;;:29;;:9;;:13;:29::i;:47::-;24786:21;;-1:-1:-1;;;;;24786:21:0;24773:35;;;;:12;:35;;;;;;;:39;:112::i;:::-;24748:21;;-1:-1:-1;;;;;24748:21:0;;;24735:35;;;;:12;:35;;;;;:150;;;;24957:16;;24936:4;;24911:64;;;;;24943:31;;:9;;:13;:31::i;:::-;24911:64;;;;;;;;;;;;;;;24993:24;:9;25007;24993:13;:24::i;:::-;24986:31;23980:1045;-1:-1:-1;;;;;;;23980:1045:0:o
Swarm Source
ipfs://f3b665b05be586054671326c0a0bc5b1e72c7bd7016f1719ec87387767487f47
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$838.14
Net Worth in ETH
0.285188
Token Allocations
ETH
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ARB | 100.00% | $2,940.85 | 0.285 | $838.14 |
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.