Overview
FRAX Balance | FXTL Balance
0 FRAX | 0 FXTL
FRAX Value
$0.00
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CurveStableCalcZap
Compiler Version
vyper:0.3.9
Contract Source Code (Vyper language format)
# @version 0.3.9
"""
@title CurveStableCalcZap
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2020-2023 - all rights reserved
@notice A "zap" for stable pools to calc_token_amount taking fees into account and to get_dx
"""
from vyper.interfaces import ERC20
interface Pool:
def A() -> uint256: view
def fee() -> uint256: view
def coins(i: uint256) -> address: view
def balances(i: uint256) -> uint256: view
def get_virtual_price() -> uint256: view
def offpeg_fee_multiplier() -> uint256: view
def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: view
interface Int128Pool:
def balances(i: int128) -> uint256: view
def coins(i: int128) -> address: view
interface wstETHPool:
def oracle() -> address: view
interface wBETHPool:
def stored_rates() -> uint256[2]: view
interface RaiPool:
def redemption_price_snap() -> address: view
interface RedemptionPriceSnap:
def snappedRedemptionPrice() -> uint256: view
interface Oracle:
def latestAnswer() -> int256: view
interface cERC20:
def decimals() -> uint256: view
def underlying() -> address: view
def exchangeRateStored() -> uint256: view
def supplyRatePerBlock() -> uint256: view
def accrualBlockNumber() -> uint256: view
interface yERC20:
def decimals() -> uint256: view
def token() -> address: view
def getPricePerFullShare() -> uint256: view
interface aETH:
def ratio() -> uint256: view
interface rETH:
def getExchangeRate() -> uint256: view
interface Factory:
def get_implementation_address(_pool: address) -> address: view
struct StoredRatesImplementations:
factory: address
implementation: address
MAX_COINS: constant(uint256) = 10
MAX_COINS_INT128: constant(int128) = 10
FALSE_ARRAY: constant(bool[10]) = [False, False, False, False, False, False, False, False, False, False]
PRECISION: constant(uint256) = 10 ** 18 # The precision to convert to
FEE_DENOMINATOR: constant(uint256) = 10 ** 10
USE_INT128: HashMap[address, bool]
POOL_TYPE: HashMap[address, uint8]
USE_RATE: HashMap[address, bool[MAX_COINS]]
STORED_RATES_IMPLEMENTATIONS: DynArray[StoredRatesImplementations, 2]
@external
def __init__(
_use_int128: address[20],
_pool_type_addresses: address[20],
_pool_types: uint8[20],
_use_rate: bool[MAX_COINS][20],
_stored_rates_implementations: DynArray[StoredRatesImplementations, 2],
):
"""
@notice CalcTokenAmountZap constructor
@param _use_int128 Addresses of pools which take indexes as int128 in coins(i) and balances(i) methods
@param _pool_type_addresses Addresses of pools which use rates
@param _pool_types Types of pools using rates (from 2 to 10)
@param _use_rate Lists of bools where True means that for the coin we use rate
@param _stored_rates_implementations Factory addresses and implementation addresses with stored_rates() method
"""
for addr in _use_int128:
if addr == empty(address):
break
self.USE_INT128[addr] = True
for i in range(20):
if _pool_type_addresses[i] == empty(address):
break
self.POOL_TYPE[_pool_type_addresses[i]] = _pool_types[i]
self.USE_RATE[_pool_type_addresses[i]] = _use_rate[i]
self.STORED_RATES_IMPLEMENTATIONS = _stored_rates_implementations
@internal
@view
def get_decimals(coin: address) -> uint256:
if coin == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE:
return 18
else:
return cERC20(coin).decimals()
@internal
@view
def _rates_plain(coins: address[MAX_COINS], n_coins: uint256) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
result[i] = PRECISION * PRECISION / 10 ** self.get_decimals(coins[i])
return result
@internal
@view
def _rates_meta(coin1: address, base_pool: address, n_coins: uint256) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if i == 0:
result[i] = PRECISION * PRECISION / 10 ** self.get_decimals(coin1)
else:
result[i] = Pool(base_pool).get_virtual_price() # LP token
return result
@internal
@view
def _rates_rai(pool: address, base_pool: address, n_coins: uint256, use_rate: bool[MAX_COINS]) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if use_rate[i]:
# REDMPTION_PRICE_SCALE: uint25) = 10 ** 9
result[i] = RedemptionPriceSnap(RaiPool(pool).redemption_price_snap()).snappedRedemptionPrice() / 10 ** 9 # RAI
else:
result[i] = Pool(base_pool).get_virtual_price() # LP token
return result
@internal
@view
def _rates_compound(coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS], use_block_number: bool) -> uint256[MAX_COINS]:
# exchangeRateStored * (1 + supplyRatePerBlock * (getBlockNumber - accrualBlockNumber) / 1e18)
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
rate: uint256 = PRECISION # Used with no lending
underlying_coin: address = coins[i]
if use_rate[i]:
underlying_coin = cERC20(coins[i]).underlying()
rate = cERC20(coins[i]).exchangeRateStored()
supply_rate: uint256 = cERC20(coins[i]).supplyRatePerBlock()
old_block: uint256 = cERC20(coins[i]).accrualBlockNumber()
if use_block_number:
rate += rate * supply_rate * (block.number - old_block) / PRECISION
else:
rate += rate * supply_rate * (block.timestamp - old_block) / PRECISION
result[i] = rate * PRECISION / 10 ** self.get_decimals(underlying_coin)
return result
@internal
@view
def _rates_y(coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS]) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS): # All 4 coins are wrapped
if i >= n_coins:
break
underlying_coin: address = coins[i]
rate: uint256 = PRECISION # Used with no lending
if use_rate[i]:
underlying_coin = yERC20(coins[i]).token()
rate = yERC20(coins[i]).getPricePerFullShare()
result[i] = rate * PRECISION / 10 ** self.get_decimals(underlying_coin)
return result
@internal
@view
def _rates_ankr(coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS]) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if use_rate[i]:
result[i] = PRECISION * PRECISION / aETH(coins[i]).ratio()
else:
result[i] = PRECISION * PRECISION / 10 ** self.get_decimals(coins[i])
return result
@internal
@view
def _rates_reth(coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS]) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if use_rate[i]:
result[i] = rETH(coins[i]).getExchangeRate() * PRECISION / 10 ** self.get_decimals(coins[i])
else:
result[i] = PRECISION * PRECISION / 10 ** self.get_decimals(coins[i])
return result
@view
@internal
def _rates_wsteth(pool: address, coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS]) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if use_rate[i]:
oracle: address = wstETHPool(pool).oracle()
result[i] = convert(Oracle(oracle).latestAnswer(), uint256) * PRECISION / 10 ** self.get_decimals(coins[i])
else:
result[i] = PRECISION * PRECISION / 10 ** self.get_decimals(coins[i])
return result
@view
@internal
def _rates_wbeth(pool: address, n_coins: uint256) -> uint256[MAX_COINS]:
_stored_rates: uint256[2] = wBETHPool(pool).stored_rates()
result: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
result[i] = _stored_rates[i]
return result
@internal
@view
def _rates(pool: address, pool_type: uint8, coins: address[MAX_COINS], n_coins: uint256, use_rate: bool[MAX_COINS], base_pool: address) -> uint256[MAX_COINS]:
if pool_type == 0:
return self._rates_plain(coins, n_coins)
elif pool_type == 1:
return self._rates_meta(coins[0], base_pool, n_coins)
elif pool_type == 2:
return self._rates_rai(pool, base_pool, n_coins, use_rate)
elif pool_type == 3:
return self._rates_plain(coins, n_coins) # aave
elif pool_type == 4:
return self._rates_compound(coins, n_coins, use_rate, True)
elif pool_type == 5:
return self._rates_compound(coins, n_coins, use_rate, False)
elif pool_type == 6:
return self._rates_y(coins, n_coins, use_rate)
elif pool_type == 7:
return self._rates_ankr(coins, n_coins, use_rate)
elif pool_type == 8:
return self._rates_reth(coins, n_coins, use_rate)
elif pool_type == 9:
return self._rates_wsteth(pool, coins, n_coins, use_rate)
elif pool_type == 10:
return self._rates_wbeth(pool, n_coins)
else:
raise "Bad pool type"
@pure
@internal
def _dynamic_fee(xpi: uint256, xpj: uint256, fee: uint256, feemul: uint256) -> uint256:
if feemul <= FEE_DENOMINATOR:
return fee
else:
xps2: uint256 = (xpi + xpj)
xps2 *= xps2 # Doing just ** 2 can overflow apparently
return (feemul * fee) / ((feemul - FEE_DENOMINATOR) * 4 * xpi * xpj / xps2 + FEE_DENOMINATOR)
@internal
@view
def _fee(pool: address, pool_type: uint8, n_coins: uint256, xpi: uint256, xpj: uint256, is_swap: bool) -> uint256:
fee: uint256 = Pool(pool).fee()
if not is_swap:
fee = fee * n_coins / (4 * (n_coins - 1))
if pool_type == 3: # aave
feemul: uint256 = Pool(pool).offpeg_fee_multiplier()
return self._dynamic_fee(xpi, xpj, fee, feemul)
else:
return fee
@internal
@view
def _xp_mem(rates: uint256[MAX_COINS], _balances: uint256[MAX_COINS], n_coins: uint256) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = rates
for i in range(MAX_COINS):
if i >= n_coins:
break
result[i] = result[i] * _balances[i] / PRECISION
return result
@internal
@view
def get_D(pool: address, xp: uint256[MAX_COINS], n_coins: uint256) -> uint256:
S: uint256 = 0
for _x in xp:
S += _x
if S == 0:
return 0
Dprev: uint256 = 0
D: uint256 = S
Ann: uint256 = Pool(pool).A() * n_coins
for _i in range(255):
D_P: uint256 = D
for i in range(MAX_COINS):
if i >= n_coins:
break
D_P = D_P * D / (xp[i] * n_coins + 1) # +1 is to prevent /0
Dprev = D
D = (Ann * S + D_P * n_coins) * D / ((Ann - 1) * D + (n_coins + 1) * D_P)
# Equality with the precision of 1
if D > Dprev:
if D - Dprev <= 1:
break
else:
if Dprev - D <= 1:
break
return D
@internal
@view
def get_x(pool: address, i: int128, j: int128, y: uint256, xp: uint256[MAX_COINS], n_coins: uint256) -> uint256:
# x in the input is converted to the same price/precision
assert (i != j) and (i >= 0) and (j >= 0) and (i < convert(n_coins, int128)) and (j < convert(n_coins, int128))
D: uint256 = self.get_D(pool, xp, n_coins)
c: uint256 = D
S_: uint256 = 0
Ann: uint256 = Pool(pool).A() * n_coins
_y: uint256 = 0
for _i in range(MAX_COINS_INT128):
if _i >= convert(n_coins, int128):
break
if _i == j:
_y = y
elif _i != i:
_y = xp[_i]
else:
continue
S_ += _y
c = c * D / (_y * n_coins)
c = c * D / (Ann * n_coins)
b: uint256 = S_ + D / Ann # - D
x_prev: uint256 = 0
x: uint256 = D
for _i in range(255):
x_prev = x
x = (x*x + c) / (2 * x + b - D)
# Equality with the precision of 1
if x > x_prev:
if x - x_prev <= 1:
break
else:
if x_prev - x <= 1:
break
return x
@internal
@view
def get_D_mem(pool: address, rates: uint256[MAX_COINS], _balances: uint256[MAX_COINS], n_coins: uint256) -> uint256:
return self.get_D(pool, self._xp_mem(rates, _balances, n_coins), n_coins)
@internal
@view
def _wrapped_amounts(pool_type: uint8, coins: address[MAX_COINS], amounts: uint256[MAX_COINS], rates: uint256[MAX_COINS], use_rate: bool[MAX_COINS], n_coins: uint256) -> uint256[MAX_COINS]:
result: uint256[MAX_COINS] = amounts
for i in range(MAX_COINS):
if i >= n_coins:
break
underlying_coin: address = coins[i]
if use_rate[i]:
if pool_type == 4 or pool_type == 5:
underlying_coin = cERC20(coins[i]).underlying()
if pool_type == 6:
underlying_coin = yERC20(coins[i]).token()
result[i] = amounts[i] * PRECISION * PRECISION / 10 ** cERC20(underlying_coin).decimals() / rates[i]
return result
@internal
@view
def _underlying_precision(i: int128, pool_type: uint8, coins: address[MAX_COINS], use_rate: bool[MAX_COINS]) -> uint256:
underlying_coin: address = coins[i]
if use_rate[i]:
if pool_type == 4 or pool_type == 5:
underlying_coin = cERC20(coins[i]).underlying()
if pool_type == 6:
underlying_coin = yERC20(coins[i]).token()
return PRECISION / 10 ** cERC20(underlying_coin).decimals()
@internal
@view
def _pool_type(pool: address) -> uint8:
for item in self.STORED_RATES_IMPLEMENTATIONS:
if Factory(item.factory).get_implementation_address(pool) == item.implementation:
return 10
return self.POOL_TYPE[pool]
@internal
@view
def _calc_token_amount(
pool: address,
token: address,
amounts: uint256[MAX_COINS],
n_coins: uint256,
pool_type: uint8,
use_rate: bool[MAX_COINS],
base_pool: address,
deposit: bool,
use_underlying: bool = False, # Only for ib,usdt,compound,y,busd,pax
) -> uint256:
"""
@notice Method to calculate addition or reduction in token supply at
deposit or withdrawal TAKING FEES INTO ACCOUNT.
@param pool Pool address
@param token LP token address
@param amounts Coin amounts to add/remove
@param n_coins Number of coins in the pool
@param pool_type Type of the pool (0, 1, 2, ..., 9)
@param use_rate Use rate or not for each pool's coin
@param base_pool Base pool address (for meta)
@param deposit True - add_liquidity, False - remove_liquidity_imbalance
@param use_underlying Use underlying or wrapped coins
@return Expected LP token amount to mint/burn
"""
coins: address[MAX_COINS] = empty(address[MAX_COINS])
old_balances: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for i in range(MAX_COINS):
if i >= n_coins:
break
if self.USE_INT128[pool]:
coins[i] = Int128Pool(pool).coins(convert(i, int128))
old_balances[i] = Int128Pool(pool).balances(convert(i, int128))
else:
coins[i] = Pool(pool).coins(i)
old_balances[i] = Pool(pool).balances(i)
new_balances: uint256[MAX_COINS] = old_balances
token_supply: uint256 = ERC20(token).totalSupply()
fees: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
rates: uint256[MAX_COINS] = self._rates(pool, pool_type, coins, n_coins, use_rate, base_pool)
D0: uint256 = self.get_D_mem(pool, rates, old_balances, n_coins)
_amounts: uint256[MAX_COINS] = amounts
if use_underlying:
_amounts = self._wrapped_amounts(pool_type, coins, amounts, rates, use_rate, n_coins)
for i in range(MAX_COINS):
if i >= n_coins:
break
if deposit:
new_balances[i] += _amounts[i]
else:
new_balances[i] -= _amounts[i]
D1: uint256 = self.get_D_mem(pool, rates, new_balances, n_coins)
# We need to recalculate the invariant accounting for fees
# to calculate fair user's share
D2: uint256 = D1
if token_supply > 0:
# Only account for fees if we are not the first to deposit
ys: uint256 = (D0 + D1) / n_coins # only for aave
for i in range(MAX_COINS):
if i >= n_coins:
break
ideal_balance: uint256 = D1 * old_balances[i] / D0
difference: uint256 = 0
if ideal_balance > new_balances[i]:
difference = ideal_balance - new_balances[i]
else:
difference = new_balances[i] - ideal_balance
xs: uint256 = old_balances[i] + new_balances[i] # only for aave
fees[i] = self._fee(pool, pool_type, n_coins, ys, xs, False) * difference / FEE_DENOMINATOR
new_balances[i] -= fees[i]
D2 = self.get_D_mem(pool, rates, new_balances, n_coins)
# Calculate, how much pool tokens to mint
if token_supply == 0:
return D1 # Take the dust if there was any
else:
diff: uint256 = 0
if deposit:
diff = D2 - D0
else:
diff = D0 - D2
return token_supply * diff / D0
@external
@view
def calc_token_amount(
pool: address,
token: address,
amounts: uint256[MAX_COINS],
n_coins: uint256,
deposit: bool,
use_underlying: bool,
) -> uint256:
"""
@notice Method to calculate addition or reduction in token supply at
deposit or withdrawal TAKING FEES INTO ACCOUNT. For NON-META pools.
@param pool Pool address
@param token LP token address
@param amounts Coin amounts to add/remove
@param n_coins Number of coins in the pool
@param deposit True - add_liquidity, False - remove_liquidity_imbalance
@param use_underlying Use underlying or wrapped coins
@return Expected LP token amount to mint/burn
"""
return self._calc_token_amount(pool, token, amounts, n_coins, self._pool_type(pool), self.USE_RATE[pool], empty(address), deposit, use_underlying)
@external
@view
def calc_token_amount_meta(
pool: address,
token: address,
amounts: uint256[MAX_COINS],
n_coins: uint256,
base_pool: address,
base_token: address,
deposit: bool,
use_underlying: bool,
) -> uint256:
"""
@notice Method to calculate addition or reduction in token supply at
deposit or withdrawal TAKING FEES INTO ACCOUNT. For META pools.
@param pool Pool address
@param token LP token address
@param amounts Coin amounts to add/remove
@param n_coins Number of coins in the pool
@param base_pool Base pool address
@param base_token Base pool's LP token address
@param deposit True - add_liquidity, False - remove_liquidity_imbalance
@param use_underlying Use underlying or wrapped coins
@return Expected LP token amount to mint/burn
"""
if not use_underlying:
if self._pool_type(pool) == 0:
return self._calc_token_amount(pool, token, amounts, n_coins, 1, FALSE_ARRAY, base_pool, deposit)
else:
return self._calc_token_amount(pool, token, amounts, n_coins, self._pool_type(pool), self.USE_RATE[pool], base_pool, deposit)
meta_amounts: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
base_amounts: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
meta_amounts[0] = amounts[0]
for i in range(MAX_COINS - 1):
base_amounts[i] = amounts[i + 1]
_base_tokens: uint256 = self._calc_token_amount(base_pool, base_token, base_amounts, n_coins - 1, self.POOL_TYPE[base_pool], FALSE_ARRAY, empty(address), deposit)
meta_amounts[1] = _base_tokens
if self._pool_type(pool) == 0:
return self._calc_token_amount(pool, token, meta_amounts, 2, 1, FALSE_ARRAY, base_pool, deposit)
else:
return self._calc_token_amount(pool, token, meta_amounts, 2, self._pool_type(pool), self.USE_RATE[pool], base_pool, deposit)
@internal
@view
def _get_dx(
pool: address,
i: int128,
j: int128,
dy: uint256,
n_coins: uint256,
pool_type: uint8,
use_rate: bool[MAX_COINS],
base_pool: address,
use_underlying: bool = False, # Only for ib,usdt,compound,y,busd,pax
) -> uint256:
"""
@notice Calculate the input amount required to receive the desired output amount.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@param base_pool Base pool address (for meta)
@param use_underlying Use underlying or wrapped coins
@return Required input amount
"""
coins: address[MAX_COINS] = empty(address[MAX_COINS])
balances: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
for k in range(MAX_COINS_INT128):
if k >= convert(n_coins, int128):
break
if self.USE_INT128[pool]:
coins[k] = Int128Pool(pool).coins(k)
balances[k] = Int128Pool(pool).balances(k)
else:
coins[k] = Pool(pool).coins(convert(k, uint256))
balances[k] = Pool(pool).balances(convert(k, uint256))
rates: uint256[MAX_COINS] = self._rates(pool, pool_type, coins, n_coins, use_rate, base_pool)
xp: uint256[MAX_COINS] = self._xp_mem(rates, balances, n_coins)
y: uint256 = 0
if use_underlying:
y = xp[j] - dy * self._underlying_precision(j, pool_type, coins, use_rate)
else:
y = xp[j] - dy * rates[j] / PRECISION
x: uint256 = self.get_x(pool, i, j, y, xp, n_coins)
fee: uint256 = self._fee(pool, pool_type, n_coins, (xp[i] + x) / 2, (xp[j] + y) / 2, True)
if use_underlying:
y = xp[j] - (dy * FEE_DENOMINATOR / (FEE_DENOMINATOR - fee)) * self._underlying_precision(j, pool_type, coins, use_rate)
else:
y = xp[j] - (dy * FEE_DENOMINATOR / (FEE_DENOMINATOR - fee)) * rates[j] / PRECISION
x = self.get_x(pool, i, j, y, xp, n_coins)
dx: uint256 = (x - xp[i]) * PRECISION / rates[i]
if use_underlying:
dx = (x - xp[i]) / self._underlying_precision(i, pool_type, coins, use_rate)
return dx
@external
@view
def get_dx(pool: address, i: int128, j: int128, dy: uint256, n_coins: uint256) -> uint256:
"""
@notice Calculate the input amount required to receive the desired output amount. For NON-META pools.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@return Required input amount
"""
return self._get_dx(pool, i, j, dy, n_coins, self._pool_type(pool), self.USE_RATE[pool], empty(address))
@external
@view
def get_dx_underlying(pool: address, i: int128, j: int128, dy: uint256, n_coins: uint256) -> uint256:
"""
@notice Calculate the underlying input amount required to receive the desired underlying output amount.
Only for ib,usdt,compound,y,busd,pax. For NON-META pools.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@return Required input amount
"""
return self._get_dx(pool, i, j, dy, n_coins, self._pool_type(pool), self.USE_RATE[pool], empty(address), True)
@internal
@view
def _get_dx_meta(pool: address, i: int128, j: int128, dy: uint256, n_coins: uint256, base_pool: address) -> uint256:
"""
@notice Calculate the input amount required to receive the desired output amount. For META pools.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@param base_pool Base pool address
@return Required input amount
"""
if self._pool_type(pool) == 0:
return self._get_dx(pool, i, j, dy, n_coins, 1, FALSE_ARRAY, base_pool)
else:
return self._get_dx(pool, i, j, dy, n_coins, self._pool_type(pool), self.USE_RATE[pool], base_pool)
@external
@view
def get_dx_meta(pool: address, i: int128, j: int128, dy: uint256, n_coins: uint256, base_pool: address) -> uint256:
"""
@notice Calculate the input amount required to receive the desired output amount. For META pools.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@param base_pool Base pool address
@return Required input amount
"""
return self._get_dx_meta(pool, i, j, dy, n_coins, base_pool)
@external
@view
def get_dx_meta_underlying(pool: address, i: int128, j: int128, dy: uint256, n_coins: uint256, base_pool: address, base_token: address) -> uint256:
"""
@notice Calculate the input amount required to receive the desired output amount. For META pools.
@param pool Pool address
@param i Input coin index
@param j Output coin index
@param dy Desired amount of token going out
@param n_coins Number of coins in the pool
@param base_pool Base pool address
@param base_token Base pool's LP token address
@return Required input amount
"""
if i > 0 and j > 0:
return self._get_dx(base_pool, i - 1, j - 1, dy, n_coins - 1, self.POOL_TYPE[base_pool], self.USE_RATE[base_pool], empty(address))
elif i == 0:
# coin -(swap)-> LP -(remove)-> meta_coin (dy - meta_coin)
# 1. lp_amount = calc_token_amount([..., dy, ...], deposit=False)
# 2. dx = get_dx_meta(0, 1, lp_amount)
base_amounts: uint256[MAX_COINS] = empty(uint256[MAX_COINS])
base_amounts[convert(j, uint256) - 1] = dy
lp_amount: uint256 = self._calc_token_amount(base_pool, base_token, base_amounts, n_coins - 1,
self.POOL_TYPE[base_pool], FALSE_ARRAY, empty(address), False)
return self._get_dx_meta(pool, 0, 1, lp_amount, 2, base_pool)
else: # j == 0
# meta_coin -(add)-> LP -(swap)-> coin (dy - coin)
# 1. lp_amount = get_dx_meta(1, 0, dy)
# 2. dx = calc_withdraw_one_coin(lp_amount, i - 1)
lp_amount: uint256 = self._get_dx_meta(pool, 1, 0, dy, 2, base_pool)
return Pool(base_pool).calc_withdraw_one_coin(lp_amount, i - 1)Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_use_int128","type":"address[20]"},{"name":"_pool_type_addresses","type":"address[20]"},{"name":"_pool_types","type":"uint8[20]"},{"name":"_use_rate","type":"bool[10][20]"},{"name":"_stored_rates_implementations","type":"tuple[]","components":[{"name":"factory","type":"address"},{"name":"implementation","type":"address"}]}],"outputs":[]},{"stateMutability":"view","type":"function","name":"calc_token_amount","inputs":[{"name":"pool","type":"address"},{"name":"token","type":"address"},{"name":"amounts","type":"uint256[10]"},{"name":"n_coins","type":"uint256"},{"name":"deposit","type":"bool"},{"name":"use_underlying","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"calc_token_amount_meta","inputs":[{"name":"pool","type":"address"},{"name":"token","type":"address"},{"name":"amounts","type":"uint256[10]"},{"name":"n_coins","type":"uint256"},{"name":"base_pool","type":"address"},{"name":"base_token","type":"address"},{"name":"deposit","type":"bool"},{"name":"use_underlying","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx","inputs":[{"name":"pool","type":"address"},{"name":"i","type":"int128"},{"name":"j","type":"int128"},{"name":"dy","type":"uint256"},{"name":"n_coins","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx_underlying","inputs":[{"name":"pool","type":"address"},{"name":"i","type":"int128"},{"name":"j","type":"int128"},{"name":"dy","type":"uint256"},{"name":"n_coins","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx_meta","inputs":[{"name":"pool","type":"address"},{"name":"i","type":"int128"},{"name":"j","type":"int128"},{"name":"dy","type":"uint256"},{"name":"n_coins","type":"uint256"},{"name":"base_pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx_meta_underlying","inputs":[{"name":"pool","type":"address"},{"name":"i","type":"int128"},{"name":"j","type":"int128"},{"name":"dy","type":"uint256"},{"name":"n_coins","type":"uint256"},{"name":"base_pool","type":"address"},{"name":"base_token","type":"address"}],"outputs":[{"name":"","type":"uint256"}]}]Contract Creation Code
6020616aa16000396000518060a01c616a9c576040526020616ac16000396000518060a01c616a9c576060526020616ae16000396000518060a01c616a9c576080526020616b016000396000518060a01c616a9c5760a0526020616b216000396000518060a01c616a9c5760c0526020616b416000396000518060a01c616a9c5760e0526020616b616000396000518060a01c616a9c57610100526020616b816000396000518060a01c616a9c57610120526020616ba16000396000518060a01c616a9c57610140526020616bc16000396000518060a01c616a9c57610160526020616be16000396000518060a01c616a9c57610180526020616c016000396000518060a01c616a9c576101a0526020616c216000396000518060a01c616a9c576101c0526020616c416000396000518060a01c616a9c576101e0526020616c616000396000518060a01c616a9c57610200526020616c816000396000518060a01c616a9c57610220526020616ca16000396000518060a01c616a9c57610240526020616cc16000396000518060a01c616a9c57610260526020616ce16000396000518060a01c616a9c57610280526020616d016000396000518060a01c616a9c576102a0526020616d216000396000518060a01c616a9c576102c0526020616d416000396000518060a01c616a9c576102e0526020616d616000396000518060a01c616a9c57610300526020616d816000396000518060a01c616a9c57610320526020616da16000396000518060a01c616a9c57610340526020616dc16000396000518060a01c616a9c57610360526020616de16000396000518060a01c616a9c57610380526020616e016000396000518060a01c616a9c576103a0526020616e216000396000518060a01c616a9c576103c0526020616e416000396000518060a01c616a9c576103e0526020616e616000396000518060a01c616a9c57610400526020616e816000396000518060a01c616a9c57610420526020616ea16000396000518060a01c616a9c57610440526020616ec16000396000518060a01c616a9c57610460526020616ee16000396000518060a01c616a9c57610480526020616f016000396000518060a01c616a9c576104a0526020616f216000396000518060a01c616a9c576104c0526020616f416000396000518060a01c616a9c576104e0526020616f616000396000518060a01c616a9c57610500526020616f816000396000518060a01c616a9c57610520526020616fa16000396000518060081c616a9c57610540526020616fc16000396000518060081c616a9c57610560526020616fe16000396000518060081c616a9c576105805260206170016000396000518060081c616a9c576105a05260206170216000396000518060081c616a9c576105c05260206170416000396000518060081c616a9c576105e05260206170616000396000518060081c616a9c576106005260206170816000396000518060081c616a9c576106205260206170a16000396000518060081c616a9c576106405260206170c16000396000518060081c616a9c576106605260206170e16000396000518060081c616a9c576106805260206171016000396000518060081c616a9c576106a05260206171216000396000518060081c616a9c576106c05260206171416000396000518060081c616a9c576106e05260206171616000396000518060081c616a9c576107005260206171816000396000518060081c616a9c576107205260206171a16000396000518060081c616a9c576107405260206171c16000396000518060081c616a9c576107605260206171e16000396000518060081c616a9c576107805260206172016000396000518060081c616a9c576107a05260206172216000396000518060011c616a9c576107c05260206172416000396000518060011c616a9c576107e05260206172616000396000518060011c616a9c576108005260206172816000396000518060011c616a9c576108205260206172a16000396000518060011c616a9c576108405260206172c16000396000518060011c616a9c576108605260206172e16000396000518060011c616a9c576108805260206173016000396000518060011c616a9c576108a05260206173216000396000518060011c616a9c576108c05260206173416000396000518060011c616a9c576108e05260206173616000396000518060011c616a9c576109005260206173816000396000518060011c616a9c576109205260206173a16000396000518060011c616a9c576109405260206173c16000396000518060011c616a9c576109605260206173e16000396000518060011c616a9c576109805260206174016000396000518060011c616a9c576109a05260206174216000396000518060011c616a9c576109c05260206174416000396000518060011c616a9c576109e05260206174616000396000518060011c616a9c57610a005260206174816000396000518060011c616a9c57610a205260206174a16000396000518060011c616a9c57610a405260206174c16000396000518060011c616a9c57610a605260206174e16000396000518060011c616a9c57610a805260206175016000396000518060011c616a9c57610aa05260206175216000396000518060011c616a9c57610ac05260206175416000396000518060011c616a9c57610ae05260206175616000396000518060011c616a9c57610b005260206175816000396000518060011c616a9c57610b205260206175a16000396000518060011c616a9c57610b405260206175c16000396000518060011c616a9c57610b605260206175e16000396000518060011c616a9c57610b805260206176016000396000518060011c616a9c57610ba05260206176216000396000518060011c616a9c57610bc05260206176416000396000518060011c616a9c57610be05260206176616000396000518060011c616a9c57610c005260206176816000396000518060011c616a9c57610c205260206176a16000396000518060011c616a9c57610c405260206176c16000396000518060011c616a9c57610c605260206176e16000396000518060011c616a9c57610c805260206177016000396000518060011c616a9c57610ca05260206177216000396000518060011c616a9c57610cc05260206177416000396000518060011c616a9c57610ce05260206177616000396000518060011c616a9c57610d005260206177816000396000518060011c616a9c57610d205260206177a16000396000518060011c616a9c57610d405260206177c16000396000518060011c616a9c57610d605260206177e16000396000518060011c616a9c57610d805260206178016000396000518060011c616a9c57610da05260206178216000396000518060011c616a9c57610dc05260206178416000396000518060011c616a9c57610de05260206178616000396000518060011c616a9c57610e005260206178816000396000518060011c616a9c57610e205260206178a16000396000518060011c616a9c57610e405260206178c16000396000518060011c616a9c57610e605260206178e16000396000518060011c616a9c57610e805260206179016000396000518060011c616a9c57610ea05260206179216000396000518060011c616a9c57610ec05260206179416000396000518060011c616a9c57610ee05260206179616000396000518060011c616a9c57610f005260206179816000396000518060011c616a9c57610f205260206179a16000396000518060011c616a9c57610f405260206179c16000396000518060011c616a9c57610f605260206179e16000396000518060011c616a9c57610f80526020617a016000396000518060011c616a9c57610fa0526020617a216000396000518060011c616a9c57610fc0526020617a416000396000518060011c616a9c57610fe0526020617a616000396000518060011c616a9c57611000526020617a816000396000518060011c616a9c57611020526020617aa16000396000518060011c616a9c57611040526020617ac16000396000518060011c616a9c57611060526020617ae16000396000518060011c616a9c57611080526020617b016000396000518060011c616a9c576110a0526020617b216000396000518060011c616a9c576110c0526020617b416000396000518060011c616a9c576110e0526020617b616000396000518060011c616a9c57611100526020617b816000396000518060011c616a9c57611120526020617ba16000396000518060011c616a9c57611140526020617bc16000396000518060011c616a9c57611160526020617be16000396000518060011c616a9c57611180526020617c016000396000518060011c616a9c576111a0526020617c216000396000518060011c616a9c576111c0526020617c416000396000518060011c616a9c576111e0526020617c616000396000518060011c616a9c57611200526020617c816000396000518060011c616a9c57611220526020617ca16000396000518060011c616a9c57611240526020617cc16000396000518060011c616a9c57611260526020617ce16000396000518060011c616a9c57611280526020617d016000396000518060011c616a9c576112a0526020617d216000396000518060011c616a9c576112c0526020617d416000396000518060011c616a9c576112e0526020617d616000396000518060011c616a9c57611300526020617d816000396000518060011c616a9c57611320526020617da16000396000518060011c616a9c57611340526020617dc16000396000518060011c616a9c57611360526020617de16000396000518060011c616a9c57611380526020617e016000396000518060011c616a9c576113a0526020617e216000396000518060011c616a9c576113c0526020617e416000396000518060011c616a9c576113e0526020617e616000396000518060011c616a9c57611400526020617e816000396000518060011c616a9c57611420526020617ea16000396000518060011c616a9c57611440526020617ec16000396000518060011c616a9c57611460526020617ee16000396000518060011c616a9c57611480526020617f016000396000518060011c616a9c576114a0526020617f216000396000518060011c616a9c576114c0526020617f416000396000518060011c616a9c576114e0526020617f616000396000518060011c616a9c57611500526020617f816000396000518060011c616a9c57611520526020617fa16000396000518060011c616a9c57611540526020617fc16000396000518060011c616a9c57611560526020617fe16000396000518060011c616a9c576115805260206180016000396000518060011c616a9c576115a05260206180216000396000518060011c616a9c576115c05260206180416000396000518060011c616a9c576115e05260206180616000396000518060011c616a9c576116005260206180816000396000518060011c616a9c576116205260206180a16000396000518060011c616a9c576116405260206180c16000396000518060011c616a9c576116605260206180e16000396000518060011c616a9c576116805260206181016000396000518060011c616a9c576116a05260206181216000396000518060011c616a9c576116c05260206181416000396000518060011c616a9c576116e05260206181616000396000518060011c616a9c576117005260206181816000396000518060011c616a9c576117205260206181a16000396000518060011c616a9c576117405260206181c16000396000518060011c616a9c576117605260206181e16000396000518060011c616a9c576117805260206182016000396000518060011c616a9c576117a05260206182216000396000518060011c616a9c576117c05260206182416000396000518060011c616a9c576117e05260206182616000396000518060011c616a9c576118005260206182816000396000518060011c616a9c576118205260206182a16000396000518060011c616a9c576118405260206182c16000396000518060011c616a9c576118605260206182e16000396000518060011c616a9c576118805260206183016000396000518060011c616a9c576118a05260206183216000396000518060011c616a9c576118c05260206183416000396000518060011c616a9c576118e05260206183616000396000518060011c616a9c576119005260206183816000396000518060011c616a9c576119205260206183a16000396000518060011c616a9c576119405260206183c16000396000518060011c616a9c576119605260206183e16000396000518060011c616a9c576119805260206184016000396000518060011c616a9c576119a05260206184216000396000518060011c616a9c576119c05260206184416000396000518060011c616a9c576119e05260206184616000396000518060011c616a9c57611a005260206184816000396000518060011c616a9c57611a205260206184a16000396000518060011c616a9c57611a405260206184c16000396000518060011c616a9c57611a605260206184e16000396000518060011c616a9c57611a805260206185016000396000518060011c616a9c57611aa05260206185216000396000518060011c616a9c57611ac05260206185416000396000518060011c616a9c57611ae05260206185616000396000518060011c616a9c57611b005260206185816000396000518060011c616a9c57611b205260206185a16000396000518060011c616a9c57611b405260206185c16000396000518060011c616a9c57611b605260206185e16000396000518060011c616a9c57611b805260206186016000396000518060011c616a9c57611ba05260206186216000396000518060011c616a9c57611bc05260206186416000396000518060011c616a9c57611be05260206186616000396000518060011c616a9c57611c005260206186816000396000518060011c616a9c57611c205260206186a16000396000518060011c616a9c57611c405260206186c16000396000518060011c616a9c57611c605260206186e16000396000518060011c616a9c57611c805260206187016000396000518060011c616a9c57611ca05260206187216000396000518060011c616a9c57611cc05260206187416000396000518060011c616a9c57611ce05260206187616000396000518060011c616a9c57611d005260206187816000396000518060011c616a9c57611d205260206187a16000396000518060011c616a9c57611d405260206187c16000396000518060011c616a9c57611d605260206187e16000396000518060011c616a9c57611d805260206188016000396000518060011c616a9c57611da05260206188216000396000518060011c616a9c57611dc05260206188416000396000518060011c616a9c57611de05260206188616000396000518060011c616a9c57611e005260206188816000396000518060011c616a9c57611e205260206188a16000396000518060011c616a9c57611e405260206188c16000396000518060011c616a9c57611e605260206188e16000396000518060011c616a9c57611e805260206189016000396000518060011c616a9c57611ea05260206189216000396000518060011c616a9c57611ec05260206189416000396000518060011c616a9c57611ee05260206189616000396000518060011c616a9c57611f005260206189816000396000518060011c616a9c57611f205260206189a16000396000518060011c616a9c57611f405260206189c16000396000518060011c616a9c57611f605260206189e16000396000518060011c616a9c57611f80526020618a016000396000518060011c616a9c57611fa0526020618a216000396000518060011c616a9c57611fc0526020618a416000396000518060011c616a9c57611fe0526020618a616000396000518060011c616a9c57612000526020618a816000396000518060011c616a9c57612020526020618aa16000396000518060011c616a9c57612040526020618ac16000396000518060011c616a9c57612060526020618ae16000396000518060011c616a9c57612080526020618b016000396000518060011c616a9c576120a0526020618b216000396000516002602082616aa10160003960005111616a9c57602081616aa10160003960005160008160028111616a9c5780156117e657905b8060061b6120e0018160061b6020860101602081616aa1016000396000518060a01c616a9c578252602060208201616aa1016000396000518060a01c616a9c5760208301525050600101818118611794575b5050806120c052505034616a9c5760006014905b8060051b60400151612160526121605161181357611832565b60016000612160516020526000526040600020556001018181186117fa575b505060006014905b80612160526121605160138111616a9c5760051b6102c0015161185c57611984565b6121605160138111616a9c5760051b610540015160016121605160138111616a9c5760051b6102c001516020526000526040600020556101406121605160138111616a9c57026107c00180516121805260208101516121a05260408101516121c05260608101516121e05260808101516122005260a08101516122205260c08101516122405260e081015161226052610100810151612280526101208101516122a0525060026121605160138111616a9c5760051b6102c0015160205260005260406000206121805181556121a05160018201556121c05160028201556121e05160038201556122005160048201556122205160058201556122405160068201556122605160078201556122805160088201556122a05160098201555060010181811861183a575b50506120c0518060061b600081601f0160051c60048111616a9c5780156119c057905b8060051b6120e0015181600401556001018181186119a7575b50505080600355506150c16119da610000396150c1610000f36003361161000c57610f36565b60003560e01c346150af576379ccdf49811861020d576101e436106150af576004358060a01c6150af57611640526024358060a01c6150af57611660526101a4358060011c6150af57611680526101c4358060011c6150af576116a05260206116405161170052611660516117205261014060446117403761018435611880526116405160405261009e6116c06138b2565b6116c0516118a052600261164051602052600052604060002080546118c05260018101546118e05260028101546119005260038101546119205260048101546119405260058101546119605260068101546119805260078101546119a05260088101546119c05260098101546119e052506000611a005261168051611a20526116a051611a4052611700516109e05261172051610a005261174051610a205261176051610a405261178051610a60526117a051610a80526117c051610aa0526117e051610ac05261180051610ae05261182051610b005261184051610b205261186051610b405261188051610b60526118a051610b80526118c051610ba0526118e051610bc05261190051610be05261192051610c005261194051610c205261196051610c405261198051610c60526119a051610c80526119c051610ca0526119e051610cc052611a0051610ce052611a2051610d0052611a4051610d20526102086116e061395a565b6116e0f35b6369a2a4d5811861085b5761022436106150af576004358060a01c6150af57611640526024358060a01c6150af57611660526101a4358060a01c6150af57611680526101c4358060a01c6150af576116a0526101e4358060011c6150af576116c052610204358060011c6150af576116e0526116e0516104a257611640516040526102996117006138b2565b611700516102fb576020611640516109e05261166051610a00526101406044610a203761018435610b60526001610b805261014036610ba03761168051610ce0526116c051610d00526000610d20526102f361172061395a565b611720610859565b602061164051611740526116605161176052610140604461178037610184356118c052611640516040526103306117006138b2565b611700516118e052600261164051602052600052604060002080546119005260018101546119205260028101546119405260038101546119605260048101546119805260058101546119a05260068101546119c05260078101546119e0526008810154611a00526009810154611a20525061168051611a40526116c051611a60526000611a8052611740516109e05261176051610a005261178051610a20526117a051610a40526117c051610a60526117e051610a805261180051610aa05261182051610ac05261184051610ae05261186051610b005261188051610b20526118a051610b40526118c051610b60526118e051610b805261190051610ba05261192051610bc05261194051610be05261196051610c005261198051610c20526119a051610c40526119c051610c60526119e051610c8052611a0051610ca052611a2051610cc052611a4051610ce052611a6051610d0052611a8051610d205261049a61172061395a565b611720610859565b61028036611700376044356117005260006009905b806119805261198051600181018181106150af579050600981116150af5760051b6044013561198051600981116150af5760051b61184001526001018181186104b7575050611680516109e0526116a051610a005261184051610a205261186051610a405261188051610a60526118a051610a80526118c051610aa0526118e051610ac05261190051610ae05261192051610b005261194051610b205261196051610b405261018435600181038181116150af579050610b6052600161168051602052600052604060002054610b805261016036610ba0376116c051610d00526000610d20526105a86119a061395a565b6119a051611980526119805161172052611640516040526105ca6119a06138b2565b6119a051610671576020611640516109e05261166051610a005261170051610a205261172051610a405261174051610a605261176051610a805261178051610aa0526117a051610ac0526117c051610ae0526117e051610b005261180051610b205261182051610b40526002610b60526001610b805261014036610ba03761168051610ce0526116c051610d00526000610d20526106696119c061395a565b6119c0610859565b6020611640516119e05261166051611a005261170051611a205261172051611a405261174051611a605261176051611a805261178051611aa0526117a051611ac0526117c051611ae0526117e051611b005261180051611b205261182051611b40526002611b6052611640516040526106eb6119a06138b2565b6119a051611b805260026116405160205260005260406000208054611ba0526001810154611bc0526002810154611be0526003810154611c00526004810154611c20526005810154611c40526006810154611c60526007810154611c80526008810154611ca0526009810154611cc0525061168051611ce0526116c051611d00526000611d20526119e0516109e052611a0051610a0052611a2051610a2052611a4051610a4052611a6051610a6052611a8051610a8052611aa051610aa052611ac051610ac052611ae051610ae052611b0051610b0052611b2051610b2052611b4051610b4052611b6051610b6052611b8051610b8052611ba051610ba052611bc051610bc052611be051610be052611c0051610c0052611c2051610c2052611c4051610c4052611c6051610c6052611c8051610c8052611ca051610ca052611cc051610cc052611ce051610ce052611d0051610d0052611d2051610d20526108556119c061395a565b6119c05bf35b63158819d481186109eb5760a436106150af576004358060a01c6150af576112405260243580600f0b81186150af576112605260443580600f0b81186150af57611280526020611240516112e052611260516113005261128051611320526040606461134037611240516040526108d36112a06138b2565b6112a05161138052600261124051602052600052604060002080546113a05260018101546113c05260028101546113e05260038101546114005260048101546114205260058101546114405260068101546114605260078101546114805260088101546114a05260098101546114c052506040366114e0376112e0516109c052611300516109e05261132051610a005261134051610a205261136051610a405261138051610a60526113a051610a80526113c051610aa0526113e051610ac05261140051610ae05261142051610b005261144051610b205261146051610b405261148051610b60526114a051610b80526114c051610ba0526114e051610bc05261150051610be0526109e66112c061447a565b6112c0f35b638fd3218f8118610b805760a436106150af576004358060a01c6150af576112405260243580600f0b81186150af576112605260443580600f0b81186150af57611280526020611240516112e05261126051611300526112805161132052604060646113403761124051604052610a636112a06138b2565b6112a05161138052600261124051602052600052604060002080546113a05260018101546113c05260028101546113e05260038101546114005260048101546114205260058101546114405260068101546114605260078101546114805260088101546114a05260098101546114c0525060006114e0526001611500526112e0516109c052611300516109e05261132051610a005261134051610a205261136051610a405261138051610a60526113a051610a80526113c051610aa0526113e051610ac05261140051610ae05261142051610b005261144051610b205261146051610b405261148051610b60526114a051610b80526114c051610ba0526114e051610bc05261150051610be052610b7b6112c061447a565b6112c0f35b63571f00b58118610c0d5760c436106150af576004358060a01c6150af576115805260243580600f0b81186150af576115a05260443580600f0b81186150af576115c05260a4358060a01c6150af576115e052602061158051611240526115a051611260526115c05161128052604060646112a0376115e0516112e052610c08611600614edc565b611600f35b634933a8648118610f345760e436106150af576004358060a01c6150af576116405260243580600f0b81186150af576116605260443580600f0b81186150af576116805260a4358060a01c6150af576116a05260c4358060a01c6150af576116c0526001611660511215610c82576000610c8b565b60016116805112155b610e485761166051610daf57610140366116e03760643561168051600081126150af57600181038181116150af579050600981116150af5760051b6116e001526116a0516109e0526116c051610a00526116e051610a205261170051610a405261172051610a605261174051610a805261176051610aa05261178051610ac0526117a051610ae0526117c051610b00526117e051610b205261180051610b4052608435600181038181116150af579050610b605260016116a051602052600052604060002054610b80526101a036610ba037610d6861184061395a565b611840516118205260206116405161124052600061126052600161128052611820516112a05260026112c0526116a0516112e052610da7611840614edc565b611840610f32565b61164051611240526001611260526000611280526064356112a05260026112c0526116a0516112e052610de3611700614edc565b611700516116e05260206116a05163cc2b27d7611700526116e05161172052611660516001810380600f0b81186150af579050611740526020611700604461171c845afa610e36573d600060003e3d6000fd5b60203d106150af576117009050610f32565b60206116a0516109c052611660516001810380600f0b81186150af5790506109e052611680516001810380600f0b81186150af579050610a0052606435610a2052608435600181038181116150af579050610a405260016116a051602052600052604060002054610a605260026116a05160205260005260406000208054610a80526001810154610aa0526002810154610ac0526003810154610ae0526004810154610b00526005810154610b20526006810154610b40526007810154610b60526008810154610b80526009810154610ba05250604036610bc037610f2e6116e061447a565b6116e05bf35b505b60006000fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610f63576012815250610f99565b60405163313ce567606052602060606004607c845afa610f88573d600060003e3d6000fd5b60203d106150af5760609050518152505b565b61014036610200376000600a905b80610340526101e0516103405110610fc05761102c565b61034051600981116150af5760051b60a00151604052610fe1610360610f3c565b61036051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061034051600981116150af5760051b6102000152600101818118610fa9575b50506102005181526102205160208201526102405160408201526102605160608201526102805160808201526102a05160a08201526102c05160c08201526102e05160e0820152610300516101008201526103205161012082015250565b61014036610100376000600a905b806102405260e05161024051106110ae57611162565b6102405161110c5760a0516040526110c7610260610f3c565b61026051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061024051600981116150af5760051b6101000152611157565b60c05163bb7b8b80610260526020610260600461027c845afa611134573d600060003e3d6000fd5b60203d106150af5761026090505161024051600981116150af5760051b61010001525b600101818118611098575b50506101005181526101205160208201526101405160408201526101605160608201526101805160808201526101a05160a08201526101c05160c08201526101e05160e0820152610200516101008201526102205161012082015250565b610140366101e0376000600a905b806103205260805161032051106111e4576112ec565b61032051600981116150af5760051b60a0015161124a5760605163bb7b8b80610340526020610340600461035c845afa611223573d600060003e3d6000fd5b60203d106150af5761034090505161032051600981116150af5760051b6101e001526112e1565b6040516385cab755610340526020610340600461035c845afa611272573d600060003e3d6000fd5b60203d106150af57610340518060a01c6150af5761038052610380905051636998c48d6103a05260206103a060046103bc845afa6112b5573d600060003e3d6000fd5b60203d106150af576103a0905051633b9aca008104905061032051600981116150af5760051b6101e001525b6001018181186111ce575b50506101e05181526102005160208201526102205160408201526102405160608201526102605160808201526102805160a08201526102a05160c08201526102c05160e08201526102e0516101008201526103005161012082015250565b61014036610360376000600a905b806104a0526101e0516104a0511061136f57611630565b670de0b6b3a76400006104c0526104a051600981116150af5760051b60a001516104e0526104a051600981116150af5760051b6102000151156115be576104a051600981116150af5760051b60a00151636f307dc3610500526020610500600461051c845afa6113e4573d600060003e3d6000fd5b60203d106150af57610500518060a01c6150af57610540526105409050516104e0526104a051600981116150af5760051b60a0015163182df0f5610500526020610500600461051c845afa61143e573d600060003e3d6000fd5b60203d106150af576105009050516104c0526104a051600981116150af5760051b60a0015163ae9d70b0610520526020610520600461053c845afa611488573d600060003e3d6000fd5b60203d106150af57610520905051610500526104a051600981116150af5760051b60a00151636c540baf610540526020610540600461055c845afa6114d2573d600060003e3d6000fd5b60203d106150af576105409050516105205261034051611557576104c0516104c051610500518082028115838383041417156150af579050905042610520518082038281116150af57905090508082028115838383041417156150af5790509050670de0b6b3a7640000810490508082018281106150af57905090506104c0526115be565b6104c0516104c051610500518082028115838383041417156150af579050905043610520518082038281116150af57905090508082028115838383041417156150af5790509050670de0b6b3a7640000810490508082018281106150af57905090506104c0525b6104c051670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104e0516040526115f2610500610f3c565b61050051604d81116150af5780600a0a905080156150af57808204905090506104a051600981116150af5760051b6103600152600101818118611358575b50506103605181526103805160208201526103a05160408201526103c05160608201526103e05160808201526104005160a08201526104205160c08201526104405160e0820152610460516101008201526104805161012082015250565b61014036610340376000600a905b80610480526101e05161048051106116b357611807565b61048051600981116150af5760051b60a001516104a052670de0b6b3a76400006104c05261048051600981116150af5760051b6102000151156117955761048051600981116150af5760051b60a0015163fc0c546a6104e05260206104e060046104fc845afa611728573d600060003e3d6000fd5b60203d106150af576104e0518060a01c6150af57610520526105209050516104a05261048051600981116150af5760051b60a001516377c7b8fc6104e05260206104e060046104fc845afa611782573d600060003e3d6000fd5b60203d106150af576104e09050516104c0525b6104c051670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104a0516040526117c96104e0610f3c565b6104e051604d81116150af5780600a0a905080156150af578082049050905061048051600981116150af5760051b610340015260010181811861169c575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610340376000600a905b80610480526101e051610480511061188a57611988565b61048051600981116150af5760051b61020001516119085761048051600981116150af5760051b60a001516040526118c36104a0610f3c565b6104a051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b610340015261197d565b61048051600981116150af5760051b60a001516371ca337d6104a05260206104a060046104bc845afa611940573d600060003e3d6000fd5b60203d106150af576104a090505180156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b61034001525b600101818118611873575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610340376000600a905b80610480526101e0516104805110611a0b57611b4d565b61048051600981116150af5760051b6102000151611a895761048051600981116150af5760051b60a00151604052611a446104a0610f3c565b6104a051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b6103400152611b42565b61048051600981116150af5760051b60a0015163e6aa216c6104a05260206104a060046104bc845afa611ac1573d600060003e3d6000fd5b60203d106150af576104a0905051670de0b6b3a7640000810281670de0b6b3a76400008204186150af57905061048051600981116150af5760051b60a00151604052611b0e6104e0610f3c565b6104e051604d81116150af5780600a0a905080156150af578082049050905061048051600981116150af5760051b61034001525b6001018181186119f4575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610360376000600a905b806104a052610200516104a05110611bd057611d55565b6104a051600981116150af5760051b6102200151611c4e576104a051600981116150af5760051b60c00151604052611c096104c0610f3c565b6104c051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f10000000000490506104a051600981116150af5760051b6103600152611d4a565b60a051637dc0d1d06104e05260206104e060046104fc845afa611c76573d600060003e3d6000fd5b60203d106150af576104e0518060a01c6150af57610520526105209050516104c0526104c0516350d25bcd6104e05260206104e060046104fc845afa611cc1573d600060003e3d6000fd5b60203d106150af576104e0905051600081126150af57670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104a051600981116150af5760051b60c00151604052611d16610520610f3c565b61052051604d81116150af5780600a0a905080156150af57808204905090506104a051600981116150af5760051b61036001525b600101818118611bb9575b50506103605181526103805160208201526103a05160408201526103c05160608201526103e05160808201526104005160a08201526104205160c08201526104405160e0820152610460516101008201526104805161012082015250565b60405163fd0684b160c052604060c0600460dc845afa611dd8573d600060003e3d6000fd5b60403d106150af5760c090508051608052602081015160a052506101403660c0376000600a905b80610200526060516102005110611e1557611e46565b61020051600181116150af5760051b6080015161020051600981116150af5760051b60c00152600101818118611dff575b505060c051815260e05160208201526101005160408201526101205160608201526101405160808201526101605160a08201526101805160c08201526101a05160e08201526101c0516101008201526101e05161012082015250565b6105a051611f76576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e052611f0a610880610f9b565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60016105a0511861200d576105c05160a0526108605160c0526107005160e052611fa161088061108a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60026105a051186120f1576105805160405261086051606052610700516080526107205160a0526107405160c0526107605160e05261078051610100526107a051610120526107c051610140526107e051610160526108005161018052610820516101a052610840516101c0526120856108806111c0565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60036105a051186121c8576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261215c610880610f9b565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60046105a051186122f5576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e0526108205161030052610840516103205260016103405261228961088061134a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60056105a05118612422576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e052610820516103005261084051610320526000610340526123b661088061134a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60066105a05118612549576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e052610820516103005261084051610320526124dd61088061168e565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60076105a05118612670576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e05261082051610300526108405161032052612604610880611865565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60086105a05118612797576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e0526108205161030052610840516103205261272b6108806119e6565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60096105a051186128c6576105805160a0526105c05160c0526105e05160e052610600516101005261062051610120526106405161014052610660516101605261068051610180526106a0516101a0526106c0516101c0526106e0516101e052610700516102005261072051610220526107405161024052610760516102605261078051610280526107a0516102a0526107c0516102c0526107e0516102e05261080051610300526108205161032052610840516103405261285a610880611bab565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b600a6105a051186129565761058051604052610700516060526128ea610880611db3565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b600d610880527f42616420706f6f6c2074797065000000000000000000000000000000000000006108a0526108805061088051806108a001601f826000031636823750506308c379a061084052602061086052601f19601f61088051011660440161085cfd5b565b6402540be40060a0511115612aa3576040516060518082018281106150af579050905060c05260c05160c0518082028115838383041417156150af579050905060c05260a0516080518082028115838383041417156150af579050905060a0516402540be40081038181116150af5790508060021b818160021c186150af5790506040518082028115838383041417156150af57905090506060518082028115838383041417156150af579050905060c05180156150af57808204905090506402540be40081018181106150af57905080156150af5780820490509050815250612aaa565b6080518152505b565b60e05163ddca3f436101c05260206101c060046101dc845afa612ad4573d600060003e3d6000fd5b60203d106150af576101c09050516101a05261018051612b3d576101a051610120518082028115838383041417156150af579050905061012051600181038181116150af5790508060021b818160021c186150af57905080156150af57808204905090506101a0525b60036101005118612bb55760e051638edfdd5f6101e05260206101e060046101fc845afa612b70573d600060003e3d6000fd5b60203d106150af576101e09050516101c05261014051604052610160516060526101a0516080526101c05160a052612ba96101e06129be565b6101e051815250612bbd565b6101a0518152505b565b6040516102e052606051610300526080516103205260a0516103405260c0516103605260e05161038052610100516103a052610120516103c052610140516103e05261016051610400526000600a905b80610420526102c0516104205110612c2657612c8e565b61042051600981116150af5760051b6102e0015161042051600981116150af5760051b61018001518082028115838383041417156150af5790509050670de0b6b3a76400008104905061042051600981116150af5760051b6102e00152600101818118612c0f575b50506102e05181526103005160208201526103205160408201526103405160608201526103605160808201526103805160a08201526103a05160c08201526103c05160e08201526103e0516101008201526104005161012082015250565b60006101c0526000600a905b8060051b606001516101e0526101c0516101e0518082018281106150af57905090506101c052600101818118612cf85750506101c051612d3c576000815250612f7b565b60006101e0526101c0516102005260405163f446c1d0610240526020610240600461025c845afa612d72573d600060003e3d6000fd5b60203d106150af576102409050516101a0518082028115838383041417156150af579050905061022052600060ff905b806102405261020051610260526000600a905b80610280526101a0516102805110612dcc57612e3c565b61026051610200518082028115838383041417156150af579050905061028051600981116150af5760051b606001516101a0518082028115838383041417156150af5790509050600181018181106150af57905080156150af578082049050905061026052600101818118612db5575b5050610200516101e052610220516101c0518082028115838383041417156150af5790509050610260516101a0518082028115838383041417156150af57905090508082018281106150af5790509050610200518082028115838383041417156150af579050905061022051600181038181116150af579050610200518082028115838383041417156150af57905090506101a051600181018181106150af579050610260518082028115838383041417156150af57905090508082018281106150af579050905080156150af5780820490509050610200526101e0516102005111612f445760016101e051610200518082038281116150af579050905011612f6657612f71565b6001610200516101e0518082038281116150af579050905011612f6657612f71565b600101818118612da2575b5050610200518152505b565b6102e0516102c05114612fe25760006102c0511215612f9d576000612fe5565b60006102e0511215612fb0576000612fe5565b6104605180607f1c6150af576102c05112612fcc576000612fe5565b6104605180607f1c6150af576102e05112612fe5565b60005b156150af576102a05160405261032051606052610340516080526103605160a0526103805160c0526103a05160e0526103c051610100526103e05161012052610400516101405261042051610160526104405161018052610460516101a05261304f6104a0612cec565b6104a05161048052610480516104a05260006104c0526102a05163f446c1d0610500526020610500600461051c845afa61308e573d600060003e3d6000fd5b60203d106150af57610500905051610460518082028115838383041417156150af57905090506104e0526000610500526000600a905b80610520526104605180607f1c6150af5761052051126130e357613192565b6102e05161052051186130fd576103005161050052613123565b6102c05161052051146131875761052051600981116150af5760051b6103200151610500525b6104c051610500518082018281106150af57905090506104c0526104a051610480518082028115838383041417156150af579050905061050051610460518082028115838383041417156150af579050905080156150af57808204905090506104a0525b6001018181186130c4575b50506104a051610480518082028115838383041417156150af57905090506104e051610460518082028115838383041417156150af579050905080156150af57808204905090506104a0526104c051610480516104e05180156150af57808204905090508082018281106150af5790509050610520526000610540526104805161056052600060ff905b8061058052610560516105405261056051610560518082028115838383041417156150af57905090506104a0518082018281106150af5790509050610560518060011b818160011c186150af579050610520518082018281106150af5790509050610480518082038281116150af579050905080156150af5780820490509050610560526105405161056051116132cf57600161054051610560518082038281116150af5790509050116132f1576132fc565b600161056051610540518082038281116150af5790509050116132f1576132fc565b60010181811861321c575b505061056051815250565b610440516108605261046051604052610480516060526104a0516080526104c05160a0526104e05160c0526105005160e05261052051610100526105405161012052610560516101405261058051610160526105a051610180526105c0516101a0526105e0516101c052610600516101e05261062051610200526106405161022052610660516102405261068051610260526106a051610280526106c0516102a0526106e0516102c0526133bc610700612bbf565b61070080516108805260208101516108a05260408101516108c05260608101516108e05260808101516109005260a08101516109205260c08101516109405260e081015161096052610100810151610980526101208101516109a052506106e0516109c05261086051604052610880516060526108a0516080526108c05160a0526108e05160c0526109005160e05261092051610100526109405161012052610960516101405261098051610160526109a051610180526109c0516101a052613486610840612cec565b61084051815250565b6101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526000600a905b806106c052610560516106c051106134fc576136ed565b6106c051600981116150af5760051b606001516106e0526106c051600981116150af5760051b6104200151156136e25760046040511861353d576001613545565b600560405118155b156135a5576106c051600981116150af5760051b60600151636f307dc3610700526020610700600461071c845afa613582573d600060003e3d6000fd5b60203d106150af57610700518060a01c6150af57610740526107409050516106e0525b60066040511861360a576106c051600981116150af5760051b6060015163fc0c546a610700526020610700600461071c845afa6135e7573d600060003e3d6000fd5b60203d106150af57610700518060a01c6150af57610740526107409050516106e0525b6106c051600981116150af5760051b6101a00151670de0b6b3a7640000810281670de0b6b3a76400008204186150af579050670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506106e05163313ce567610700526020610700600461071c845afa613683573d600060003e3d6000fd5b60203d106150af57610700905051604d81116150af5780600a0a905080156150af57808204905090506106c051600981116150af5760051b6102e0015180156150af57808204905090506106c051600981116150af5760051b61058001525b6001018181186134e5575b50506105805181526105a05160208201526105c05160408201526105e05160608201526106005160808201526106205160a08201526106405160c08201526106605160e0820152610680516101008201526106a05161012082015250565b604051600981116150af5760051b6080015161030052604051600981116150af5760051b6101c00151156138555760046060511861378a576001613792565b600560605118155b156137f157604051600981116150af5760051b60800151636f307dc3610320526020610320600461033c845afa6137ce573d600060003e3d6000fd5b60203d106150af57610320518060a01c6150af5761036052610360905051610300525b60066060511861385557604051600981116150af5760051b6080015163fc0c546a610320526020610320600461033c845afa613832573d600060003e3d6000fd5b60203d106150af57610320518060a01c6150af5761036052610360905051610300525b6103005163313ce567610320526020610320600461033c845afa61387e573d600060003e3d6000fd5b60203d106150af57610320905051604d81116150af5780600a0a905080156150af5780670de0b6b3a7640000049050815250565b6000600354600281116150af57801561394157905b8060011b600401805460605260018101546080525060805160605163510d98a460a05260405160c052602060a0602460bc845afa61390a573d600060003e3d6000fd5b60203d106150af5760a0518060a01c6150af5760e05260e09050511861393657600a8352505050613958565b6001018181186138c7575b505060016040516020526000526040600020548152505b565b61028036610d40376000600a905b80610fc052610b6051610fc0511061397f57613b22565b60006109e051602052600052604060002054613a50576109e05163c6610657610fe052610fc051611000526020610fe06024610ffc845afa6139c6573d600060003e3d6000fd5b60203d106150af57610fe0518060a01c6150af5761102052611020905051610fc051600981116150af5760051b610d4001526109e051634903b0d1610fe052610fc051611000526020610fe06024610ffc845afa613a29573d600060003e3d6000fd5b60203d106150af57610fe0905051610fc051600981116150af5760051b610e800152613b17565b6109e0516323746eb8610fe052610fc05180607f1c6150af57611000526020610fe06024610ffc845afa613a89573d600060003e3d6000fd5b60203d106150af57610fe0518060a01c6150af5761102052611020905051610fc051600981116150af5760051b610d4001526109e05163065a80d8610fe052610fc05180607f1c6150af57611000526020610fe06024610ffc845afa613af4573d600060003e3d6000fd5b60203d106150af57610fe0905051610fc051600981116150af5760051b610e8001525b600101818118613968575b5050610e8051610fc052610ea051610fe052610ec05161100052610ee05161102052610f005161104052610f205161106052610f405161108052610f60516110a052610f80516110c052610fa0516110e052610a00516318160ddd611120526020611120600461113c845afa613b9d573d600060003e3d6000fd5b60203d106150af576111209050516111005261014036611120376109e05161058052610b80516105a052610d40516105c052610d60516105e052610d805161060052610da05161062052610dc05161064052610de05161066052610e005161068052610e20516106a052610e40516106c052610e60516106e052610b605161070052610ba05161072052610bc05161074052610be05161076052610c005161078052610c20516107a052610c40516107c052610c60516107e052610c805161080052610ca05161082052610cc05161084052610ce05161086052613c826113a0611ea2565b6113a080516112605260208101516112805260408101516112a05260608101516112c05260808101516112e05260a08101516113005260c08101516113205260e0810151611340526101008101516113605261012081015161138052506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610e80516105a052610ea0516105c052610ec0516105e052610ee05161060052610f005161062052610f205161064052610f405161066052610f605161068052610f80516106a052610fa0516106c052610b60516106e052613d9a6113c0613307565b6113c0516113a052610a20516113c052610a40516113e052610a605161140052610a805161142052610aa05161144052610ac05161146052610ae05161148052610b00516114a052610b20516114c052610b40516114e052610d205115613fae57610b8051604052610d4051606052610d6051608052610d805160a052610da05160c052610dc05160e052610de05161010052610e005161012052610e205161014052610e405161016052610e605161018052610a20516101a052610a40516101c052610a60516101e052610a805161020052610aa05161022052610ac05161024052610ae05161026052610b005161028052610b20516102a052610b40516102c052611260516102e05261128051610300526112a051610320526112c051610340526112e051610360526113005161038052611320516103a052611340516103c052611360516103e0526113805161040052610ba05161042052610bc05161044052610be05161046052610c005161048052610c20516104a052610c40516104c052610c60516104e052610c805161050052610ca05161052052610cc05161054052610b605161056052613f5061150061348f565b61150080516113c05260208101516113e05260408101516114005260608101516114205260808101516114405260a08101516114605260c08101516114805260e08101516114a0526101008101516114c0526101208101516114e052505b6000600a905b8061150052610b60516115005110613fcb57614058565b610d00516140125761150051600981116150af5760051b610fc001805161150051600981116150af5760051b6113c001518082038281116150af579050905081525061404d565b61150051600981116150af5760051b610fc001805161150051600981116150af5760051b6113c001518082018281106150af57905090508152505b600101818118613fb4575b50506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610fc0516105a052610fe0516105c052611000516105e05261102051610600526110405161062052611060516106405261108051610660526110a051610680526110c0516106a0526110e0516106c052610b60516106e052614115611520613307565b6115205161150052611500516115205261110051156143eb576113a051611500518082018281106150af5790509050610b605180156150af5780820490509050611540526000600a905b8061156052610b6051611560511061417657614325565b6115005161156051600981116150af5760051b610e8001518082028115838383041417156150af57905090506113a05180156150af57808204905090506115805260006115a05261156051600981116150af5760051b610fc0015161158051116142095761156051600981116150af5760051b610fc00151611580518082038281116150af57905090506115a052614234565b6115805161156051600981116150af5760051b610fc001518082038281116150af57905090506115a0525b61156051600981116150af5760051b610e80015161156051600981116150af5760051b610fc001518082018281106150af57905090506115c0526109e05160e052610b805161010052610b60516101205261154051610140526115c051610160526000610180526142a66115e0612aac565b6115e0516115a0518082028115838383041417156150af57905090506402540be4008104905061156051600981116150af5760051b611120015261156051600981116150af5760051b610fc001805161156051600981116150af5760051b61112001518082038281116150af579050905081525060010181811861415f575b50506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610fc0516105a052610fe0516105c052611000516105e05261102051610600526110405161062052611060516106405261108051610660526110a051610680526110c0516106a0526110e0516106c052610b60516106e0526143e2611560613307565b61156051611520525b611100516143ff5761150051815250614478565b600061154052610d005161442c576113a051611520518082038281116150af579050905061154052614447565b611520516113a0518082038281116150af5790509050611540525b61110051611540518082028115838383041417156150af57905090506113a05180156150af57808204905090508152505b565b61028036610c00376000600a905b80610e8052610a405180607f1c6150af57610e8051126144a75761464a565b60006109c051602052600052604060002054614588576109c05163c6610657610ea052610e8051600081126150af57610ec0526020610ea06024610ebc845afa6144f6573d600060003e3d6000fd5b60203d106150af57610ea0518060a01c6150af57610ee052610ee0905051610e8051600981116150af5760051b610c0001526109c051634903b0d1610ea052610e8051600081126150af57610ec0526020610ea06024610ebc845afa614561573d600060003e3d6000fd5b60203d106150af57610ea0905051610e8051600981116150af5760051b610d40015261463f565b6109c0516323746eb8610ea052610e8051610ec0526020610ea06024610ebc845afa6145b9573d600060003e3d6000fd5b60203d106150af57610ea0518060a01c6150af57610ee052610ee0905051610e8051600981116150af5760051b610c0001526109c05163065a80d8610ea052610e8051610ec0526020610ea06024610ebc845afa61461c573d600060003e3d6000fd5b60203d106150af57610ea0905051610e8051600981116150af5760051b610d4001525b600101818118614488575b50506109c05161058052610a60516105a052610c00516105c052610c20516105e052610c405161060052610c605161062052610c805161064052610ca05161066052610cc05161068052610ce0516106a052610d00516106c052610d20516106e052610a405161070052610a805161072052610aa05161074052610ac05161076052610ae05161078052610b00516107a052610b20516107c052610b40516107e052610b605161080052610b805161082052610ba05161084052610bc05161086052614717610fc0611ea2565b610fc08051610e80526020810151610ea0526040810151610ec0526060810151610ee0526080810151610f005260a0810151610f205260c0810151610f405260e0810151610f6052610100810151610f8052610120810151610fa05250610e8051604052610ea051606052610ec051608052610ee05160a052610f005160c052610f205160e052610f405161010052610f605161012052610f805161014052610fa05161016052610d405161018052610d60516101a052610d80516101c052610da0516101e052610dc05161020052610de05161022052610e005161024052610e205161026052610e405161028052610e60516102a052610a40516102c052614821611100612bbf565b6111008051610fc0526020810151610fe05260408101516110005260608101516110205260808101516110405260a08101516110605260c08101516110805260e08101516110a0526101008101516110c0526101208101516110e05250600061110052610be0516148f057610a0051600981116150af5760051b610fc00151610a2051610a0051600981116150af5760051b610e8001518082028115838383041417156150af5790509050670de0b6b3a7640000810490508082038281116150af5790509050611100526149e8565b610a0051600981116150af5760051b610fc00151610a2051610a0051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e0526149bd61112061374b565b611120518082028115838383041417156150af57905090508082038281116150af5790509050611100525b6109c0516102a0526109e0516102c052610a00516102e0526111005161030052610fc05161032052610fe0516103405261100051610360526110205161038052611040516103a052611060516103c052611080516103e0526110a051610400526110c051610420526110e05161044052610a405161046052614a6b611140612f7d565b61114051611120526109c05160e052610a605161010052610a4051610120526109e051600981116150af5760051b610fc00151611120518082018281106150af57905090508060011c905061014052610a0051600981116150af5760051b610fc00151611100518082018281106150af57905090508060011c905061016052600161018052614afb611160612aac565b6111605161114052610be051614bae57610a0051600981116150af5760051b610fc00151610a20516402540be4008102816402540be4008204186150af57905061114051806402540be400036402540be40081116150af57905080156150af5780820490509050610a0051600981116150af5760051b610e8001518082028115838383041417156150af5790509050670de0b6b3a7640000810490508082038281116150af579050905061110052614ce5565b610a0051600981116150af5760051b610fc00151610a20516402540be4008102816402540be4008204186150af57905061114051806402540be400036402540be40081116150af57905080156150af5780820490509050610a0051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e052614cba61116061374b565b611160518082028115838383041417156150af57905090508082038281116150af5790509050611100525b6109c0516102a0526109e0516102c052610a00516102e0526111005161030052610fc05161032052610fe0516103405261100051610360526110205161038052611040516103a052611060516103c052611080516103e0526110a051610400526110c051610420526110e05161044052610a405161046052614d68611160612f7d565b6111605161112052611120516109e051600981116150af5760051b610fc001518082038281116150af5790509050670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506109e051600981116150af5760051b610e80015180156150af578082049050905061116052610be05115614ed357611120516109e051600981116150af5760051b610fc001518082038281116150af57905090506109e051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e052614ebd61118061374b565b6111805180156150af5780820490509050611160525b61116051815250565b61124051604052614eee6113006138b2565b61130051614f5157611240516109c052611260516109e05261128051610a00526112a051610a20526112c051610a40526001610a605261014036610a80376112e051610bc0526000610be052614f4561132061447a565b611320518152506150ad565b6112405161134052611260516113605261128051611380526112a0516113a0526112c0516113c05261124051604052614f8b6113006138b2565b611300516113e052600261124051602052600052604060002080546114005260018101546114205260028101546114405260038101546114605260048101546114805260058101546114a05260068101546114c05260078101546114e052600881015461150052600981015461152052506112e05161154052600061156052611340516109c052611360516109e05261138051610a00526113a051610a20526113c051610a40526113e051610a605261140051610a805261142051610aa05261144051610ac05261146051610ae05261148051610b00526114a051610b20526114c051610b40526114e051610b605261150051610b805261152051610ba05261154051610bc05261156051610be0526150a561132061447a565b611320518152505b565b600080fda165767970657283000309000b005b600080fd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a00000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6003361161000c57610f36565b60003560e01c346150af576379ccdf49811861020d576101e436106150af576004358060a01c6150af57611640526024358060a01c6150af57611660526101a4358060011c6150af57611680526101c4358060011c6150af576116a05260206116405161170052611660516117205261014060446117403761018435611880526116405160405261009e6116c06138b2565b6116c0516118a052600261164051602052600052604060002080546118c05260018101546118e05260028101546119005260038101546119205260048101546119405260058101546119605260068101546119805260078101546119a05260088101546119c05260098101546119e052506000611a005261168051611a20526116a051611a4052611700516109e05261172051610a005261174051610a205261176051610a405261178051610a60526117a051610a80526117c051610aa0526117e051610ac05261180051610ae05261182051610b005261184051610b205261186051610b405261188051610b60526118a051610b80526118c051610ba0526118e051610bc05261190051610be05261192051610c005261194051610c205261196051610c405261198051610c60526119a051610c80526119c051610ca0526119e051610cc052611a0051610ce052611a2051610d0052611a4051610d20526102086116e061395a565b6116e0f35b6369a2a4d5811861085b5761022436106150af576004358060a01c6150af57611640526024358060a01c6150af57611660526101a4358060a01c6150af57611680526101c4358060a01c6150af576116a0526101e4358060011c6150af576116c052610204358060011c6150af576116e0526116e0516104a257611640516040526102996117006138b2565b611700516102fb576020611640516109e05261166051610a00526101406044610a203761018435610b60526001610b805261014036610ba03761168051610ce0526116c051610d00526000610d20526102f361172061395a565b611720610859565b602061164051611740526116605161176052610140604461178037610184356118c052611640516040526103306117006138b2565b611700516118e052600261164051602052600052604060002080546119005260018101546119205260028101546119405260038101546119605260048101546119805260058101546119a05260068101546119c05260078101546119e0526008810154611a00526009810154611a20525061168051611a40526116c051611a60526000611a8052611740516109e05261176051610a005261178051610a20526117a051610a40526117c051610a60526117e051610a805261180051610aa05261182051610ac05261184051610ae05261186051610b005261188051610b20526118a051610b40526118c051610b60526118e051610b805261190051610ba05261192051610bc05261194051610be05261196051610c005261198051610c20526119a051610c40526119c051610c60526119e051610c8052611a0051610ca052611a2051610cc052611a4051610ce052611a6051610d0052611a8051610d205261049a61172061395a565b611720610859565b61028036611700376044356117005260006009905b806119805261198051600181018181106150af579050600981116150af5760051b6044013561198051600981116150af5760051b61184001526001018181186104b7575050611680516109e0526116a051610a005261184051610a205261186051610a405261188051610a60526118a051610a80526118c051610aa0526118e051610ac05261190051610ae05261192051610b005261194051610b205261196051610b405261018435600181038181116150af579050610b6052600161168051602052600052604060002054610b805261016036610ba0376116c051610d00526000610d20526105a86119a061395a565b6119a051611980526119805161172052611640516040526105ca6119a06138b2565b6119a051610671576020611640516109e05261166051610a005261170051610a205261172051610a405261174051610a605261176051610a805261178051610aa0526117a051610ac0526117c051610ae0526117e051610b005261180051610b205261182051610b40526002610b60526001610b805261014036610ba03761168051610ce0526116c051610d00526000610d20526106696119c061395a565b6119c0610859565b6020611640516119e05261166051611a005261170051611a205261172051611a405261174051611a605261176051611a805261178051611aa0526117a051611ac0526117c051611ae0526117e051611b005261180051611b205261182051611b40526002611b6052611640516040526106eb6119a06138b2565b6119a051611b805260026116405160205260005260406000208054611ba0526001810154611bc0526002810154611be0526003810154611c00526004810154611c20526005810154611c40526006810154611c60526007810154611c80526008810154611ca0526009810154611cc0525061168051611ce0526116c051611d00526000611d20526119e0516109e052611a0051610a0052611a2051610a2052611a4051610a4052611a6051610a6052611a8051610a8052611aa051610aa052611ac051610ac052611ae051610ae052611b0051610b0052611b2051610b2052611b4051610b4052611b6051610b6052611b8051610b8052611ba051610ba052611bc051610bc052611be051610be052611c0051610c0052611c2051610c2052611c4051610c4052611c6051610c6052611c8051610c8052611ca051610ca052611cc051610cc052611ce051610ce052611d0051610d0052611d2051610d20526108556119c061395a565b6119c05bf35b63158819d481186109eb5760a436106150af576004358060a01c6150af576112405260243580600f0b81186150af576112605260443580600f0b81186150af57611280526020611240516112e052611260516113005261128051611320526040606461134037611240516040526108d36112a06138b2565b6112a05161138052600261124051602052600052604060002080546113a05260018101546113c05260028101546113e05260038101546114005260048101546114205260058101546114405260068101546114605260078101546114805260088101546114a05260098101546114c052506040366114e0376112e0516109c052611300516109e05261132051610a005261134051610a205261136051610a405261138051610a60526113a051610a80526113c051610aa0526113e051610ac05261140051610ae05261142051610b005261144051610b205261146051610b405261148051610b60526114a051610b80526114c051610ba0526114e051610bc05261150051610be0526109e66112c061447a565b6112c0f35b638fd3218f8118610b805760a436106150af576004358060a01c6150af576112405260243580600f0b81186150af576112605260443580600f0b81186150af57611280526020611240516112e05261126051611300526112805161132052604060646113403761124051604052610a636112a06138b2565b6112a05161138052600261124051602052600052604060002080546113a05260018101546113c05260028101546113e05260038101546114005260048101546114205260058101546114405260068101546114605260078101546114805260088101546114a05260098101546114c0525060006114e0526001611500526112e0516109c052611300516109e05261132051610a005261134051610a205261136051610a405261138051610a60526113a051610a80526113c051610aa0526113e051610ac05261140051610ae05261142051610b005261144051610b205261146051610b405261148051610b60526114a051610b80526114c051610ba0526114e051610bc05261150051610be052610b7b6112c061447a565b6112c0f35b63571f00b58118610c0d5760c436106150af576004358060a01c6150af576115805260243580600f0b81186150af576115a05260443580600f0b81186150af576115c05260a4358060a01c6150af576115e052602061158051611240526115a051611260526115c05161128052604060646112a0376115e0516112e052610c08611600614edc565b611600f35b634933a8648118610f345760e436106150af576004358060a01c6150af576116405260243580600f0b81186150af576116605260443580600f0b81186150af576116805260a4358060a01c6150af576116a05260c4358060a01c6150af576116c0526001611660511215610c82576000610c8b565b60016116805112155b610e485761166051610daf57610140366116e03760643561168051600081126150af57600181038181116150af579050600981116150af5760051b6116e001526116a0516109e0526116c051610a00526116e051610a205261170051610a405261172051610a605261174051610a805261176051610aa05261178051610ac0526117a051610ae0526117c051610b00526117e051610b205261180051610b4052608435600181038181116150af579050610b605260016116a051602052600052604060002054610b80526101a036610ba037610d6861184061395a565b611840516118205260206116405161124052600061126052600161128052611820516112a05260026112c0526116a0516112e052610da7611840614edc565b611840610f32565b61164051611240526001611260526000611280526064356112a05260026112c0526116a0516112e052610de3611700614edc565b611700516116e05260206116a05163cc2b27d7611700526116e05161172052611660516001810380600f0b81186150af579050611740526020611700604461171c845afa610e36573d600060003e3d6000fd5b60203d106150af576117009050610f32565b60206116a0516109c052611660516001810380600f0b81186150af5790506109e052611680516001810380600f0b81186150af579050610a0052606435610a2052608435600181038181116150af579050610a405260016116a051602052600052604060002054610a605260026116a05160205260005260406000208054610a80526001810154610aa0526002810154610ac0526003810154610ae0526004810154610b00526005810154610b20526006810154610b40526007810154610b60526008810154610b80526009810154610ba05250604036610bc037610f2e6116e061447a565b6116e05bf35b505b60006000fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60405118610f63576012815250610f99565b60405163313ce567606052602060606004607c845afa610f88573d600060003e3d6000fd5b60203d106150af5760609050518152505b565b61014036610200376000600a905b80610340526101e0516103405110610fc05761102c565b61034051600981116150af5760051b60a00151604052610fe1610360610f3c565b61036051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061034051600981116150af5760051b6102000152600101818118610fa9575b50506102005181526102205160208201526102405160408201526102605160608201526102805160808201526102a05160a08201526102c05160c08201526102e05160e0820152610300516101008201526103205161012082015250565b61014036610100376000600a905b806102405260e05161024051106110ae57611162565b6102405161110c5760a0516040526110c7610260610f3c565b61026051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061024051600981116150af5760051b6101000152611157565b60c05163bb7b8b80610260526020610260600461027c845afa611134573d600060003e3d6000fd5b60203d106150af5761026090505161024051600981116150af5760051b61010001525b600101818118611098575b50506101005181526101205160208201526101405160408201526101605160608201526101805160808201526101a05160a08201526101c05160c08201526101e05160e0820152610200516101008201526102205161012082015250565b610140366101e0376000600a905b806103205260805161032051106111e4576112ec565b61032051600981116150af5760051b60a0015161124a5760605163bb7b8b80610340526020610340600461035c845afa611223573d600060003e3d6000fd5b60203d106150af5761034090505161032051600981116150af5760051b6101e001526112e1565b6040516385cab755610340526020610340600461035c845afa611272573d600060003e3d6000fd5b60203d106150af57610340518060a01c6150af5761038052610380905051636998c48d6103a05260206103a060046103bc845afa6112b5573d600060003e3d6000fd5b60203d106150af576103a0905051633b9aca008104905061032051600981116150af5760051b6101e001525b6001018181186111ce575b50506101e05181526102005160208201526102205160408201526102405160608201526102605160808201526102805160a08201526102a05160c08201526102c05160e08201526102e0516101008201526103005161012082015250565b61014036610360376000600a905b806104a0526101e0516104a0511061136f57611630565b670de0b6b3a76400006104c0526104a051600981116150af5760051b60a001516104e0526104a051600981116150af5760051b6102000151156115be576104a051600981116150af5760051b60a00151636f307dc3610500526020610500600461051c845afa6113e4573d600060003e3d6000fd5b60203d106150af57610500518060a01c6150af57610540526105409050516104e0526104a051600981116150af5760051b60a0015163182df0f5610500526020610500600461051c845afa61143e573d600060003e3d6000fd5b60203d106150af576105009050516104c0526104a051600981116150af5760051b60a0015163ae9d70b0610520526020610520600461053c845afa611488573d600060003e3d6000fd5b60203d106150af57610520905051610500526104a051600981116150af5760051b60a00151636c540baf610540526020610540600461055c845afa6114d2573d600060003e3d6000fd5b60203d106150af576105409050516105205261034051611557576104c0516104c051610500518082028115838383041417156150af579050905042610520518082038281116150af57905090508082028115838383041417156150af5790509050670de0b6b3a7640000810490508082018281106150af57905090506104c0526115be565b6104c0516104c051610500518082028115838383041417156150af579050905043610520518082038281116150af57905090508082028115838383041417156150af5790509050670de0b6b3a7640000810490508082018281106150af57905090506104c0525b6104c051670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104e0516040526115f2610500610f3c565b61050051604d81116150af5780600a0a905080156150af57808204905090506104a051600981116150af5760051b6103600152600101818118611358575b50506103605181526103805160208201526103a05160408201526103c05160608201526103e05160808201526104005160a08201526104205160c08201526104405160e0820152610460516101008201526104805161012082015250565b61014036610340376000600a905b80610480526101e05161048051106116b357611807565b61048051600981116150af5760051b60a001516104a052670de0b6b3a76400006104c05261048051600981116150af5760051b6102000151156117955761048051600981116150af5760051b60a0015163fc0c546a6104e05260206104e060046104fc845afa611728573d600060003e3d6000fd5b60203d106150af576104e0518060a01c6150af57610520526105209050516104a05261048051600981116150af5760051b60a001516377c7b8fc6104e05260206104e060046104fc845afa611782573d600060003e3d6000fd5b60203d106150af576104e09050516104c0525b6104c051670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104a0516040526117c96104e0610f3c565b6104e051604d81116150af5780600a0a905080156150af578082049050905061048051600981116150af5760051b610340015260010181811861169c575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610340376000600a905b80610480526101e051610480511061188a57611988565b61048051600981116150af5760051b61020001516119085761048051600981116150af5760051b60a001516040526118c36104a0610f3c565b6104a051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b610340015261197d565b61048051600981116150af5760051b60a001516371ca337d6104a05260206104a060046104bc845afa611940573d600060003e3d6000fd5b60203d106150af576104a090505180156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b61034001525b600101818118611873575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610340376000600a905b80610480526101e0516104805110611a0b57611b4d565b61048051600981116150af5760051b6102000151611a895761048051600981116150af5760051b60a00151604052611a446104a0610f3c565b6104a051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f100000000004905061048051600981116150af5760051b6103400152611b42565b61048051600981116150af5760051b60a0015163e6aa216c6104a05260206104a060046104bc845afa611ac1573d600060003e3d6000fd5b60203d106150af576104a0905051670de0b6b3a7640000810281670de0b6b3a76400008204186150af57905061048051600981116150af5760051b60a00151604052611b0e6104e0610f3c565b6104e051604d81116150af5780600a0a905080156150af578082049050905061048051600981116150af5760051b61034001525b6001018181186119f4575b50506103405181526103605160208201526103805160408201526103a05160608201526103c05160808201526103e05160a08201526104005160c08201526104205160e0820152610440516101008201526104605161012082015250565b61014036610360376000600a905b806104a052610200516104a05110611bd057611d55565b6104a051600981116150af5760051b6102200151611c4e576104a051600981116150af5760051b60c00151604052611c096104c0610f3c565b6104c051604d81116150af5780600a0a905080156150af57806ec097ce7bc90715b34b9f10000000000490506104a051600981116150af5760051b6103600152611d4a565b60a051637dc0d1d06104e05260206104e060046104fc845afa611c76573d600060003e3d6000fd5b60203d106150af576104e0518060a01c6150af57610520526105209050516104c0526104c0516350d25bcd6104e05260206104e060046104fc845afa611cc1573d600060003e3d6000fd5b60203d106150af576104e0905051600081126150af57670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506104a051600981116150af5760051b60c00151604052611d16610520610f3c565b61052051604d81116150af5780600a0a905080156150af57808204905090506104a051600981116150af5760051b61036001525b600101818118611bb9575b50506103605181526103805160208201526103a05160408201526103c05160608201526103e05160808201526104005160a08201526104205160c08201526104405160e0820152610460516101008201526104805161012082015250565b60405163fd0684b160c052604060c0600460dc845afa611dd8573d600060003e3d6000fd5b60403d106150af5760c090508051608052602081015160a052506101403660c0376000600a905b80610200526060516102005110611e1557611e46565b61020051600181116150af5760051b6080015161020051600981116150af5760051b60c00152600101818118611dff575b505060c051815260e05160208201526101005160408201526101205160608201526101405160808201526101605160a08201526101805160c08201526101a05160e08201526101c0516101008201526101e05161012082015250565b6105a051611f76576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e052611f0a610880610f9b565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60016105a0511861200d576105c05160a0526108605160c0526107005160e052611fa161088061108a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60026105a051186120f1576105805160405261086051606052610700516080526107205160a0526107405160c0526107605160e05261078051610100526107a051610120526107c051610140526107e051610160526108005161018052610820516101a052610840516101c0526120856108806111c0565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60036105a051186121c8576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261215c610880610f9b565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60046105a051186122f5576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e0526108205161030052610840516103205260016103405261228961088061134a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60056105a05118612422576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e052610820516103005261084051610320526000610340526123b661088061134a565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60066105a05118612549576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e052610820516103005261084051610320526124dd61088061168e565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60076105a05118612670576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e05261082051610300526108405161032052612604610880611865565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60086105a05118612797576105c05160a0526105e05160c0526106005160e05261062051610100526106405161012052610660516101405261068051610160526106a051610180526106c0516101a0526106e0516101c052610700516101e05261072051610200526107405161022052610760516102405261078051610260526107a051610280526107c0516102a0526107e0516102c052610800516102e0526108205161030052610840516103205261272b6108806119e6565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b60096105a051186128c6576105805160a0526105c05160c0526105e05160e052610600516101005261062051610120526106405161014052610660516101605261068051610180526106a0516101a0526106c0516101c0526106e0516101e052610700516102005261072051610220526107405161024052610760516102605261078051610280526107a0516102a0526107c0516102c0526107e0516102e05261080051610300526108205161032052610840516103405261285a610880611bab565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b600a6105a051186129565761058051604052610700516060526128ea610880611db3565b610880805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015250506129bc565b600d610880527f42616420706f6f6c2074797065000000000000000000000000000000000000006108a0526108805061088051806108a001601f826000031636823750506308c379a061084052602061086052601f19601f61088051011660440161085cfd5b565b6402540be40060a0511115612aa3576040516060518082018281106150af579050905060c05260c05160c0518082028115838383041417156150af579050905060c05260a0516080518082028115838383041417156150af579050905060a0516402540be40081038181116150af5790508060021b818160021c186150af5790506040518082028115838383041417156150af57905090506060518082028115838383041417156150af579050905060c05180156150af57808204905090506402540be40081018181106150af57905080156150af5780820490509050815250612aaa565b6080518152505b565b60e05163ddca3f436101c05260206101c060046101dc845afa612ad4573d600060003e3d6000fd5b60203d106150af576101c09050516101a05261018051612b3d576101a051610120518082028115838383041417156150af579050905061012051600181038181116150af5790508060021b818160021c186150af57905080156150af57808204905090506101a0525b60036101005118612bb55760e051638edfdd5f6101e05260206101e060046101fc845afa612b70573d600060003e3d6000fd5b60203d106150af576101e09050516101c05261014051604052610160516060526101a0516080526101c05160a052612ba96101e06129be565b6101e051815250612bbd565b6101a0518152505b565b6040516102e052606051610300526080516103205260a0516103405260c0516103605260e05161038052610100516103a052610120516103c052610140516103e05261016051610400526000600a905b80610420526102c0516104205110612c2657612c8e565b61042051600981116150af5760051b6102e0015161042051600981116150af5760051b61018001518082028115838383041417156150af5790509050670de0b6b3a76400008104905061042051600981116150af5760051b6102e00152600101818118612c0f575b50506102e05181526103005160208201526103205160408201526103405160608201526103605160808201526103805160a08201526103a05160c08201526103c05160e08201526103e0516101008201526104005161012082015250565b60006101c0526000600a905b8060051b606001516101e0526101c0516101e0518082018281106150af57905090506101c052600101818118612cf85750506101c051612d3c576000815250612f7b565b60006101e0526101c0516102005260405163f446c1d0610240526020610240600461025c845afa612d72573d600060003e3d6000fd5b60203d106150af576102409050516101a0518082028115838383041417156150af579050905061022052600060ff905b806102405261020051610260526000600a905b80610280526101a0516102805110612dcc57612e3c565b61026051610200518082028115838383041417156150af579050905061028051600981116150af5760051b606001516101a0518082028115838383041417156150af5790509050600181018181106150af57905080156150af578082049050905061026052600101818118612db5575b5050610200516101e052610220516101c0518082028115838383041417156150af5790509050610260516101a0518082028115838383041417156150af57905090508082018281106150af5790509050610200518082028115838383041417156150af579050905061022051600181038181116150af579050610200518082028115838383041417156150af57905090506101a051600181018181106150af579050610260518082028115838383041417156150af57905090508082018281106150af579050905080156150af5780820490509050610200526101e0516102005111612f445760016101e051610200518082038281116150af579050905011612f6657612f71565b6001610200516101e0518082038281116150af579050905011612f6657612f71565b600101818118612da2575b5050610200518152505b565b6102e0516102c05114612fe25760006102c0511215612f9d576000612fe5565b60006102e0511215612fb0576000612fe5565b6104605180607f1c6150af576102c05112612fcc576000612fe5565b6104605180607f1c6150af576102e05112612fe5565b60005b156150af576102a05160405261032051606052610340516080526103605160a0526103805160c0526103a05160e0526103c051610100526103e05161012052610400516101405261042051610160526104405161018052610460516101a05261304f6104a0612cec565b6104a05161048052610480516104a05260006104c0526102a05163f446c1d0610500526020610500600461051c845afa61308e573d600060003e3d6000fd5b60203d106150af57610500905051610460518082028115838383041417156150af57905090506104e0526000610500526000600a905b80610520526104605180607f1c6150af5761052051126130e357613192565b6102e05161052051186130fd576103005161050052613123565b6102c05161052051146131875761052051600981116150af5760051b6103200151610500525b6104c051610500518082018281106150af57905090506104c0526104a051610480518082028115838383041417156150af579050905061050051610460518082028115838383041417156150af579050905080156150af57808204905090506104a0525b6001018181186130c4575b50506104a051610480518082028115838383041417156150af57905090506104e051610460518082028115838383041417156150af579050905080156150af57808204905090506104a0526104c051610480516104e05180156150af57808204905090508082018281106150af5790509050610520526000610540526104805161056052600060ff905b8061058052610560516105405261056051610560518082028115838383041417156150af57905090506104a0518082018281106150af5790509050610560518060011b818160011c186150af579050610520518082018281106150af5790509050610480518082038281116150af579050905080156150af5780820490509050610560526105405161056051116132cf57600161054051610560518082038281116150af5790509050116132f1576132fc565b600161056051610540518082038281116150af5790509050116132f1576132fc565b60010181811861321c575b505061056051815250565b610440516108605261046051604052610480516060526104a0516080526104c05160a0526104e05160c0526105005160e05261052051610100526105405161012052610560516101405261058051610160526105a051610180526105c0516101a0526105e0516101c052610600516101e05261062051610200526106405161022052610660516102405261068051610260526106a051610280526106c0516102a0526106e0516102c0526133bc610700612bbf565b61070080516108805260208101516108a05260408101516108c05260608101516108e05260808101516109005260a08101516109205260c08101516109405260e081015161096052610100810151610980526101208101516109a052506106e0516109c05261086051604052610880516060526108a0516080526108c05160a0526108e05160c0526109005160e05261092051610100526109405161012052610960516101405261098051610160526109a051610180526109c0516101a052613486610840612cec565b61084051815250565b6101a051610580526101c0516105a0526101e0516105c052610200516105e05261022051610600526102405161062052610260516106405261028051610660526102a051610680526102c0516106a0526000600a905b806106c052610560516106c051106134fc576136ed565b6106c051600981116150af5760051b606001516106e0526106c051600981116150af5760051b6104200151156136e25760046040511861353d576001613545565b600560405118155b156135a5576106c051600981116150af5760051b60600151636f307dc3610700526020610700600461071c845afa613582573d600060003e3d6000fd5b60203d106150af57610700518060a01c6150af57610740526107409050516106e0525b60066040511861360a576106c051600981116150af5760051b6060015163fc0c546a610700526020610700600461071c845afa6135e7573d600060003e3d6000fd5b60203d106150af57610700518060a01c6150af57610740526107409050516106e0525b6106c051600981116150af5760051b6101a00151670de0b6b3a7640000810281670de0b6b3a76400008204186150af579050670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506106e05163313ce567610700526020610700600461071c845afa613683573d600060003e3d6000fd5b60203d106150af57610700905051604d81116150af5780600a0a905080156150af57808204905090506106c051600981116150af5760051b6102e0015180156150af57808204905090506106c051600981116150af5760051b61058001525b6001018181186134e5575b50506105805181526105a05160208201526105c05160408201526105e05160608201526106005160808201526106205160a08201526106405160c08201526106605160e0820152610680516101008201526106a05161012082015250565b604051600981116150af5760051b6080015161030052604051600981116150af5760051b6101c00151156138555760046060511861378a576001613792565b600560605118155b156137f157604051600981116150af5760051b60800151636f307dc3610320526020610320600461033c845afa6137ce573d600060003e3d6000fd5b60203d106150af57610320518060a01c6150af5761036052610360905051610300525b60066060511861385557604051600981116150af5760051b6080015163fc0c546a610320526020610320600461033c845afa613832573d600060003e3d6000fd5b60203d106150af57610320518060a01c6150af5761036052610360905051610300525b6103005163313ce567610320526020610320600461033c845afa61387e573d600060003e3d6000fd5b60203d106150af57610320905051604d81116150af5780600a0a905080156150af5780670de0b6b3a7640000049050815250565b6000600354600281116150af57801561394157905b8060011b600401805460605260018101546080525060805160605163510d98a460a05260405160c052602060a0602460bc845afa61390a573d600060003e3d6000fd5b60203d106150af5760a0518060a01c6150af5760e05260e09050511861393657600a8352505050613958565b6001018181186138c7575b505060016040516020526000526040600020548152505b565b61028036610d40376000600a905b80610fc052610b6051610fc0511061397f57613b22565b60006109e051602052600052604060002054613a50576109e05163c6610657610fe052610fc051611000526020610fe06024610ffc845afa6139c6573d600060003e3d6000fd5b60203d106150af57610fe0518060a01c6150af5761102052611020905051610fc051600981116150af5760051b610d4001526109e051634903b0d1610fe052610fc051611000526020610fe06024610ffc845afa613a29573d600060003e3d6000fd5b60203d106150af57610fe0905051610fc051600981116150af5760051b610e800152613b17565b6109e0516323746eb8610fe052610fc05180607f1c6150af57611000526020610fe06024610ffc845afa613a89573d600060003e3d6000fd5b60203d106150af57610fe0518060a01c6150af5761102052611020905051610fc051600981116150af5760051b610d4001526109e05163065a80d8610fe052610fc05180607f1c6150af57611000526020610fe06024610ffc845afa613af4573d600060003e3d6000fd5b60203d106150af57610fe0905051610fc051600981116150af5760051b610e8001525b600101818118613968575b5050610e8051610fc052610ea051610fe052610ec05161100052610ee05161102052610f005161104052610f205161106052610f405161108052610f60516110a052610f80516110c052610fa0516110e052610a00516318160ddd611120526020611120600461113c845afa613b9d573d600060003e3d6000fd5b60203d106150af576111209050516111005261014036611120376109e05161058052610b80516105a052610d40516105c052610d60516105e052610d805161060052610da05161062052610dc05161064052610de05161066052610e005161068052610e20516106a052610e40516106c052610e60516106e052610b605161070052610ba05161072052610bc05161074052610be05161076052610c005161078052610c20516107a052610c40516107c052610c60516107e052610c805161080052610ca05161082052610cc05161084052610ce05161086052613c826113a0611ea2565b6113a080516112605260208101516112805260408101516112a05260608101516112c05260808101516112e05260a08101516113005260c08101516113205260e0810151611340526101008101516113605261012081015161138052506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610e80516105a052610ea0516105c052610ec0516105e052610ee05161060052610f005161062052610f205161064052610f405161066052610f605161068052610f80516106a052610fa0516106c052610b60516106e052613d9a6113c0613307565b6113c0516113a052610a20516113c052610a40516113e052610a605161140052610a805161142052610aa05161144052610ac05161146052610ae05161148052610b00516114a052610b20516114c052610b40516114e052610d205115613fae57610b8051604052610d4051606052610d6051608052610d805160a052610da05160c052610dc05160e052610de05161010052610e005161012052610e205161014052610e405161016052610e605161018052610a20516101a052610a40516101c052610a60516101e052610a805161020052610aa05161022052610ac05161024052610ae05161026052610b005161028052610b20516102a052610b40516102c052611260516102e05261128051610300526112a051610320526112c051610340526112e051610360526113005161038052611320516103a052611340516103c052611360516103e0526113805161040052610ba05161042052610bc05161044052610be05161046052610c005161048052610c20516104a052610c40516104c052610c60516104e052610c805161050052610ca05161052052610cc05161054052610b605161056052613f5061150061348f565b61150080516113c05260208101516113e05260408101516114005260608101516114205260808101516114405260a08101516114605260c08101516114805260e08101516114a0526101008101516114c0526101208101516114e052505b6000600a905b8061150052610b60516115005110613fcb57614058565b610d00516140125761150051600981116150af5760051b610fc001805161150051600981116150af5760051b6113c001518082038281116150af579050905081525061404d565b61150051600981116150af5760051b610fc001805161150051600981116150af5760051b6113c001518082018281106150af57905090508152505b600101818118613fb4575b50506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610fc0516105a052610fe0516105c052611000516105e05261102051610600526110405161062052611060516106405261108051610660526110a051610680526110c0516106a0526110e0516106c052610b60516106e052614115611520613307565b6115205161150052611500516115205261110051156143eb576113a051611500518082018281106150af5790509050610b605180156150af5780820490509050611540526000600a905b8061156052610b6051611560511061417657614325565b6115005161156051600981116150af5760051b610e8001518082028115838383041417156150af57905090506113a05180156150af57808204905090506115805260006115a05261156051600981116150af5760051b610fc0015161158051116142095761156051600981116150af5760051b610fc00151611580518082038281116150af57905090506115a052614234565b6115805161156051600981116150af5760051b610fc001518082038281116150af57905090506115a0525b61156051600981116150af5760051b610e80015161156051600981116150af5760051b610fc001518082018281106150af57905090506115c0526109e05160e052610b805161010052610b60516101205261154051610140526115c051610160526000610180526142a66115e0612aac565b6115e0516115a0518082028115838383041417156150af57905090506402540be4008104905061156051600981116150af5760051b611120015261156051600981116150af5760051b610fc001805161156051600981116150af5760051b61112001518082038281116150af579050905081525060010181811861415f575b50506109e05161044052611260516104605261128051610480526112a0516104a0526112c0516104c0526112e0516104e05261130051610500526113205161052052611340516105405261136051610560526113805161058052610fc0516105a052610fe0516105c052611000516105e05261102051610600526110405161062052611060516106405261108051610660526110a051610680526110c0516106a0526110e0516106c052610b60516106e0526143e2611560613307565b61156051611520525b611100516143ff5761150051815250614478565b600061154052610d005161442c576113a051611520518082038281116150af579050905061154052614447565b611520516113a0518082038281116150af5790509050611540525b61110051611540518082028115838383041417156150af57905090506113a05180156150af57808204905090508152505b565b61028036610c00376000600a905b80610e8052610a405180607f1c6150af57610e8051126144a75761464a565b60006109c051602052600052604060002054614588576109c05163c6610657610ea052610e8051600081126150af57610ec0526020610ea06024610ebc845afa6144f6573d600060003e3d6000fd5b60203d106150af57610ea0518060a01c6150af57610ee052610ee0905051610e8051600981116150af5760051b610c0001526109c051634903b0d1610ea052610e8051600081126150af57610ec0526020610ea06024610ebc845afa614561573d600060003e3d6000fd5b60203d106150af57610ea0905051610e8051600981116150af5760051b610d40015261463f565b6109c0516323746eb8610ea052610e8051610ec0526020610ea06024610ebc845afa6145b9573d600060003e3d6000fd5b60203d106150af57610ea0518060a01c6150af57610ee052610ee0905051610e8051600981116150af5760051b610c0001526109c05163065a80d8610ea052610e8051610ec0526020610ea06024610ebc845afa61461c573d600060003e3d6000fd5b60203d106150af57610ea0905051610e8051600981116150af5760051b610d4001525b600101818118614488575b50506109c05161058052610a60516105a052610c00516105c052610c20516105e052610c405161060052610c605161062052610c805161064052610ca05161066052610cc05161068052610ce0516106a052610d00516106c052610d20516106e052610a405161070052610a805161072052610aa05161074052610ac05161076052610ae05161078052610b00516107a052610b20516107c052610b40516107e052610b605161080052610b805161082052610ba05161084052610bc05161086052614717610fc0611ea2565b610fc08051610e80526020810151610ea0526040810151610ec0526060810151610ee0526080810151610f005260a0810151610f205260c0810151610f405260e0810151610f6052610100810151610f8052610120810151610fa05250610e8051604052610ea051606052610ec051608052610ee05160a052610f005160c052610f205160e052610f405161010052610f605161012052610f805161014052610fa05161016052610d405161018052610d60516101a052610d80516101c052610da0516101e052610dc05161020052610de05161022052610e005161024052610e205161026052610e405161028052610e60516102a052610a40516102c052614821611100612bbf565b6111008051610fc0526020810151610fe05260408101516110005260608101516110205260808101516110405260a08101516110605260c08101516110805260e08101516110a0526101008101516110c0526101208101516110e05250600061110052610be0516148f057610a0051600981116150af5760051b610fc00151610a2051610a0051600981116150af5760051b610e8001518082028115838383041417156150af5790509050670de0b6b3a7640000810490508082038281116150af5790509050611100526149e8565b610a0051600981116150af5760051b610fc00151610a2051610a0051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e0526149bd61112061374b565b611120518082028115838383041417156150af57905090508082038281116150af5790509050611100525b6109c0516102a0526109e0516102c052610a00516102e0526111005161030052610fc05161032052610fe0516103405261100051610360526110205161038052611040516103a052611060516103c052611080516103e0526110a051610400526110c051610420526110e05161044052610a405161046052614a6b611140612f7d565b61114051611120526109c05160e052610a605161010052610a4051610120526109e051600981116150af5760051b610fc00151611120518082018281106150af57905090508060011c905061014052610a0051600981116150af5760051b610fc00151611100518082018281106150af57905090508060011c905061016052600161018052614afb611160612aac565b6111605161114052610be051614bae57610a0051600981116150af5760051b610fc00151610a20516402540be4008102816402540be4008204186150af57905061114051806402540be400036402540be40081116150af57905080156150af5780820490509050610a0051600981116150af5760051b610e8001518082028115838383041417156150af5790509050670de0b6b3a7640000810490508082038281116150af579050905061110052614ce5565b610a0051600981116150af5760051b610fc00151610a20516402540be4008102816402540be4008204186150af57905061114051806402540be400036402540be40081116150af57905080156150af5780820490509050610a0051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e052614cba61116061374b565b611160518082028115838383041417156150af57905090508082038281116150af5790509050611100525b6109c0516102a0526109e0516102c052610a00516102e0526111005161030052610fc05161032052610fe0516103405261100051610360526110205161038052611040516103a052611060516103c052611080516103e0526110a051610400526110c051610420526110e05161044052610a405161046052614d68611160612f7d565b6111605161112052611120516109e051600981116150af5760051b610fc001518082038281116150af5790509050670de0b6b3a7640000810281670de0b6b3a76400008204186150af5790506109e051600981116150af5760051b610e80015180156150af578082049050905061116052610be05115614ed357611120516109e051600981116150af5760051b610fc001518082038281116150af57905090506109e051604052610a6051606052610c0051608052610c205160a052610c405160c052610c605160e052610c805161010052610ca05161012052610cc05161014052610ce05161016052610d005161018052610d20516101a052610a80516101c052610aa0516101e052610ac05161020052610ae05161022052610b005161024052610b205161026052610b405161028052610b60516102a052610b80516102c052610ba0516102e052614ebd61118061374b565b6111805180156150af5780820490509050611160525b61116051815250565b61124051604052614eee6113006138b2565b61130051614f5157611240516109c052611260516109e05261128051610a00526112a051610a20526112c051610a40526001610a605261014036610a80376112e051610bc0526000610be052614f4561132061447a565b611320518152506150ad565b6112405161134052611260516113605261128051611380526112a0516113a0526112c0516113c05261124051604052614f8b6113006138b2565b611300516113e052600261124051602052600052604060002080546114005260018101546114205260028101546114405260038101546114605260048101546114805260058101546114a05260068101546114c05260078101546114e052600881015461150052600981015461152052506112e05161154052600061156052611340516109c052611360516109e05261138051610a00526113a051610a20526113c051610a40526113e051610a605261140051610a805261142051610aa05261144051610ac05261146051610ae05261148051610b00526114a051610b20526114c051610b40526114e051610b605261150051610b805261152051610ba05261154051610bc05261156051610be0526150a561132061447a565b611320518152505b565b600080fda165767970657283000309000b
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a00000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _use_int128 (address[20]): 0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000
Arg [1] : _pool_type_addresses (address[20]): 0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000
Arg [2] : _pool_types (uint8[20]): 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Arg [3] : _use_rate (bool[10][20]): System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean],System.Collections.Generic.List`1[System.Boolean]
Arg [4] : _stored_rates_implementations (tuple[]):
-----Encoded View---------------
262 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [26] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [33] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [34] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [35] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [42] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [43] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [44] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [45] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [46] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [47] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [48] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [49] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [50] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [51] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [52] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [53] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [54] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [55] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [56] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [57] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [58] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [59] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [60] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [61] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [62] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [63] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [64] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [65] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [66] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [67] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [68] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [69] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [70] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [71] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [72] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [73] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [74] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [75] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [76] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [77] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [78] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [79] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [80] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [81] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [82] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [83] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [84] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [85] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [86] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [87] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [88] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [89] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [90] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [91] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [92] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [93] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [94] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [95] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [96] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [97] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [98] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [99] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [100] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [101] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [102] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [103] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [104] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [105] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [106] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [107] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [108] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [109] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [110] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [111] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [112] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [113] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [114] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [115] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [116] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [117] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [118] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [119] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [120] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [121] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [122] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [123] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [124] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [125] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [126] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [127] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [128] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [129] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [130] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [131] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [132] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [133] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [134] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [135] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [136] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [137] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [138] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [139] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [140] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [141] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [142] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [143] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [144] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [145] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [146] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [147] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [148] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [149] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [150] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [151] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [152] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [153] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [154] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [155] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [156] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [157] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [158] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [159] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [160] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [161] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [162] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [163] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [164] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [165] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [166] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [167] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [168] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [169] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [170] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [171] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [172] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [173] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [174] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [175] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [176] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [177] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [178] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [179] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [180] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [181] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [182] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [183] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [184] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [185] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [186] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [187] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [188] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [189] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [190] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [191] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [192] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [193] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [194] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [195] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [196] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [197] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [198] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [199] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [200] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [201] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [202] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [203] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [204] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [205] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [206] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [207] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [208] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [209] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [210] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [211] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [212] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [213] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [214] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [215] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [216] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [217] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [218] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [219] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [220] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [221] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [222] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [223] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [224] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [225] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [226] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [227] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [228] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [229] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [230] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [231] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [232] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [233] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [234] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [235] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [236] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [237] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [238] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [239] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [240] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [241] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [242] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [243] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [244] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [245] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [246] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [247] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [248] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [249] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [250] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [251] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [252] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [253] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [254] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [255] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [256] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [257] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [258] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [259] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [260] : 00000000000000000000000000000000000000000000000000000000000020a0
Arg [261] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.