Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 25 from a total of 28 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Create New Vault... | 8374625 | 720 days ago | IN | 0 ETH | 0.00010151 | ||||
| Create New Vault... | 6357103 | 766 days ago | IN | 0 ETH | 0.00019807 | ||||
| Create New Vault... | 6357097 | 766 days ago | IN | 0 ETH | 0.000259 | ||||
| Set Owner | 4308443 | 814 days ago | IN | 0 ETH | 0.0000277 | ||||
| Create New Vault... | 3804742 | 826 days ago | IN | 0 ETH | 0.0002852 | ||||
| Create New Vault... | 3804738 | 826 days ago | IN | 0 ETH | 0.00026592 | ||||
| Create New Vault... | 3804581 | 826 days ago | IN | 0 ETH | 0.00024997 | ||||
| Create New Vault... | 3404350 | 835 days ago | IN | 0 ETH | 0.00060273 | ||||
| Create New Vault... | 3404346 | 835 days ago | IN | 0 ETH | 0.00055629 | ||||
| Create New Vault... | 3404324 | 835 days ago | IN | 0 ETH | 0.00065252 | ||||
| Create New Vault... | 3404321 | 835 days ago | IN | 0 ETH | 0.00073313 | ||||
| Create New Vault... | 3404318 | 835 days ago | IN | 0 ETH | 0.00075817 | ||||
| Create New Vault... | 3404314 | 835 days ago | IN | 0 ETH | 0.00079136 | ||||
| Create New Vault... | 3404309 | 835 days ago | IN | 0 ETH | 0.00063792 | ||||
| Create New Vault... | 3359680 | 836 days ago | IN | 0 ETH | 0.00068779 | ||||
| Create New Vault... | 3359670 | 836 days ago | IN | 0 ETH | 0.0006205 | ||||
| Create New Vault... | 3359661 | 836 days ago | IN | 0 ETH | 0.000723 | ||||
| Create New Vault... | 3359651 | 836 days ago | IN | 0 ETH | 0.00064377 | ||||
| Create New Vault... | 3359642 | 836 days ago | IN | 0 ETH | 0.00062113 | ||||
| Create New Vault... | 3359621 | 836 days ago | IN | 0 ETH | 0.00064402 | ||||
| Create New Vault... | 3359612 | 836 days ago | IN | 0 ETH | 0.00060494 | ||||
| Create New Vault... | 3359602 | 836 days ago | IN | 0 ETH | 0.00064912 | ||||
| Create New Vault... | 3359587 | 836 days ago | IN | 0 ETH | 0.00054725 | ||||
| Create New Vault... | 3359526 | 836 days ago | IN | 0 ETH | 0.00057065 | ||||
| Create New Vault... | 3359488 | 836 days ago | IN | 0 ETH | 0.00057682 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VelodromeGlobal
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.15;
enum VaultType {
LEGACY,
DEFAULT,
AUTOMATED
}
interface IDetails {
// get details from velo pool
function name() external view returns (string memory);
function symbol() external view returns (string memory);
}
interface IRegistry {
function newVault(
address _token,
address _governance,
address _guardian,
address _rewards,
string calldata _name,
string calldata _symbol,
uint256 _releaseDelta,
uint256 _type
) external returns (address);
function latestVaultOfType(
address token,
uint256 _type
) external view returns (address);
}
interface IVelodromeGauge {
function stakingToken() external view returns (address);
}
interface IVelodromeVoter {
function isGauge(address) external view returns (bool);
}
interface IVelodromeRouter {
struct Routes {
address from;
address to;
bool stable;
address factory;
}
}
interface IStrategy {
function cloneStrategyVelodrome(
address _vault,
address _strategist,
address _rewards,
address _keeper,
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1
) external returns (address newStrategy);
function setLocalKeepVelo(uint256 _keepVelo) external;
function setHealthCheck(address) external;
function setBaseFeeOracle(address) external;
function setVoter(address) external;
}
interface Vault {
function setGovernance(address) external;
function setManagement(address) external;
function managementFee() external view returns (uint256);
function setManagementFee(uint256) external;
function performanceFee() external view returns (uint256);
function setPerformanceFee(uint256) external;
function setDepositLimit(uint256) external;
function addStrategy(address, uint256, uint256, uint256, uint256) external;
}
contract VelodromeGlobal {
event NewAutomatedVault(
uint256 indexed category,
address indexed lpToken,
address gauge,
address indexed vault,
address velodromeStrategy
);
/* ========== STATE VARIABLES ========== */
/// @notice This is a list of all vaults deployed by this factory.
address[] public deployedVaults;
/// @notice This is specific to the protocol we are deploying automated vaults for.
/// @dev 0 for curve, 1 for balancer/beethoven, 2 for velodrome (on optimism). This is a subcategory within our vault type AUTOMATED on the registry.
uint256 public constant CATEGORY = 2;
/// @notice Owner of the factory.
address public owner;
// @notice Pending owner of the factory.
/// @dev Must accept before becoming owner.
address public pendingOwner;
/// @notice Yearn's vault registry address.
IRegistry public registry;
/// @notice Address to use for vault governance.
address public governance = 0xbfAABa9F56A39B814281D68d2Ad949e88D06b02E;
/// @notice Address to use for vault management.
address public management = 0x01fE3347316b2223961B20689C65eaeA71348e93;
/// @notice Address to use for vault guardian.
address public guardian = 0x01fE3347316b2223961B20689C65eaeA71348e93;
/// @notice Address to use for vault and strategy rewards.
address public treasury = 0x02ff746D8cb62709aEEc611CeC9B17d7dD1D3480;
/// @notice Address to use for strategy keepers.
address public keeper = 0xC6387E937Bcef8De3334f80EDC623275d42457ff;
/// @notice Address to use for strategy health check.
address public healthCheck = 0x8273217252254Ad7353f227aaEcd2b1C4A326Fa2;
/// @notice Address to use for our network's base fee oracle.
address public baseFeeOracle = 0x298Bd23E25C01440D68d4D2708bFf6A7E10a1db5;
/// @notice Address of our Velodrome strategy implementation.
address public velodromeStratImplementation;
/// @notice The percentage of VELO we re-lock to vote for pools factories LP. Default is 0%.
uint256 public keepVELO;
/// @notice The address of our Velodrome voter. This is where we send any keepVELO.
address public veloVoter = 0x4444AAAACDBa5580282365e25b16309Bd770ce4a;
/// @notice Minimum profit size in USDC that we want to harvest.
uint256 public harvestProfitMinInUsdc = 1_000 * 1e6;
/// @notice Maximum profit size in USDC that we want to harvest (ignore gas price once we get here).
uint256 public harvestProfitMaxInUsdc = 100_000 * 1e6;
/// @notice Default performance fee for our factory vaults (in basis points).
uint256 public performanceFee = 1_000;
/// @notice Default management fee for our factory vaults (in basis points).
uint256 public managementFee = 0;
/// @notice Default deposit limit on our factory vaults. Set to a large number.
uint256 public depositLimit = 10_000_000_000_000 * 1e18;
/* ========== CONSTRUCTOR ========== */
constructor(
address _registry,
address _velodromeStratImplementation,
address _owner
) {
registry = IRegistry(_registry);
velodromeStratImplementation = _velodromeStratImplementation;
owner = _owner;
pendingOwner = _owner;
}
/* ========== STATE VARIABLE SETTERS ========== */
/// @notice Set the new owner of the factory.
/// @dev Must be called by current owner.
/// New owner will have to accept before transition is complete.
/// @param newOwner Address of new owner.
function setOwner(address newOwner) external {
if (msg.sender != owner) {
revert();
}
pendingOwner = newOwner;
}
/// @notice Accept ownership of the factory.
/// @dev Must be called by pending owner.
function acceptOwner() external {
if (msg.sender != pendingOwner) {
revert();
}
owner = pendingOwner;
}
/// @notice Set the yearn vault registry address for the factory.
/// @dev Must be called by owner.
/// @param _registry Address of yearn vault registry.
function setRegistry(address _registry) external {
if (msg.sender != owner) {
revert();
}
registry = IRegistry(_registry);
}
/// @notice Set the vault governance address for the factory.
/// @dev Must be called by owner.
/// @param _governance Address of default vault governance.
function setGovernance(address _governance) external {
if (msg.sender != owner) {
revert();
}
governance = _governance;
}
/// @notice Set the vault management address for the factory.
/// @dev Must be called by owner.
/// @param _management Address of default vault management.
function setManagement(address _management) external {
if (msg.sender != owner) {
revert();
}
management = _management;
}
/// @notice Set the vault guardian address for the factory.
/// @dev Must be called by owner.
/// @param _guardian Address of default vault guardian.
function setGuardian(address _guardian) external {
if (msg.sender != owner) {
revert();
}
guardian = _guardian;
}
/// @notice Set the vault treasury/rewards address for the factory.
/// @dev Must be called by owner. Vault rewards will flow here.
/// @param _treasury Address of default vault rewards.
function setTreasury(address _treasury) external {
if (msg.sender != owner) {
revert();
}
treasury = _treasury;
}
/// @notice Set the vault keeper address for the factory.
/// @dev Must be called by owner or management.
/// @param _keeper Address of default vault keeper.
function setKeeper(address _keeper) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
keeper = _keeper;
}
/// @notice Set the vault health check address for the factory.
/// @dev Must be called by owner or management. Health check contracts
/// ensure that harvest profits are within expected limits before executing.
/// @param _health Address of default health check contract.
function setHealthcheck(address _health) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
healthCheck = _health;
}
/// @notice Set the strategy base fee oracle address for the factory.
/// @dev Must be called by owner or management. Oracle passes current network base
/// fee so strategy can avoid harvesting during periods of network congestion.
/// @param _baseFeeOracle Address of default base fee oracle for strategies.
function setBaseFeeOracle(address _baseFeeOracle) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
baseFeeOracle = _baseFeeOracle;
}
/// @notice Set the vault deposit limit for the factory.
/// @dev Must be called by owner or management.
/// @param _depositLimit Default deposit limit for vaults created by factory.
function setDepositLimit(uint256 _depositLimit) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
depositLimit = _depositLimit;
}
/// @notice Set the Velodrome strategy implementation address.
/// @dev Must be called by owner.
/// @param _velodrometratImplementation Address of latest Velodrome strategy implementation.
function setVelodromeStratImplementation(
address _velodrometratImplementation
) external {
if (msg.sender != owner) {
revert();
}
velodromeStratImplementation = _velodrometratImplementation;
}
/// @notice Direct a specified percentage of CRV from every harvest to Yearn's CRV voter.
/// @dev Must be called by owner.
/// @param _keepVELO The percentage of CRV from each harvest that we send to our voter (out of 10,000).
/// @param _veloVoter The address of our Velo voter. This is where we send any keepVELO.
function setKeepVELO(uint256 _keepVELO, address _veloVoter) external {
if (msg.sender != owner) {
revert();
}
if (_keepVELO > 10_000) {
revert();
}
// since we use the voter to pull our strategyProxy, can't be zero address
if (_veloVoter == address(0)) {
revert();
}
keepVELO = _keepVELO;
veloVoter = _veloVoter;
}
/// @notice Set the minimum amount of USDC profit required to harvest.
/// @dev harvestTrigger will show true once we reach this amount of profit and gas price is acceptable.
/// Must be called by owner or management.
/// @param _harvestProfitMinInUsdc Amount of USDC needed (6 decimals).
function setHarvestProfitMinInUsdc(
uint256 _harvestProfitMinInUsdc
) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
harvestProfitMinInUsdc = _harvestProfitMinInUsdc;
}
/// @notice Set the amount of USDC profit that will force a harvest.
/// @dev harvestTrigger will show true once we reach this amount of profit no matter the gas price.
/// Must be called by owner or management.
/// @param _harvestProfitMaxInUsdc Amount of USDC needed (6 decimals).
function setHarvestProfitMaxInUsdc(
uint256 _harvestProfitMaxInUsdc
) external {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
harvestProfitMaxInUsdc = _harvestProfitMaxInUsdc;
}
/// @notice Set the performance fee (percentage of profit) deducted from each harvest.
/// @dev Must be called by owner. Fees are collected as minted vault shares.
/// Default amount is 10%.
/// @param _performanceFee The percentage of profit from each harvest that is sent to treasury (out of 10,000).
function setPerformanceFee(uint256 _performanceFee) external {
if (msg.sender != owner) {
revert();
}
if (_performanceFee > 5_000) {
revert();
}
performanceFee = _performanceFee;
}
/// @notice Set the management fee (as a percentage of TVL) assessed on factory vaults.
/// @dev Must be called by owner. Fees are collected as minted vault shares on each harvest.
/// Default amount is 0%.
/// @param _managementFee The percentage fee assessed on TVL (out of 10,000).
function setManagementFee(uint256 _managementFee) external {
if (msg.sender != owner) {
revert();
}
if (_managementFee > 1_000) {
revert();
}
managementFee = _managementFee;
}
/* ========== VIEWS ========== */
/// @notice View all vault addresses deployed by this factory.
/// @return Array of all deployed factory vault addresses.
function allDeployedVaults() external view returns (address[] memory) {
return deployedVaults;
}
/// @notice Number of vaults deployed by this factory.
/// @return Number of vaults deployed by this factory.
function numVaults() external view returns (uint256) {
return deployedVaults.length;
}
/// @notice Check whether, for a given gauge address, it is possible to permissionlessly
/// create a vault for corresponding LP token.
/// @param _gauge The gauge address to check.
/// @return Whether or not vault can be created permissionlessly.
function canCreateVaultPermissionlessly(
address _gauge
) public view returns (bool) {
return latestStandardVaultFromGauge(_gauge) == address(0);
}
/// @notice Check for the latest vault address for any LEGACY/DEFAULT/AUTOMATED type vaults.
/// If no vault of either LEGACY, DEFAULT, or AUTOMATED types exists for this gauge, 0x0 is returned from registry.
/// @param _gauge The gauge to use to check for any existing vaults.
/// @return The latest standard vault address for the specified gauge.
function latestStandardVaultFromGauge(
address _gauge
) public view returns (address) {
// make sure that our address is a gauge attached to the correct voter
IVelodromeVoter voter = IVelodromeVoter(
0x41C914ee0c7E1A5edCD0295623e6dC557B5aBf3C
);
if (!voter.isGauge(_gauge)) {
revert("not a v2 gauge");
}
// grab our lp token from our gauge
address lptoken = IVelodromeGauge(_gauge).stakingToken();
address latest;
// we only care about types 0-2 here, so enforce that
for (uint256 i; i < 3; ++i) {
latest = registry.latestVaultOfType(lptoken, i);
if (latest != address(0)) {
break;
}
}
return latest;
}
/* ========== CORE FUNCTIONS ========== */
/// @notice Deploy a factory Curve vault for a given Curve gauge.
/// @dev Permissioned users may set custom name and symbol or deploy if a legacy version already exists.
/// Must be called by owner or management.
/// @param _gauge Address of the Curve gauge to deploy a new vault for.
/// @param _name Name of the new vault.
/// @param _symbol Symbol of the new vault token.
/// @return vault Address of the new vault.
/// @return velodromeStrategy Address of the vault's Curve boosted strategy.
function createNewVaultsAndStrategiesPermissioned(
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1,
string memory _name,
string memory _symbol
) external returns (address vault, address velodromeStrategy) {
if (!(msg.sender == owner || msg.sender == management)) {
revert();
}
return
_createNewVaultsAndStrategies(
_gauge,
_velodromeSwapRouteForToken0,
_velodromeSwapRouteForToken1,
true,
_name,
_symbol
);
}
/// @notice Deploy a factory Curve vault for a given Curve gauge permissionlessly.
/// @dev This may be called by anyone. Note that if a vault already exists for the given gauge,
/// then this call will revert.
/// @param _gauge Address of the Curve gauge to deploy a new vault for.
/// @return vault Address of the new vault.
/// @return velodromeStrategy Address of the vault's Curve boosted strategy.
function createNewVaultsAndStrategies(
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1
) external returns (address vault, address velodromeStrategy) {
return
_createNewVaultsAndStrategies(
_gauge,
_velodromeSwapRouteForToken0,
_velodromeSwapRouteForToken1,
false,
"default",
"default"
);
}
// create a new vault along with strategies to match
function _createNewVaultsAndStrategies(
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1,
bool _permissionedUser,
string memory _name,
string memory _symbol
) internal returns (address vault, address velodromeStrategy) {
// if a legacy vault already exists, only permissioned users can deploy another
if (!_permissionedUser) {
require(
canCreateVaultPermissionlessly(_gauge),
"Vault already exists"
);
}
// get our lpToken from our gauge
address lptoken = IVelodromeGauge(_gauge).stakingToken();
if (_permissionedUser) {
// allow trusted users to input the name and symbol or deploy a factory version of a legacy vault
vault = _createCustomVault(lptoken, _name, _symbol);
} else {
// anyone can create a vault, but it will have an auto-generated name and symbol
vault = _createStandardVault(lptoken);
}
// setup our fees, deposit limit, gov, etc
_setupVaultParams(vault);
// setup our strategies as needed
velodromeStrategy = _setupStrategies(
vault,
_gauge,
_velodromeSwapRouteForToken0,
_velodromeSwapRouteForToken1
);
emit NewAutomatedVault(
CATEGORY,
lptoken,
_gauge,
vault,
velodromeStrategy
);
}
// permissioned users may pass custom name and symbol inputs
function _createCustomVault(
address lptoken,
string memory _name,
string memory _symbol
) internal returns (address vault) {
vault = registry.newVault(
lptoken,
address(this),
guardian,
treasury,
_name,
_symbol,
0,
uint256(VaultType.AUTOMATED)
);
}
// standard vaults create default name and symbols using on-chain data
function _createStandardVault(
address lptoken
) internal returns (address vault) {
vault = registry.newVault(
lptoken,
address(this),
guardian,
treasury,
string(
abi.encodePacked(
"Velodrome ",
IDetails(address(lptoken)).symbol(),
" Factory yVault"
)
),
string(
abi.encodePacked(
"yvVelo-",
IDetails(address(lptoken)).symbol(),
"-f"
)
),
0,
uint256(VaultType.AUTOMATED)
);
}
// set vault management, gov, deposit limit, and fees
function _setupVaultParams(address _vault) internal {
// record our new vault for posterity
deployedVaults.push(_vault);
Vault v = Vault(_vault);
v.setManagement(management);
// set governance to ychad who needs to accept before it is finalised. until then governance is this factory
v.setGovernance(governance);
v.setDepositLimit(depositLimit);
if (v.managementFee() != managementFee) {
v.setManagementFee(managementFee);
}
if (v.performanceFee() != performanceFee) {
v.setPerformanceFee(performanceFee);
}
}
// time to attach our strategies to the vault
function _setupStrategies(
address _vault,
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1
) internal returns (address velodromeStrategy) {
// velodrome only has one strategy
velodromeStrategy = _addVelodromeStrategy(
_vault,
_gauge,
_velodromeSwapRouteForToken0,
_velodromeSwapRouteForToken1
);
}
// deploy and attach a new curve boosted strategy using our factory's existing implementation
function _addVelodromeStrategy(
address _vault,
address _gauge,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken0,
IVelodromeRouter.Routes[] memory _velodromeSwapRouteForToken1
) internal returns (address velodromeStrategy) {
// create the velodrome strategy
velodromeStrategy = IStrategy(velodromeStratImplementation)
.cloneStrategyVelodrome(
_vault,
management,
treasury,
keeper,
_gauge,
_velodromeSwapRouteForToken0,
_velodromeSwapRouteForToken1
);
// set up health check and the base fee oracle for our new strategy
IStrategy(velodromeStrategy).setHealthCheck(healthCheck);
IStrategy(velodromeStrategy).setBaseFeeOracle(baseFeeOracle);
// must set our voter, this is used to deposit
IStrategy(velodromeStrategy).setVoter(veloVoter);
// if we're keeping any tokens, then setup our keepVELO
if (keepVELO > 0) {
IStrategy(velodromeStrategy).setLocalKeepVelo(keepVELO);
}
// give it 100%
uint256 veloDebtRatio = 10_000;
Vault(_vault).addStrategy(
velodromeStrategy,
veloDebtRatio,
0,
type(uint256).max,
0
);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_velodromeStratImplementation","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"category","type":"uint256"},{"indexed":true,"internalType":"address","name":"lpToken","type":"address"},{"indexed":false,"internalType":"address","name":"gauge","type":"address"},{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":false,"internalType":"address","name":"velodromeStrategy","type":"address"}],"name":"NewAutomatedVault","type":"event"},{"inputs":[],"name":"CATEGORY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allDeployedVaults","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseFeeOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"canCreateVaultPermissionlessly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"address","name":"factory","type":"address"}],"internalType":"struct IVelodromeRouter.Routes[]","name":"_velodromeSwapRouteForToken0","type":"tuple[]"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"address","name":"factory","type":"address"}],"internalType":"struct IVelodromeRouter.Routes[]","name":"_velodromeSwapRouteForToken1","type":"tuple[]"}],"name":"createNewVaultsAndStrategies","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"velodromeStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"address","name":"factory","type":"address"}],"internalType":"struct IVelodromeRouter.Routes[]","name":"_velodromeSwapRouteForToken0","type":"tuple[]"},{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"address","name":"factory","type":"address"}],"internalType":"struct IVelodromeRouter.Routes[]","name":"_velodromeSwapRouteForToken1","type":"tuple[]"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"createNewVaultsAndStrategiesPermissioned","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"velodromeStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deployedVaults","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvestProfitMaxInUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvestProfitMinInUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"healthCheck","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keepVELO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keeper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"latestStandardVaultFromGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"management","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managementFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numVaults","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_baseFeeOracle","type":"address"}],"name":"setBaseFeeOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositLimit","type":"uint256"}],"name":"setDepositLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_guardian","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_harvestProfitMaxInUsdc","type":"uint256"}],"name":"setHarvestProfitMaxInUsdc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_harvestProfitMinInUsdc","type":"uint256"}],"name":"setHarvestProfitMinInUsdc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_health","type":"address"}],"name":"setHealthcheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_keepVELO","type":"uint256"},{"internalType":"address","name":"_veloVoter","type":"address"}],"name":"setKeepVELO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_keeper","type":"address"}],"name":"setKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_management","type":"address"}],"name":"setManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_managementFee","type":"uint256"}],"name":"setManagementFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_performanceFee","type":"uint256"}],"name":"setPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_velodrometratImplementation","type":"address"}],"name":"setVelodromeStratImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"veloVoter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"velodromeStratImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
6080604052600480546001600160a01b031990811673bfaaba9f56a39b814281d68d2ad949e88d06b02e179091556005805482167301fe3347316b2223961b20689c65eaea71348e9390811790915560068054831690911790556007805482167302ff746d8cb62709aeec611cec9b17d7dd1d348017905560088054821673c6387e937bcef8de3334f80edc623275d42457ff179055600980548216738273217252254ad7353f227aaecd2b1c4a326fa2179055600a8054821673298bd23e25c01440d68d4d2708bff6a7e10a1db5179055600d8054909116734444aaaacdba5580282365e25b16309bd770ce4a179055633b9aca00600e5564174876e800600f556103e860105560006011556c7e37be2022c0914b26800000006012553480156200012a57600080fd5b5060405162001f1b38038062001f1b8339810160408190526200014d91620001bb565b600380546001600160a01b03199081166001600160a01b0395861617909155600b80548216938516939093179092556001805483169190931690811790925560028054909116909117905562000205565b80516001600160a01b0381168114620001b657600080fd5b919050565b600080600060608486031215620001d157600080fd5b620001dc846200019e565b9250620001ec602085016200019e565b9150620001fc604085016200019e565b90509250925092565b611d0680620002156000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80638da5cb5b11610151578063d87ee142116100c3578063ef812d3a11610087578063ef812d3a14610539578063f0f442601461054c578063f9d09ab91461055f578063fa4e2df914610572578063fbb04a631461057b578063fe56e2321461058e57600080fd5b8063d87ee142146104ef578063e30c397814610502578063ea65c31d14610515578063ebbc496514610528578063ecf708581461053057600080fd5b8063ab033ea911610115578063ab033ea914610487578063aced16611461049a578063b252720b146104ad578063bdc8144b146104c0578063d4a22bde146104d3578063d842f2a7146104e657600080fd5b80638da5cb5b1461043257806398c6dd01146104455780639f450b5a14610458578063a6f7f5d61461046b578063a91ee0dc1461047457600080fd5b80635cf6d5ad116101ea5780637b103999116101ae5780637b103999146103d55780637c510eb4146103e8578063826cddf6146103f0578063877887821461040357806388a8d6021461040c5780638a0dac4a1461041f57600080fd5b80635cf6d5ad1461035657806361d027b31461036957806361e5cc9a1461037c57806370897b23146103af578063748747e6146103c257600080fd5b8063264a620811610231578063264a6208146102f05780632eddc153146102f8578063383349851461031b578063452a9320146103305780635aa6e6751461034357600080fd5b8063090c49221461026e5780630ac214df1461028a5780630fa53ec0146102b557806313af4035146102ca57806314b98039146102dd575b600080fd5b610277600e5481565b6040519081526020015b60405180910390f35b61029d6102983660046115fa565b6105a1565b6040516001600160a01b039091168152602001610281565b6102c86102c33660046115fa565b6105cb565b005b6102c86102d836600461162b565b6105fc565b6102c86102eb36600461162b565b610635565b600054610277565b61030b61030636600461162b565b61066e565b6040519015158152602001610281565b61032361068a565b604051610281919061164f565b60065461029d906001600160a01b031681565b60045461029d906001600160a01b031681565b600d5461029d906001600160a01b031681565b60075461029d906001600160a01b031681565b61038f61038a3660046117f6565b6106ec565b604080516001600160a01b03938416815292909116602083015201610281565b6102c86103bd3660046115fa565b610748565b6102c86103d036600461162b565b610773565b60035461029d906001600160a01b031681565b610277600281565b600a5461029d906001600160a01b031681565b61027760105481565b60055461029d906001600160a01b031681565b6102c861042d36600461162b565b6107c1565b60015461029d906001600160a01b031681565b61038f6104533660046118ea565b6107fa565b6102c861046636600461162b565b610848565b61027760115481565b6102c861048236600461162b565b610896565b6102c861049536600461162b565b6108cf565b60085461029d906001600160a01b031681565b60095461029d906001600160a01b031681565b6102c86104ce3660046115fa565b610908565b6102c86104e136600461162b565b610939565b610277600c5481565b6102c86104fd3660046119aa565b610972565b60025461029d906001600160a01b031681565b6102c861052336600461162b565b6109d2565b6102c8610a20565b61027760125481565b600b5461029d906001600160a01b031681565b6102c861055a36600461162b565b610a5b565b61029d61056d36600461162b565b610a94565b610277600f5481565b6102c86105893660046115fa565b610c68565b6102c861059c3660046115fa565b610c99565b600081815481106105b157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001546001600160a01b03163314806105ee57506005546001600160a01b031633145b6105f757600080fd5b600f55565b6001546001600160a01b0316331461061357600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461064c57600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60008061067a83610a94565b6001600160a01b03161492915050565b606060008054806020026020016040519081016040528092919081815260200182805480156106e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106c4575b5050505050905090565b60008061073c858585600060405180604001604052806007815260200166191959985d5b1d60ca1b81525060405180604001604052806007815260200166191959985d5b1d60ca1b815250610cc4565b91509150935093915050565b6001546001600160a01b0316331461075f57600080fd5b61138881111561076e57600080fd5b601055565b6001546001600160a01b031633148061079657506005546001600160a01b031633145b61079f57600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146107d857600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60015460009081906001600160a01b031633148061082257506005546001600160a01b031633145b61082b57600080fd5b61083a87878760018888610cc4565b915091509550959350505050565b6001546001600160a01b031633148061086b57506005546001600160a01b031633145b61087457600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146108ad57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146108e657600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633148061092b57506005546001600160a01b031633145b61093457600080fd5b601255565b6001546001600160a01b0316331461095057600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461098957600080fd5b61271082111561099857600080fd5b6001600160a01b0381166109ab57600080fd5b600c91909155600d80546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314806109f557506005546001600160a01b031633145b6109fe57600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610a3757600080fd5b600254600180546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610a7257600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60405163aa79979b60e01b81526001600160a01b03821660048201526000907341c914ee0c7e1a5edcd0295623e6dc557b5abf3c90819063aa79979b90602401602060405180830381865afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1591906119da565b610b575760405162461bcd60e51b815260206004820152600e60248201526d6e6f74206120763220676175676560901b60448201526064015b60405180910390fd5b6000836001600160a01b03166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbb91906119f7565b90506000805b6003811015610c5f576003546040516309de312f60e41b81526001600160a01b0385811660048301526024820184905290911690639de312f090604401602060405180830381865afa158015610c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3f91906119f7565b91506001600160a01b038216610c5f57610c5881611a14565b9050610bc1565b50949350505050565b6001546001600160a01b0316331480610c8b57506005546001600160a01b031633145b610c9457600080fd5b600e55565b6001546001600160a01b03163314610cb057600080fd5b6103e8811115610cbf57600080fd5b601155565b60008084610d1857610cd58861066e565b610d185760405162461bcd60e51b81526020600482015260146024820152735661756c7420616c72656164792065786973747360601b6044820152606401610b4e565b6000886001600160a01b03166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906119f7565b90508515610d9657610d8f818686610e14565b9250610da2565b610d9f81610ea8565b92505b610dab8361104f565b610db7838a8a8a611344565b604080516001600160a01b038c811682528084166020830152929450828616928416916002917fe81b974ef16ed1b36cb580c766c6e24301232357e63d3c5998acaf3ea64071be910160405180910390a450965096945050505050565b60035460065460075460405163092ea19b60e11b81526000936001600160a01b039081169363125d433693610e5d938a93309381169216908a908a908a90600290600401611a8b565b6020604051808303816000875af1158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea091906119f7565b949350505050565b600354600654600754604080516395d89b4160e01b815290516000946001600160a01b039081169463125d433694889430949284169391821692918616916395d89b41916004808201928c929091908290030181865afa158015610f10573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f389190810190611af4565b604051602001610f489190611b62565b604051602081830303815290604052886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190611af4565b604051602001610fcd9190611bad565b60408051808303601f19018152908290526001600160e01b031960e089901b168252611006969594939291600090600290600401611a8b565b6020604051808303816000875af1158015611025573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104991906119f7565b92915050565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b03838116918217909255600554604051636a5115ef60e11b815292166004830152829163d4a22bde90602401600060405180830381600087803b1580156110d757600080fd5b505af11580156110eb573d6000803e3d6000fd5b50506004805460405163ab033ea960e01b81526001600160a01b03918216928101929092528416925063ab033ea99150602401600060405180830381600087803b15801561113857600080fd5b505af115801561114c573d6000803e3d6000fd5b505060125460405163bdc8144b60e01b815260048101919091526001600160a01b038416925063bdc8144b9150602401600060405180830381600087803b15801561119657600080fd5b505af11580156111aa573d6000803e3d6000fd5b50505050601154816001600160a01b031663a6f7f5d66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112139190611be8565b1461127757601154604051637f2b711960e11b815260048101919091526001600160a01b0382169063fe56e23290602401600060405180830381600087803b15801561125e57600080fd5b505af1158015611272573d6000803e3d6000fd5b505050505b601054816001600160a01b031663877887826040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190611be8565b14611340576010546040516370897b2360e01b815260048101919091526001600160a01b038216906370897b2390602401600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b505050505b5050565b60006113528585858561135b565b95945050505050565b600b5460055460075460085460405163320afc2d60e01b81526000946001600160a01b039081169463320afc2d946113a8948c9492841693918216929116908b908b908b90600401611c6c565b6020604051808303816000875af11580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb91906119f7565b6009546040516311bc824560e01b81526001600160a01b0391821660048201529192508216906311bc824590602401600060405180830381600087803b15801561143457600080fd5b505af1158015611448573d6000803e3d6000fd5b5050600a54604051634fa285ad60e11b81526001600160a01b0391821660048201529084169250639f450b5a9150602401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050600d54604051634bc2a65760e01b81526001600160a01b0391821660048201529084169250634bc2a6579150602401600060405180830381600087803b1580156114f257600080fd5b505af1158015611506573d6000803e3d6000fd5b505050506000600c54111561157457600c546040516309a9b23f60e41b815260048101919091526001600160a01b03821690639a9b23f090602401600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505b604051630a5a713760e11b81526001600160a01b038281166004830152612710602483018190526000604484018190526000196064850152608484015291908716906314b4e26e9060a401600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b5050505050949350505050565b60006020828403121561160c57600080fd5b5035919050565b6001600160a01b038116811461162857600080fd5b50565b60006020828403121561163d57600080fd5b813561164881611613565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156116905783516001600160a01b03168352928401929184019160010161166b565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156116d5576116d561169c565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156117045761170461169c565b604052919050565b801515811461162857600080fd5b600082601f83011261172b57600080fd5b8135602067ffffffffffffffff8211156117475761174761169c565b611755818360051b016116db565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117eb57608081890312156117915760008081fd5b6117996116b2565b81356117a481611613565b8152818501356117b381611613565b818601526040828101356117c68161170c565b908201526060828101356117d981611613565b90820152835291830191608001611778565b509695505050505050565b60008060006060848603121561180b57600080fd5b833561181681611613565b9250602084013567ffffffffffffffff8082111561183357600080fd5b61183f8783880161171a565b9350604086013591508082111561185557600080fd5b506118628682870161171a565b9150509250925092565b600067ffffffffffffffff8211156118865761188661169c565b50601f01601f191660200190565b600082601f8301126118a557600080fd5b81356118b86118b38261186c565b6116db565b8181528460208386010111156118cd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561190257600080fd5b853561190d81611613565b9450602086013567ffffffffffffffff8082111561192a57600080fd5b61193689838a0161171a565b9550604088013591508082111561194c57600080fd5b61195889838a0161171a565b9450606088013591508082111561196e57600080fd5b61197a89838a01611894565b9350608088013591508082111561199057600080fd5b5061199d88828901611894565b9150509295509295909350565b600080604083850312156119bd57600080fd5b8235915060208301356119cf81611613565b809150509250929050565b6000602082840312156119ec57600080fd5b81516116488161170c565b600060208284031215611a0957600080fd5b815161164881611613565b600060018201611a3457634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b83811015611a56578181015183820152602001611a3e565b50506000910152565b60008151808452611a77816020860160208601611a3b565b601f01601f19169290920160200192915050565b6001600160a01b038981168252888116602083015287811660408301528616606082015261010060808201819052600090611ac883820188611a5f565b905082810360a0840152611adc8187611a5f565b60c0840195909552505060e001529695505050505050565b600060208284031215611b0657600080fd5b815167ffffffffffffffff811115611b1d57600080fd5b8201601f81018413611b2e57600080fd5b8051611b3c6118b38261186c565b818152856020838501011115611b5157600080fd5b611352826020830160208601611a3b565b6902b32b637b23937b6b2960b51b815260008251611b8781600a850160208701611a3b565b6e08119858dd1bdc9e481e55985d5b1d608a1b600a939091019283015250601901919050565b66797656656c6f2d60c81b815260008251611bcf816007850160208701611a3b565b6116b360f11b6007939091019283015250600901919050565b600060208284031215611bfa57600080fd5b5051919050565b600081518084526020808501945080840160005b83811015611c6157815180516001600160a01b039081168952848201518116858a01526040808301511515908a0152606091820151169088015260809096019590820190600101611c15565b509495945050505050565b6001600160a01b0388811682528781166020830152868116604083015285811660608301528416608082015260e060a08201819052600090611cb090830185611c01565b82810360c0840152611cc28185611c01565b9a995050505050505050505056fea2646970667358221220463b00566eaa1afe2457a9d003393d4cdc7d1c9e947dd500048624070e03b59564736f6c63430008110033000000000000000000000000f3885ede00171997bfadaa98e01e167b53a78ec500000000000000000000000021aaf096093422f60554f25fe993e44218733d68000000000000000000000000c6387e937bcef8de3334f80edc623275d42457ff
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102695760003560e01c80638da5cb5b11610151578063d87ee142116100c3578063ef812d3a11610087578063ef812d3a14610539578063f0f442601461054c578063f9d09ab91461055f578063fa4e2df914610572578063fbb04a631461057b578063fe56e2321461058e57600080fd5b8063d87ee142146104ef578063e30c397814610502578063ea65c31d14610515578063ebbc496514610528578063ecf708581461053057600080fd5b8063ab033ea911610115578063ab033ea914610487578063aced16611461049a578063b252720b146104ad578063bdc8144b146104c0578063d4a22bde146104d3578063d842f2a7146104e657600080fd5b80638da5cb5b1461043257806398c6dd01146104455780639f450b5a14610458578063a6f7f5d61461046b578063a91ee0dc1461047457600080fd5b80635cf6d5ad116101ea5780637b103999116101ae5780637b103999146103d55780637c510eb4146103e8578063826cddf6146103f0578063877887821461040357806388a8d6021461040c5780638a0dac4a1461041f57600080fd5b80635cf6d5ad1461035657806361d027b31461036957806361e5cc9a1461037c57806370897b23146103af578063748747e6146103c257600080fd5b8063264a620811610231578063264a6208146102f05780632eddc153146102f8578063383349851461031b578063452a9320146103305780635aa6e6751461034357600080fd5b8063090c49221461026e5780630ac214df1461028a5780630fa53ec0146102b557806313af4035146102ca57806314b98039146102dd575b600080fd5b610277600e5481565b6040519081526020015b60405180910390f35b61029d6102983660046115fa565b6105a1565b6040516001600160a01b039091168152602001610281565b6102c86102c33660046115fa565b6105cb565b005b6102c86102d836600461162b565b6105fc565b6102c86102eb36600461162b565b610635565b600054610277565b61030b61030636600461162b565b61066e565b6040519015158152602001610281565b61032361068a565b604051610281919061164f565b60065461029d906001600160a01b031681565b60045461029d906001600160a01b031681565b600d5461029d906001600160a01b031681565b60075461029d906001600160a01b031681565b61038f61038a3660046117f6565b6106ec565b604080516001600160a01b03938416815292909116602083015201610281565b6102c86103bd3660046115fa565b610748565b6102c86103d036600461162b565b610773565b60035461029d906001600160a01b031681565b610277600281565b600a5461029d906001600160a01b031681565b61027760105481565b60055461029d906001600160a01b031681565b6102c861042d36600461162b565b6107c1565b60015461029d906001600160a01b031681565b61038f6104533660046118ea565b6107fa565b6102c861046636600461162b565b610848565b61027760115481565b6102c861048236600461162b565b610896565b6102c861049536600461162b565b6108cf565b60085461029d906001600160a01b031681565b60095461029d906001600160a01b031681565b6102c86104ce3660046115fa565b610908565b6102c86104e136600461162b565b610939565b610277600c5481565b6102c86104fd3660046119aa565b610972565b60025461029d906001600160a01b031681565b6102c861052336600461162b565b6109d2565b6102c8610a20565b61027760125481565b600b5461029d906001600160a01b031681565b6102c861055a36600461162b565b610a5b565b61029d61056d36600461162b565b610a94565b610277600f5481565b6102c86105893660046115fa565b610c68565b6102c861059c3660046115fa565b610c99565b600081815481106105b157600080fd5b6000918252602090912001546001600160a01b0316905081565b6001546001600160a01b03163314806105ee57506005546001600160a01b031633145b6105f757600080fd5b600f55565b6001546001600160a01b0316331461061357600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461064c57600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60008061067a83610a94565b6001600160a01b03161492915050565b606060008054806020026020016040519081016040528092919081815260200182805480156106e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106c4575b5050505050905090565b60008061073c858585600060405180604001604052806007815260200166191959985d5b1d60ca1b81525060405180604001604052806007815260200166191959985d5b1d60ca1b815250610cc4565b91509150935093915050565b6001546001600160a01b0316331461075f57600080fd5b61138881111561076e57600080fd5b601055565b6001546001600160a01b031633148061079657506005546001600160a01b031633145b61079f57600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146107d857600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60015460009081906001600160a01b031633148061082257506005546001600160a01b031633145b61082b57600080fd5b61083a87878760018888610cc4565b915091509550959350505050565b6001546001600160a01b031633148061086b57506005546001600160a01b031633145b61087457600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146108ad57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146108e657600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633148061092b57506005546001600160a01b031633145b61093457600080fd5b601255565b6001546001600160a01b0316331461095057600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461098957600080fd5b61271082111561099857600080fd5b6001600160a01b0381166109ab57600080fd5b600c91909155600d80546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314806109f557506005546001600160a01b031633145b6109fe57600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610a3757600080fd5b600254600180546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610a7257600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60405163aa79979b60e01b81526001600160a01b03821660048201526000907341c914ee0c7e1a5edcd0295623e6dc557b5abf3c90819063aa79979b90602401602060405180830381865afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1591906119da565b610b575760405162461bcd60e51b815260206004820152600e60248201526d6e6f74206120763220676175676560901b60448201526064015b60405180910390fd5b6000836001600160a01b03166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbb91906119f7565b90506000805b6003811015610c5f576003546040516309de312f60e41b81526001600160a01b0385811660048301526024820184905290911690639de312f090604401602060405180830381865afa158015610c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3f91906119f7565b91506001600160a01b038216610c5f57610c5881611a14565b9050610bc1565b50949350505050565b6001546001600160a01b0316331480610c8b57506005546001600160a01b031633145b610c9457600080fd5b600e55565b6001546001600160a01b03163314610cb057600080fd5b6103e8811115610cbf57600080fd5b601155565b60008084610d1857610cd58861066e565b610d185760405162461bcd60e51b81526020600482015260146024820152735661756c7420616c72656164792065786973747360601b6044820152606401610b4e565b6000886001600160a01b03166372f702f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906119f7565b90508515610d9657610d8f818686610e14565b9250610da2565b610d9f81610ea8565b92505b610dab8361104f565b610db7838a8a8a611344565b604080516001600160a01b038c811682528084166020830152929450828616928416916002917fe81b974ef16ed1b36cb580c766c6e24301232357e63d3c5998acaf3ea64071be910160405180910390a450965096945050505050565b60035460065460075460405163092ea19b60e11b81526000936001600160a01b039081169363125d433693610e5d938a93309381169216908a908a908a90600290600401611a8b565b6020604051808303816000875af1158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea091906119f7565b949350505050565b600354600654600754604080516395d89b4160e01b815290516000946001600160a01b039081169463125d433694889430949284169391821692918616916395d89b41916004808201928c929091908290030181865afa158015610f10573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f389190810190611af4565b604051602001610f489190611b62565b604051602081830303815290604052886001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190611af4565b604051602001610fcd9190611bad565b60408051808303601f19018152908290526001600160e01b031960e089901b168252611006969594939291600090600290600401611a8b565b6020604051808303816000875af1158015611025573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104991906119f7565b92915050565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b03838116918217909255600554604051636a5115ef60e11b815292166004830152829163d4a22bde90602401600060405180830381600087803b1580156110d757600080fd5b505af11580156110eb573d6000803e3d6000fd5b50506004805460405163ab033ea960e01b81526001600160a01b03918216928101929092528416925063ab033ea99150602401600060405180830381600087803b15801561113857600080fd5b505af115801561114c573d6000803e3d6000fd5b505060125460405163bdc8144b60e01b815260048101919091526001600160a01b038416925063bdc8144b9150602401600060405180830381600087803b15801561119657600080fd5b505af11580156111aa573d6000803e3d6000fd5b50505050601154816001600160a01b031663a6f7f5d66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112139190611be8565b1461127757601154604051637f2b711960e11b815260048101919091526001600160a01b0382169063fe56e23290602401600060405180830381600087803b15801561125e57600080fd5b505af1158015611272573d6000803e3d6000fd5b505050505b601054816001600160a01b031663877887826040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190611be8565b14611340576010546040516370897b2360e01b815260048101919091526001600160a01b038216906370897b2390602401600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b505050505b5050565b60006113528585858561135b565b95945050505050565b600b5460055460075460085460405163320afc2d60e01b81526000946001600160a01b039081169463320afc2d946113a8948c9492841693918216929116908b908b908b90600401611c6c565b6020604051808303816000875af11580156113c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113eb91906119f7565b6009546040516311bc824560e01b81526001600160a01b0391821660048201529192508216906311bc824590602401600060405180830381600087803b15801561143457600080fd5b505af1158015611448573d6000803e3d6000fd5b5050600a54604051634fa285ad60e11b81526001600160a01b0391821660048201529084169250639f450b5a9150602401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050600d54604051634bc2a65760e01b81526001600160a01b0391821660048201529084169250634bc2a6579150602401600060405180830381600087803b1580156114f257600080fd5b505af1158015611506573d6000803e3d6000fd5b505050506000600c54111561157457600c546040516309a9b23f60e41b815260048101919091526001600160a01b03821690639a9b23f090602401600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505b604051630a5a713760e11b81526001600160a01b038281166004830152612710602483018190526000604484018190526000196064850152608484015291908716906314b4e26e9060a401600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b5050505050949350505050565b60006020828403121561160c57600080fd5b5035919050565b6001600160a01b038116811461162857600080fd5b50565b60006020828403121561163d57600080fd5b813561164881611613565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156116905783516001600160a01b03168352928401929184019160010161166b565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156116d5576116d561169c565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156117045761170461169c565b604052919050565b801515811461162857600080fd5b600082601f83011261172b57600080fd5b8135602067ffffffffffffffff8211156117475761174761169c565b611755818360051b016116db565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117eb57608081890312156117915760008081fd5b6117996116b2565b81356117a481611613565b8152818501356117b381611613565b818601526040828101356117c68161170c565b908201526060828101356117d981611613565b90820152835291830191608001611778565b509695505050505050565b60008060006060848603121561180b57600080fd5b833561181681611613565b9250602084013567ffffffffffffffff8082111561183357600080fd5b61183f8783880161171a565b9350604086013591508082111561185557600080fd5b506118628682870161171a565b9150509250925092565b600067ffffffffffffffff8211156118865761188661169c565b50601f01601f191660200190565b600082601f8301126118a557600080fd5b81356118b86118b38261186c565b6116db565b8181528460208386010111156118cd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561190257600080fd5b853561190d81611613565b9450602086013567ffffffffffffffff8082111561192a57600080fd5b61193689838a0161171a565b9550604088013591508082111561194c57600080fd5b61195889838a0161171a565b9450606088013591508082111561196e57600080fd5b61197a89838a01611894565b9350608088013591508082111561199057600080fd5b5061199d88828901611894565b9150509295509295909350565b600080604083850312156119bd57600080fd5b8235915060208301356119cf81611613565b809150509250929050565b6000602082840312156119ec57600080fd5b81516116488161170c565b600060208284031215611a0957600080fd5b815161164881611613565b600060018201611a3457634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b83811015611a56578181015183820152602001611a3e565b50506000910152565b60008151808452611a77816020860160208601611a3b565b601f01601f19169290920160200192915050565b6001600160a01b038981168252888116602083015287811660408301528616606082015261010060808201819052600090611ac883820188611a5f565b905082810360a0840152611adc8187611a5f565b60c0840195909552505060e001529695505050505050565b600060208284031215611b0657600080fd5b815167ffffffffffffffff811115611b1d57600080fd5b8201601f81018413611b2e57600080fd5b8051611b3c6118b38261186c565b818152856020838501011115611b5157600080fd5b611352826020830160208601611a3b565b6902b32b637b23937b6b2960b51b815260008251611b8781600a850160208701611a3b565b6e08119858dd1bdc9e481e55985d5b1d608a1b600a939091019283015250601901919050565b66797656656c6f2d60c81b815260008251611bcf816007850160208701611a3b565b6116b360f11b6007939091019283015250600901919050565b600060208284031215611bfa57600080fd5b5051919050565b600081518084526020808501945080840160005b83811015611c6157815180516001600160a01b039081168952848201518116858a01526040808301511515908a0152606091820151169088015260809096019590820190600101611c15565b509495945050505050565b6001600160a01b0388811682528781166020830152868116604083015285811660608301528416608082015260e060a08201819052600090611cb090830185611c01565b82810360c0840152611cc28185611c01565b9a995050505050505050505056fea2646970667358221220463b00566eaa1afe2457a9d003393d4cdc7d1c9e947dd500048624070e03b59564736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f3885ede00171997bfadaa98e01e167b53a78ec500000000000000000000000021aaf096093422f60554f25fe993e44218733d68000000000000000000000000c6387e937bcef8de3334f80edc623275d42457ff
-----Decoded View---------------
Arg [0] : _registry (address): 0xF3885eDe00171997BFadAa98E01E167B53a78Ec5
Arg [1] : _velodromeStratImplementation (address): 0x21aaf096093422f60554F25Fe993e44218733D68
Arg [2] : _owner (address): 0xC6387E937Bcef8De3334f80EDC623275d42457ff
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f3885ede00171997bfadaa98e01e167b53a78ec5
Arg [1] : 00000000000000000000000021aaf096093422f60554f25fe993e44218733d68
Arg [2] : 000000000000000000000000c6387e937bcef8de3334f80edc623275d42457ff
Deployed Bytecode Sourcemap
2101:20918:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4447:51;;;;;;;;;160:25:1;;;148:2;133:18;4447:51:0;;;;;;;;2444:31;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;545:32:1;;;527:51;;515:2;500:18;2444:31:0;381:203:1;11614:254:0;;;;;;:::i;:::-;;:::i;:::-;;5670:152;;;;;;:::i;:::-;;:::i;9730:245::-;;;;;;:::i;:::-;;:::i;13400:98::-;13444:7;13470:21;13400:98;;13769:171;;;;;;:::i;:::-;;:::i;:::-;;;1142:14:1;;1135:22;1117:41;;1105:2;1090:18;13769:171:0;977:187:1;13168:108:0;;;:::i;:::-;;;;;;;:::i;3350:68::-;;;;;-1:-1:-1;;;;;3350:68:0;;;3092:70;;;;;-1:-1:-1;;;;;3092:70:0;;;4302:69;;;;;-1:-1:-1;;;;;4302:69:0;;;3488:68;;;;;-1:-1:-1;;;;;3488:68:0;;;16829:542;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5126:15:1;;;5108:34;;5178:15;;;;5173:2;5158:18;;5151:43;5043:18;16829:542:0;4896:304:1;12194:248:0;;;;;;:::i;:::-;;:::i;7927:176::-;;;;;;:::i;:::-;;:::i;3007:25::-;;;;;-1:-1:-1;;;;;3007:25:0;;;2724:36;;2759:1;2724:36;;3891:73;;;;;-1:-1:-1;;;;;3891:73:0;;;4752:37;;;;;;3222:70;;;;;-1:-1:-1;;;;;3222:70:0;;;7240:153;;;;;;:::i;:::-;;:::i;2805:20::-;;;;;-1:-1:-1;;;;;2805:20:0;;;15688:706;;;;;;:::i;:::-;;:::i;8917:204::-;;;;;;:::i;:::-;;:::i;4877:32::-;;;;;;6238:164;;;;;;:::i;:::-;;:::i;6576:161::-;;;;;;:::i;:::-;;:::i;3616:66::-;;;;;-1:-1:-1;;;;;3616:66:0;;;3747:71;;;;;-1:-1:-1;;;;;3747:71:0;;;9322:200;;;;;;:::i;:::-;;:::i;6911:161::-;;;;;;:::i;:::-;;:::i;4184:23::-;;;;;;10314:428;;;;;;:::i;:::-;;:::i;2925:27::-;;;;;-1:-1:-1;;;;;2925:27:0;;;8399:186;;;;;;:::i;:::-;;:::i;5923:143::-;;;:::i;5000:55::-;;;;;;4037:43;;;;;-1:-1:-1;;;;;4037:43:0;;;7598:153;;;;;;:::i;:::-;;:::i;14312:792::-;;;;;;:::i;:::-;;:::i;4610:53::-;;;;;;11054:254;;;;;;:::i;:::-;;:::i;12750:243::-;;;;;;:::i;:::-;;:::i;2444:31::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2444:31:0;;-1:-1:-1;2444:31:0;:::o;11614:254::-;11735:5;;-1:-1:-1;;;;;11735:5:0;11721:10;:19;;:47;;-1:-1:-1;11758:10:0;;-1:-1:-1;;;;;11758:10:0;11744;:24;11721:47;11715:89;;11785:8;;;11715:89;11813:22;:48;11614:254::o;5670:152::-;5743:5;;-1:-1:-1;;;;;5743:5:0;5729:10;:19;5725:58;;5764:8;;;5725:58;5792:12;:23;;-1:-1:-1;;;;;;5792:23:0;-1:-1:-1;;;;;5792:23:0;;;;;;;;;;5670:152::o;9730:245::-;9860:5;;-1:-1:-1;;;;;9860:5:0;9846:10;:19;9842:58;;9881:8;;;9842:58;9909:28;:59;;-1:-1:-1;;;;;;9909:59:0;-1:-1:-1;;;;;9909:59:0;;;;;;;;;;9730:245::o;13769:171::-;13860:4;;13883:36;13912:6;13883:28;:36::i;:::-;-1:-1:-1;;;;;13883:50:0;;;13769:171;-1:-1:-1;;13769:171:0:o;13168:108::-;13220:16;13255:14;13248:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13248:21:0;;;;;;;;;;;;;;;;;;;;;;;13168:108;:::o;16829:542::-;17057:13;17072:25;17128:236;17175:6;17199:28;17245;17291:5;17128:236;;;;;;;;;;;;;-1:-1:-1;;;17128:236:0;;;;;;;;;;;;;;;;-1:-1:-1;;;17128:236:0;;;:29;:236::i;:::-;17109:255;;;;16829:542;;;;;;:::o;12194:248::-;12283:5;;-1:-1:-1;;;;;12283:5:0;12269:10;:19;12265:58;;12304:8;;;12265:58;12354:5;12336:15;:23;12332:62;;;12375:8;;;12332:62;12403:14;:32;12194:248::o;7927:176::-;8002:5;;-1:-1:-1;;;;;8002:5:0;7988:10;:19;;:47;;-1:-1:-1;8025:10:0;;-1:-1:-1;;;;;8025:10:0;8011;:24;7988:47;7982:89;;8052:8;;;7982:89;8080:6;:16;;-1:-1:-1;;;;;;8080:16:0;-1:-1:-1;;;;;8080:16:0;;;;;;;;;;7927:176::o;7240:153::-;7317:5;;-1:-1:-1;;;;;7317:5:0;7303:10;:19;7299:58;;7338:8;;;7299:58;7366:8;:20;;-1:-1:-1;;;;;;7366:20:0;-1:-1:-1;;;;;7366:20:0;;;;;;;;;;7240:153::o;15688:706::-;16060:5;;15988:13;;;;-1:-1:-1;;;;;16060:5:0;16046:10;:19;;:47;;-1:-1:-1;16083:10:0;;-1:-1:-1;;;;;16083:10:0;16069;:24;16046:47;16040:89;;16110:8;;;16040:89;16158:229;16205:6;16229:28;16275;16321:4;16343:5;16366:7;16158:29;:229::i;:::-;16139:248;;;;15688:706;;;;;;;;:::o;8917:204::-;9006:5;;-1:-1:-1;;;;;9006:5:0;8992:10;:19;;:47;;-1:-1:-1;9029:10:0;;-1:-1:-1;;;;;9029:10:0;9015;:24;8992:47;8986:89;;9056:8;;;8986:89;9084:13;:30;;-1:-1:-1;;;;;;9084:30:0;-1:-1:-1;;;;;9084:30:0;;;;;;;;;;8917:204::o;6238:164::-;6315:5;;-1:-1:-1;;;;;6315:5:0;6301:10;:19;6297:58;;6336:8;;;6297:58;6364:8;:31;;-1:-1:-1;;;;;;6364:31:0;-1:-1:-1;;;;;6364:31:0;;;;;;;;;;6238:164::o;6576:161::-;6657:5;;-1:-1:-1;;;;;6657:5:0;6643:10;:19;6639:58;;6678:8;;;6639:58;6706:10;:24;;-1:-1:-1;;;;;;6706:24:0;-1:-1:-1;;;;;6706:24:0;;;;;;;;;;6576:161::o;9322:200::-;9409:5;;-1:-1:-1;;;;;9409:5:0;9395:10;:19;;:47;;-1:-1:-1;9432:10:0;;-1:-1:-1;;;;;9432:10:0;9418;:24;9395:47;9389:89;;9459:8;;;9389:89;9487:12;:28;9322:200::o;6911:161::-;6992:5;;-1:-1:-1;;;;;6992:5:0;6978:10;:19;6974:58;;7013:8;;;6974:58;7041:10;:24;;-1:-1:-1;;;;;;7041:24:0;-1:-1:-1;;;;;7041:24:0;;;;;;;;;;6911:161::o;10314:428::-;10411:5;;-1:-1:-1;;;;;10411:5:0;10397:10;:19;10393:58;;10432:8;;;10393:58;10476:6;10464:9;:18;10460:57;;;10498:8;;;10460:57;-1:-1:-1;;;;;10614:24:0;;10610:63;;10654:8;;;10610:63;10683:8;:20;;;;10713:9;:22;;-1:-1:-1;;;;;;10713:22:0;-1:-1:-1;;;;;10713:22:0;;;;;;;;;10314:428::o;8399:186::-;8479:5;;-1:-1:-1;;;;;8479:5:0;8465:10;:19;;:47;;-1:-1:-1;8502:10:0;;-1:-1:-1;;;;;8502:10:0;8488;:24;8465:47;8459:89;;8529:8;;;8459:89;8557:11;:21;;-1:-1:-1;;;;;;8557:21:0;-1:-1:-1;;;;;8557:21:0;;;;;;;;;;8399:186::o;5923:143::-;5983:12;;-1:-1:-1;;;;;5983:12:0;5969:10;:26;5965:65;;6011:8;;;5965:65;6047:12;;;6039:20;;-1:-1:-1;;;;;;6039:20:0;-1:-1:-1;;;;;6047:12:0;;;6039:20;;;;;;5923:143::o;7598:153::-;7675:5;;-1:-1:-1;;;;;7675:5:0;7661:10;:19;7657:58;;7696:8;;;7657:58;7724:8;:20;;-1:-1:-1;;;;;;7724:20:0;-1:-1:-1;;;;;7724:20:0;;;;;;;;;;7598:153::o;14312:792::-;14619:21;;-1:-1:-1;;;14619:21:0;;-1:-1:-1;;;;;545:32:1;;14619:21:0;;;527:51:1;14401:7:0;;14552:42;;;;14619:13;;500:18:1;;14619:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14614:77;;14656:24;;-1:-1:-1;;;14656:24:0;;8055:2:1;14656:24:0;;;8037:21:1;8094:2;8074:18;;;8067:30;-1:-1:-1;;;8113:18:1;;;8106:44;8167:18;;14656:24:0;;;;;;;;14614:77;14745:15;14779:6;-1:-1:-1;;;;;14763:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14745:56;;14811:14;14903:9;14898:177;14918:1;14914;:5;14898:177;;;14949:8;;:38;;-1:-1:-1;;;14949:38:0;;-1:-1:-1;;;;;8644:32:1;;;14949:38:0;;;8626:51:1;8693:18;;;8686:34;;;14949:8:0;;;;:26;;8599:18:1;;14949:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14940:47;-1:-1:-1;;;;;;15005:20:0;;15045:5;15001:64;14921:3;;;:::i;:::-;;;14898:177;;;-1:-1:-1;15091:6:0;14312:792;-1:-1:-1;;;;14312:792:0:o;11054:254::-;11175:5;;-1:-1:-1;;;;;11175:5:0;11161:10;:19;;:47;;-1:-1:-1;11198:10:0;;-1:-1:-1;;;;;11198:10:0;11184;:24;11161:47;11155:89;;11225:8;;;11155:89;11253:22;:48;11054:254::o;12750:243::-;12837:5;;-1:-1:-1;;;;;12837:5:0;12823:10;:19;12819:58;;12858:8;;;12819:58;12907:5;12890:14;:22;12886:61;;;12928:8;;;12886:61;12956:13;:30;12750:243::o;17434:1586::-;17755:13;17770:25;17900:17;17895:166;;17958:38;17989:6;17958:30;:38::i;:::-;17933:117;;;;-1:-1:-1;;;17933:117:0;;9170:2:1;17933:117:0;;;9152:21:1;9209:2;9189:18;;;9182:30;-1:-1:-1;;;9228:18:1;;;9221:50;9288:18;;17933:117:0;8968:344:1;17933:117:0;18113:15;18147:6;-1:-1:-1;;;;;18131:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18113:56;;18184:17;18180:370;;;18335:43;18354:7;18363:5;18370:7;18335:18;:43::i;:::-;18327:51;;18180:370;;;18510:29;18531:7;18510:20;:29::i;:::-;18502:37;;18180:370;18611:24;18629:5;18611:17;:24::i;:::-;18708:149;18738:5;18757:6;18777:28;18819;18708:16;:149::i;:::-;18873:140;;;-1:-1:-1;;;;;5126:15:1;;;5108:34;;5178:15;;;5173:2;5158:18;;5151:43;18688:169:0;;-1:-1:-1;18873:140:0;;;;;;;2759:1;;18873:140;;5043:18:1;18873:140:0;;;;;;;17797:1223;17434:1586;;;;;;;;;:::o;19091:393::-;19261:8;;19340;;19362;;19261:216;;-1:-1:-1;;;19261:216:0;;19228:13;;-1:-1:-1;;;;;19261:8:0;;;;:17;;:216;;19292:7;;19321:4;;19340:8;;;19362;;19384:5;;19403:7;;19228:13;;19447:19;;19261:216;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19253:224;19091:393;-1:-1:-1;;;;19091:393:0:o;19565:711::-;19677:8;;19756;;19778;;19896:35;;;-1:-1:-1;;;19896:35:0;;;;19644:13;;-1:-1:-1;;;;;19677:8:0;;;;:17;;19708:7;;19737:4;;19756:8;;;;19778;;;;19896:33;;;;;;:35;;;;;19644:13;;19896:35;;;;;;;;:33;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19896:35:0;;;;;;;;;;;;:::i;:::-;19824:164;;;;;;;;:::i;:::-;;;;;;;;;;;;;20126:7;-1:-1:-1;;;;;20109:33:0;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20109:35:0;;;;;;;;;;;;:::i;:::-;20040:148;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20040:148:0;;;;;;;-1:-1:-1;;;;;;19677:592:0;;;;;;;;;;;;;;20216:1;;20239:19;;19677:592;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19669:600;19565:711;-1:-1:-1;;19565:711:0:o;20340:628::-;20448:14;:27;;;;;;;;;;;;;;-1:-1:-1;;;;;;20448:27:0;-1:-1:-1;;;;;20448:27:0;;;;;;;;;20535:10;;20519:27;;-1:-1:-1;;;20519:27:0;;20535:10;;20519:27;;;527:51:1;20448:27:0;;20519:15;;500:18:1;;20519:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20690:10:0;;;20674:27;;-1:-1:-1;;;20674:27:0;;-1:-1:-1;;;;;20690:10:0;;;20674:27;;;527:51:1;;;;20674:15:0;;;-1:-1:-1;20674:15:0;;-1:-1:-1;500:18:1;;20674:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20729:12:0;;20711:31;;-1:-1:-1;;;20711:31:0;;;;;160:25:1;;;;-1:-1:-1;;;;;20711:17:0;;;-1:-1:-1;20711:17:0;;-1:-1:-1;133:18:1;;20711:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20778:13;;20757:1;-1:-1:-1;;;;;20757:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;20753:98;;20826:13;;20807:33;;-1:-1:-1;;;20807:33:0;;;;;160:25:1;;;;-1:-1:-1;;;;;20807:18:0;;;;;133::1;;20807:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20753:98;20886:14;;20864:1;-1:-1:-1;;;;;20864:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;20860:102;;20936:14;;20916:35;;-1:-1:-1;;;20916:35:0;;;;;160:25:1;;;;-1:-1:-1;;;;;20916:19:0;;;;;133:18:1;;20916:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20860:102;20392:576;20340:628;:::o;21024:502::-;21264:25;21364:155;21399:6;21419;21439:28;21481;21364:21;:155::i;:::-;21344:175;21024:502;-1:-1:-1;;;;;21024:502:0:o;21630:1387::-;21984:28;;22091:10;;22119:8;;22145:6;;21974:307;;-1:-1:-1;;;21974:307:0;;21875:25;;-1:-1:-1;;;;;21984:28:0;;;;21974:75;;:307;;22067:6;;22091:10;;;;22119:8;;;;22145:6;;;22169;;22193:28;;22239;;21974:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22412:11;;22368:56;;-1:-1:-1;;;22368:56:0;;-1:-1:-1;;;;;22412:11:0;;;22368:56;;;527:51:1;21954:327:0;;-1:-1:-1;22368:43:0;;;;;500:18:1;;22368:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22480:13:0;;22434:60;;-1:-1:-1;;;22434:60:0;;-1:-1:-1;;;;;22480:13:0;;;22434:60;;;527:51:1;22434:45:0;;;;-1:-1:-1;22434:45:0;;-1:-1:-1;500:18:1;;22434:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22598:9:0;;22560:48;;-1:-1:-1;;;22560:48:0;;-1:-1:-1;;;;;22598:9:0;;;22560:48;;;527:51:1;22560:37:0;;;;-1:-1:-1;22560:37:0;;-1:-1:-1;500:18:1;;22560:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22698:1;22687:8;;:12;22683:98;;;22761:8;;22715:55;;-1:-1:-1;;;22715:55:0;;;;;160:25:1;;;;-1:-1:-1;;;;;22715:45:0;;;;;133:18:1;;22715:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22683:98;22856:154;;-1:-1:-1;;;22856:154:0;;-1:-1:-1;;;;;15042:32:1;;;22856:154:0;;;15024:51:1;22839:6:0;15091:18:1;;;15084:34;;;22815:21:0;15134:18:1;;;15127:34;;;-1:-1:-1;;15177:18:1;;;15170:34;15220:19;;;15213:35;22839:6:0;22856:25;;;;;;14996:19:1;;22856:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21902:1115;21630:1387;;;;;;:::o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;589:131::-;-1:-1:-1;;;;;664:31:1;;654:42;;644:70;;710:1;707;700:12;644:70;589:131;:::o;725:247::-;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;:::-;961:5;725:247;-1:-1:-1;;;725:247:1:o;1169:658::-;1340:2;1392:21;;;1462:13;;1365:18;;;1484:22;;;1311:4;;1340:2;1563:15;;;;1537:2;1522:18;;;1311:4;1606:195;1620:6;1617:1;1614:13;1606:195;;;1685:13;;-1:-1:-1;;;;;1681:39:1;1669:52;;1776:15;;;;1741:12;;;;1717:1;1635:9;1606:195;;;-1:-1:-1;1818:3:1;;1169:658;-1:-1:-1;;;;;;1169:658:1:o;1832:127::-;1893:10;1888:3;1884:20;1881:1;1874:31;1924:4;1921:1;1914:15;1948:4;1945:1;1938:15;1964:253;2036:2;2030:9;2078:4;2066:17;;2113:18;2098:34;;2134:22;;;2095:62;2092:88;;;2160:18;;:::i;:::-;2196:2;2189:22;1964:253;:::o;2222:275::-;2293:2;2287:9;2358:2;2339:13;;-1:-1:-1;;2335:27:1;2323:40;;2393:18;2378:34;;2414:22;;;2375:62;2372:88;;;2440:18;;:::i;:::-;2476:2;2469:22;2222:275;;-1:-1:-1;2222:275:1:o;2502:118::-;2588:5;2581:13;2574:21;2567:5;2564:32;2554:60;;2610:1;2607;2600:12;2625:1475;2685:5;2738:3;2731:4;2723:6;2719:17;2715:27;2705:55;;2756:1;2753;2746:12;2705:55;2792:6;2779:20;2818:4;2841:18;2837:2;2834:26;2831:52;;;2863:18;;:::i;:::-;2903:36;2935:2;2930;2927:1;2923:10;2919:19;2903:36;:::i;:::-;2973:15;;;3059:1;3055:10;;;;3043:23;;3039:32;;;3004:12;;;;3083:15;;;3080:35;;;3111:1;3108;3101:12;3080:35;3147:2;3139:6;3135:15;3159:912;3175:6;3170:3;3167:15;3159:912;;;3253:4;3247:3;3242;3238:13;3234:24;3231:114;;;3299:1;3328:2;3324;3317:14;3231:114;3371:22;;:::i;:::-;3434:3;3421:17;3451:33;3476:7;3451:33;:::i;:::-;3497:22;;3560:12;;;3547:26;3586:33;3547:26;3586:33;:::i;:::-;3639:14;;;3632:31;3686:2;3729:12;;;3716:26;3755:30;3716:26;3755:30;:::i;:::-;3805:14;;;3798:31;3852:2;3895:12;;;3882:26;3921:33;3882:26;3921:33;:::i;:::-;3974:14;;;3967:31;4011:18;;4049:12;;;;3201:4;3192:14;3159:912;;;-1:-1:-1;4089:5:1;2625:1475;-1:-1:-1;;;;;;2625:1475:1:o;4105:786::-;4276:6;4284;4292;4345:2;4333:9;4324:7;4320:23;4316:32;4313:52;;;4361:1;4358;4351:12;4313:52;4400:9;4387:23;4419:31;4444:5;4419:31;:::i;:::-;4469:5;-1:-1:-1;4525:2:1;4510:18;;4497:32;4548:18;4578:14;;;4575:34;;;4605:1;4602;4595:12;4575:34;4628:67;4687:7;4678:6;4667:9;4663:22;4628:67;:::i;:::-;4618:77;;4748:2;4737:9;4733:18;4720:32;4704:48;;4777:2;4767:8;4764:16;4761:36;;;4793:1;4790;4783:12;4761:36;;4816:69;4877:7;4866:8;4855:9;4851:24;4816:69;:::i;:::-;4806:79;;;4105:786;;;;;:::o;5429:187::-;5478:4;5511:18;5503:6;5500:30;5497:56;;;5533:18;;:::i;:::-;-1:-1:-1;5599:2:1;5578:15;-1:-1:-1;;5574:29:1;5605:4;5570:40;;5429:187::o;5621:464::-;5664:5;5717:3;5710:4;5702:6;5698:17;5694:27;5684:55;;5735:1;5732;5725:12;5684:55;5771:6;5758:20;5802:49;5818:32;5847:2;5818:32;:::i;:::-;5802:49;:::i;:::-;5876:2;5867:7;5860:19;5922:3;5915:4;5910:2;5902:6;5898:15;5894:26;5891:35;5888:55;;;5939:1;5936;5929:12;5888:55;6004:2;5997:4;5989:6;5985:17;5978:4;5969:7;5965:18;5952:55;6052:1;6027:16;;;6045:4;6023:27;6016:38;;;;6031:7;5621:464;-1:-1:-1;;;5621:464:1:o;6090:1188::-;6299:6;6307;6315;6323;6331;6384:3;6372:9;6363:7;6359:23;6355:33;6352:53;;;6401:1;6398;6391:12;6352:53;6440:9;6427:23;6459:31;6484:5;6459:31;:::i;:::-;6509:5;-1:-1:-1;6565:2:1;6550:18;;6537:32;6588:18;6618:14;;;6615:34;;;6645:1;6642;6635:12;6615:34;6668:67;6727:7;6718:6;6707:9;6703:22;6668:67;:::i;:::-;6658:77;;6788:2;6777:9;6773:18;6760:32;6744:48;;6817:2;6807:8;6804:16;6801:36;;;6833:1;6830;6823:12;6801:36;6856:69;6917:7;6906:8;6895:9;6891:24;6856:69;:::i;:::-;6846:79;;6978:2;6967:9;6963:18;6950:32;6934:48;;7007:2;6997:8;6994:16;6991:36;;;7023:1;7020;7013:12;6991:36;7046:52;7090:7;7079:8;7068:9;7064:24;7046:52;:::i;:::-;7036:62;;7151:3;7140:9;7136:19;7123:33;7107:49;;7181:2;7171:8;7168:16;7165:36;;;7197:1;7194;7187:12;7165:36;;7220:52;7264:7;7253:8;7242:9;7238:24;7220:52;:::i;:::-;7210:62;;;6090:1188;;;;;;;;:::o;7283:315::-;7351:6;7359;7412:2;7400:9;7391:7;7387:23;7383:32;7380:52;;;7428:1;7425;7418:12;7380:52;7464:9;7451:23;7441:33;;7524:2;7513:9;7509:18;7496:32;7537:31;7562:5;7537:31;:::i;:::-;7587:5;7577:15;;;7283:315;;;;;:::o;7603:245::-;7670:6;7723:2;7711:9;7702:7;7698:23;7694:32;7691:52;;;7739:1;7736;7729:12;7691:52;7771:9;7765:16;7790:28;7812:5;7790:28;:::i;8196:251::-;8266:6;8319:2;8307:9;8298:7;8294:23;8290:32;8287:52;;;8335:1;8332;8325:12;8287:52;8367:9;8361:16;8386:31;8411:5;8386:31;:::i;8731:232::-;8770:3;8791:17;;;8788:140;;8850:10;8845:3;8841:20;8838:1;8831:31;8885:4;8882:1;8875:15;8913:4;8910:1;8903:15;8788:140;-1:-1:-1;8955:1:1;8944:13;;8731:232::o;9449:250::-;9534:1;9544:113;9558:6;9555:1;9552:13;9544:113;;;9634:11;;;9628:18;9615:11;;;9608:39;9580:2;9573:10;9544:113;;;-1:-1:-1;;9691:1:1;9673:16;;9666:27;9449:250::o;9704:271::-;9746:3;9784:5;9778:12;9811:6;9806:3;9799:19;9827:76;9896:6;9889:4;9884:3;9880:14;9873:4;9866:5;9862:16;9827:76;:::i;:::-;9957:2;9936:15;-1:-1:-1;;9932:29:1;9923:39;;;;9964:4;9919:50;;9704:271;-1:-1:-1;;9704:271:1:o;9980:917::-;-1:-1:-1;;;;;10413:15:1;;;10395:34;;10465:15;;;10460:2;10445:18;;10438:43;10517:15;;;10512:2;10497:18;;10490:43;10569:15;;10564:2;10549:18;;10542:43;10345:3;10616;10601:19;;10594:31;;;10316:4;;10648:45;10674:18;;;10666:6;10648:45;:::i;:::-;10634:59;;10742:9;10734:6;10730:22;10724:3;10713:9;10709:19;10702:51;10770:33;10796:6;10788;10770:33;:::i;:::-;10834:3;10819:19;;10812:35;;;;-1:-1:-1;;10878:3:1;10863:19;10856:35;10762:41;9980:917;-1:-1:-1;;;;;;9980:917:1:o;10902:649::-;10982:6;11035:2;11023:9;11014:7;11010:23;11006:32;11003:52;;;11051:1;11048;11041:12;11003:52;11084:9;11078:16;11117:18;11109:6;11106:30;11103:50;;;11149:1;11146;11139:12;11103:50;11172:22;;11225:4;11217:13;;11213:27;-1:-1:-1;11203:55:1;;11254:1;11251;11244:12;11203:55;11283:2;11277:9;11308:49;11324:32;11353:2;11324:32;:::i;11308:49::-;11380:2;11373:5;11366:17;11420:7;11415:2;11410;11406;11402:11;11398:20;11395:33;11392:53;;;11441:1;11438;11431:12;11392:53;11454:67;11518:2;11513;11506:5;11502:14;11497:2;11493;11489:11;11454:67;:::i;11556:611::-;-1:-1:-1;;;11914:3:1;11907:25;11889:3;11961:6;11955:13;11977:75;12045:6;12040:2;12035:3;12031:12;12024:4;12016:6;12012:17;11977:75;:::i;:::-;-1:-1:-1;;;12111:2:1;12071:16;;;;12103:11;;;12096:38;-1:-1:-1;12158:2:1;12150:11;;11556:611;-1:-1:-1;11556:611:1:o;12172:592::-;-1:-1:-1;;;12530:3:1;12523:22;12505:3;12574:6;12568:13;12590:74;12657:6;12653:1;12648:3;12644:11;12637:4;12629:6;12625:17;12590:74;:::i;:::-;-1:-1:-1;;;12723:1:1;12683:16;;;;12715:10;;;12708:24;-1:-1:-1;12756:1:1;12748:10;;12172:592;-1:-1:-1;12172:592:1:o;12769:184::-;12839:6;12892:2;12880:9;12871:7;12867:23;12863:32;12860:52;;;12908:1;12905;12898:12;12860:52;-1:-1:-1;12931:16:1;;12769:184;-1:-1:-1;12769:184:1:o;12958:773::-;13017:3;13055:5;13049:12;13082:6;13077:3;13070:19;13108:4;13137:2;13132:3;13128:12;13121:19;;13174:2;13167:5;13163:14;13195:1;13205:501;13219:6;13216:1;13213:13;13205:501;;;13278:13;;13362:9;;-1:-1:-1;;;;;13358:18:1;;;13346:31;;13421:11;;;13415:18;13411:27;;13397:12;;;13390:49;13462:4;13520:11;;;13514:18;13507:26;13500:34;13486:12;;;13479:56;13558:4;13606:11;;;13600:18;13596:27;13582:12;;;13575:49;13653:4;13644:14;;;;13681:15;;;;13331:1;13234:9;13205:501;;;-1:-1:-1;13722:3:1;;12958:773;-1:-1:-1;;;;;12958:773:1:o;13736:1008::-;-1:-1:-1;;;;;14259:15:1;;;14241:34;;14311:15;;;14306:2;14291:18;;14284:43;14363:15;;;14358:2;14343:18;;14336:43;14415:15;;;14410:2;14395:18;;14388:43;14468:15;;14462:3;14447:19;;14440:44;14521:3;14221;14500:19;;14493:32;;;14184:4;;14548:63;;14591:19;;14583:6;14548:63;:::i;:::-;14660:9;14652:6;14648:22;14642:3;14631:9;14627:19;14620:51;14688:50;14731:6;14723;14688:50;:::i;:::-;14680:58;13736:1008;-1:-1:-1;;;;;;;;;;13736:1008:1:o
Swarm Source
ipfs://463b00566eaa1afe2457a9d003393d4cdc7d1c9e947dd500048624070e03b595
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.