From bb7d4ebb2148cd77adaaf3b21a779414d198aefc Mon Sep 17 00:00:00 2001 From: Collin Date: Tue, 12 Sep 2023 12:26:15 -0500 Subject: [PATCH] RYETH/BTC allow Aave V3 adaptor for RYETH/BTC, Cellar adaptor for RYBTC, cachePriceRouter function (#221) * Add CachePriceRouter function to strategist API * Update CellarV2.2 ABI * Handler and validation for CachePriceRouter call * Fix CachePriceRouter proto to match Cellar 2.2 ABI * Validate cachePriceRouter argument values * Bump to version v3.4.3 --- Cargo.lock | 8 +- Cargo.toml | 2 +- proto/cellar_v2.proto | 14 + steward/Cargo.toml | 2 +- steward/src/cellars.rs | 37 +- steward/src/cellars/cellar_v2_2.rs | 22 +- steward_abi/Cargo.toml | 2 +- steward_abi/abi/CellarV2_2.json | 48591 +--------------- steward_abi/src/cellar_v2_2.rs | 76 +- .../steward_proto/cellar_v2.pb.go | 1233 +- steward_proto_rust/Cargo.toml | 2 +- steward_proto_rust/src/prost/descriptor.bin | Bin 142953 -> 143772 bytes steward_proto_rust/src/prost/steward.v3.rs | 18 +- 13 files changed, 2660 insertions(+), 47347 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 97dc5e4c..79a07593 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4688,7 +4688,7 @@ dependencies = [ [[package]] name = "sommelier_steward" -version = "3.4.2" +version = "3.4.3" dependencies = [ "lazy_static", "steward", @@ -4779,7 +4779,7 @@ checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" [[package]] name = "steward" -version = "3.4.2" +version = "3.4.3" dependencies = [ "abscissa_core", "abscissa_tokio", @@ -4832,7 +4832,7 @@ dependencies = [ [[package]] name = "steward_abi" -version = "3.4.2" +version = "3.4.3" dependencies = [ "ethers", "serde", @@ -4852,7 +4852,7 @@ dependencies = [ [[package]] name = "steward_proto" -version = "3.4.2" +version = "3.4.3" dependencies = [ "prost 0.7.0", "prost-types 0.7.0", diff --git a/Cargo.toml b/Cargo.toml index 7ff0eeb9..667dfc4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sommelier_steward" -version = "3.4.2" +version = "3.4.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/proto/cellar_v2.proto b/proto/cellar_v2.proto index 2678f772..123c9217 100644 --- a/proto/cellar_v2.proto +++ b/proto/cellar_v2.proto @@ -227,6 +227,8 @@ message CellarV2_2 { RemoveAdaptorFromCatalogue remove_adaptor_from_catalogue = 14; // Represents function `removePositionFromCatalogue(uint32 positionId)` RemovePositionFromCatalogue remove_position_from_catalogue = 15; + // Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` + CachePriceRouter cache_price_router = 16; } } @@ -387,6 +389,18 @@ message CellarV2_2 { message RemovePositionFromCatalogue { uint32 position_id = 1; } + + /* + * Updates the cellar to use the latest price router in the registry. + * + * Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` + */ + message CachePriceRouter { + // Whether to check the total assets of the cellar + bool check_total_assets = 1; + // The allowable range of the cellar's total assets to deviate between old and new routers + uint32 allowable_range = 2; + } } message CellarV2_5 { diff --git a/steward/Cargo.toml b/steward/Cargo.toml index 55c4a04c..a89ca02c 100644 --- a/steward/Cargo.toml +++ b/steward/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "steward" authors = [] -version = "3.4.2" +version = "3.4.3" edition = "2018" [dependencies] diff --git a/steward/src/cellars.rs b/steward/src/cellars.rs index 6c5e3131..63b63591 100644 --- a/steward/src/cellars.rs +++ b/steward/src/cellars.rs @@ -30,11 +30,16 @@ pub const ORACLE2: (U256, &str) = ( "c47278b65443ce71cf47e8455bb343f2db11b70e", ); pub const ALLOWED_PRICE_ORACLES: [(U256, &str); 2] = [ORACLE1, ORACLE2]; +pub const ALLOWED_CACHE_PRICE_ROUTER: [&str; 1] = [CELLAR_RYETH]; // permissions pub const ALLOWED_V2_0_SETUP_ADAPTORS: [(&str, &str); 1] = [(CELLAR_RYUSD, ADAPTOR_CELLAR_V2)]; -pub const ALLOWED_V2_2_CATALOGUE_ADAPTORS: [(&str, &str); 0] = []; +pub const ALLOWED_V2_2_CATALOGUE_ADAPTORS: [(&str, &str); 3] = [ + (CELLAR_RYETH, ADAPTOR_AAVE_V3_A_TOKEN_V1), + (CELLAR_RYBTC, ADAPTOR_AAVE_V3_A_TOKEN_V1), + (CELLAR_RYBTC, ADAPTOR_CELLAR_V1), +]; pub const ALLOWED_V2_5_CATALOGUE_ADAPTORS: [(&str, &str); 0] = []; // due to position size limits in v2.0, positions must be added and removed from the limited list @@ -61,7 +66,15 @@ pub const ALLOWED_V2_0_POSITIONS: [(&str, u32); 20] = [ (CELLAR_RYUSD, 28), (CELLAR_RYUSD, 29), ]; -pub const ALLOWED_V2_2_CATALOGUE_POSITIONS: [(&str, u32); 0] = []; +pub const ALLOWED_V2_2_CATALOGUE_POSITIONS: [(&str, u32); 7] = [ + (CELLAR_RYETH, 188), + (CELLAR_RYETH, 189), + (CELLAR_RYETH, 190), + (CELLAR_RYETH, 191), + (CELLAR_RYBTC, 192), + (CELLAR_RYBTC, 193), + (CELLAR_RYBTC, 194), +]; pub const ALLOWED_V2_5_CATALOGUE_POSITIONS: [(&str, u32); 0] = []; pub const BLOCKED_ADAPTORS: [&str; 3] = [ @@ -116,6 +129,8 @@ pub const ADAPTOR_COMPOUND_C_TOKEN_V1: &str = "26dba82495f6189dde7648ae88bead46c // adaptors +pub const ADAPTOR_AAVE_V3_A_TOKEN_V1: &str = "76cef5606c8b6ba38fe2e3c639e1659afa530b47"; +pub const ADAPTOR_CELLAR_V1: &str = "1e22adf9e63ef8f2a3626841ddddd19683e31068"; pub const ADAPTOR_CELLAR_V2: &str = "3b5ca5de4d808cd793d3a7b3a731d3e67e707b27"; pub const ADAPTOR_MORPHO_AAVE_V2_A_TOKEN_V1: &str = "1a4cb53edb8c65c3df6aa9d88c1ab4cf35312b73"; pub const ADAPTOR_MORPHO_AAVE_V2_DEBT_TOKEN_V1: &str = "407d5489f201013ee6a6ca20fccb05047c548138"; @@ -204,6 +219,24 @@ pub fn validate_oracle( Ok(()) } +pub fn validate_cache_price_router( + cellar_id: &str, + check_total_assets_value: bool, + allowable_range_value: u32, +) -> Result<(), Error> { + if !check_total_assets_value || allowable_range_value != 500 { + return Err(sp_call_error( + "unauthorized arguments for cachePriceRouter call".to_string(), + )); + } + let cellar_id_normalized = normalize_address(cellar_id.to_string()); + if !ALLOWED_CACHE_PRICE_ROUTER.contains(&cellar_id_normalized.as_str()) { + return Err(sp_call_error("call not authorized for cellar".to_string())); + } + + Ok(()) +} + pub fn check_blocked_adaptor(adaptor_id: &str) -> Result<(), Error> { let adaptor_id = normalize_address(adaptor_id.to_string()); if BLOCKED_ADAPTORS.contains(&adaptor_id.as_str()) { diff --git a/steward/src/cellars/cellar_v2_2.rs b/steward/src/cellars/cellar_v2_2.rs index 784b1634..a96913c2 100644 --- a/steward/src/cellars/cellar_v2_2.rs +++ b/steward/src/cellars/cellar_v2_2.rs @@ -21,8 +21,8 @@ use crate::{ }; use super::{ - check_blocked_adaptor, check_blocked_position, log_cellar_call, validate_new_adaptor, - validate_new_position, V2_2_PERMISSIONS, + check_blocked_adaptor, check_blocked_position, log_cellar_call, validate_cache_price_router, + validate_new_adaptor, validate_new_position, V2_2_PERMISSIONS, }; const CELLAR_NAME: &str = "CellarV2.2"; @@ -233,6 +233,24 @@ pub fn get_encoded_function(call: FunctionCall, cellar_id: String) -> Result { + validate_cache_price_router( + &cellar_id, + params.check_total_assets, + params.allowable_range, + )?; + log_cellar_call( + CELLAR_NAME, + &CachePriceRouterCall::function_name(), + &cellar_id, + ); + let call = CachePriceRouterCall { + check_total_assets: params.check_total_assets, + allowable_range: params.allowable_range as u16, + }; + + Ok(CellarV2_2Calls::CachePriceRouter(call).encode()) + } } } diff --git a/steward_abi/Cargo.toml b/steward_abi/Cargo.toml index aff27459..48acfd3c 100644 --- a/steward_abi/Cargo.toml +++ b/steward_abi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "steward_abi" -version = "3.4.2" +version = "3.4.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/steward_abi/abi/CellarV2_2.json b/steward_abi/abi/CellarV2_2.json index a0876199..3a0317e9 100644 --- a/steward_abi/abi/CellarV2_2.json +++ b/steward_abi/abi/CellarV2_2.json @@ -1,47087 +1,2150 @@ -{ - "abi": [ +[ { - "inputs": [ - { - "internalType": "contract Registry", - "name": "_registry", - "type": "address" - }, - { - "internalType": "contract ERC20", - "name": "_asset", - "type": "address" - }, - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "address", - "name": "expectedAsset", - "type": "address" - } - ], - "name": "Cellar__AssetMismatch", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - } - ], - "name": "Cellar__CallToAdaptorNotAllowed", - "type": "error" - }, - { - "inputs": [], - "name": "Cellar__CallerNotAavePool", - "type": "error" - }, - { - "inputs": [], - "name": "Cellar__ContractNotShutdown", - "type": "error" + "inputs": [ + { + "internalType": "contract Registry", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" }, { - "inputs": [], - "name": "Cellar__ContractShutdown", - "type": "error" + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "address", + "name": "expectedAsset", + "type": "address" + } + ], + "name": "Cellar__AssetMismatch", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "name": "Cellar__DebtMismatch", - "type": "error" + "inputs": [ + { + "internalType": "address", + "name": "adaptor", + "type": "address" + } + ], + "name": "Cellar__CallToAdaptorNotAllowed", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxDeposit", - "type": "uint256" - } - ], - "name": "Cellar__DepositRestricted", - "type": "error" + "inputs": [], + "name": "Cellar__CallerNotAavePool", + "type": "error" }, { - "inputs": [], - "name": "Cellar__ExternalInitiator", - "type": "error" + "inputs": [], + "name": "Cellar__ContractNotShutdown", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "illiquidPosition", - "type": "address" - } - ], - "name": "Cellar__IlliquidWithdraw", - "type": "error" + "inputs": [], + "name": "Cellar__ContractShutdown", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assetsOwed", - "type": "uint256" - } - ], - "name": "Cellar__IncompleteWithdraw", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "position", + "type": "uint32" + } + ], + "name": "Cellar__DebtMismatch", + "type": "error" }, { - "inputs": [], - "name": "Cellar__InvalidFee", - "type": "error" + "inputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxDeposit", + "type": "uint256" + } + ], + "name": "Cellar__DepositRestricted", + "type": "error" }, { - "inputs": [], - "name": "Cellar__InvalidFeeCut", - "type": "error" + "inputs": [], + "name": "Cellar__ExternalInitiator", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "name": "Cellar__InvalidHoldingPosition", - "type": "error" + "inputs": [ + { + "internalType": "address", + "name": "illiquidPosition", + "type": "address" + } + ], + "name": "Cellar__IlliquidWithdraw", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "requested", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "Cellar__InvalidRebalanceDeviation", - "type": "error" + "inputs": [ + { + "internalType": "uint256", + "name": "assetsOwed", + "type": "uint256" + } + ], + "name": "Cellar__IncompleteWithdraw", + "type": "error" }, { - "inputs": [], - "name": "Cellar__InvalidShareLockPeriod", - "type": "error" + "inputs": [], + "name": "Cellar__InvalidFee", + "type": "error" }, { - "inputs": [ - { - "internalType": "address", - "name": "depositor", - "type": "address" - } - ], - "name": "Cellar__NotApprovedToDepositOnBehalf", - "type": "error" + "inputs": [], + "name": "Cellar__InvalidFeeCut", + "type": "error" }, { - "inputs": [], - "name": "Cellar__Paused", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "positionId", + "type": "uint32" + } + ], + "name": "Cellar__InvalidHoldingPosition", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "name": "Cellar__PositionAlreadyUsed", - "type": "error" + "inputs": [ + { + "internalType": "uint256", + "name": "requested", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "name": "Cellar__InvalidRebalanceDeviation", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPositions", - "type": "uint256" - } - ], - "name": "Cellar__PositionArrayFull", - "type": "error" + "inputs": [], + "name": "Cellar__InvalidShareLockPeriod", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "sharesRemaining", - "type": "uint256" - } - ], - "name": "Cellar__PositionNotEmpty", - "type": "error" + "inputs": [ + { + "internalType": "address", + "name": "depositor", + "type": "address" + } + ], + "name": "Cellar__NotApprovedToDepositOnBehalf", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "name": "Cellar__PositionNotInCatalogue", - "type": "error" + "inputs": [], + "name": "Cellar__Paused", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "name": "Cellar__PositionNotUsed", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "position", + "type": "uint32" + } + ], + "name": "Cellar__PositionAlreadyUsed", + "type": "error" }, { - "inputs": [], - "name": "Cellar__RemovingHoldingPosition", - "type": "error" + "inputs": [ + { + "internalType": "uint256", + "name": "maxPositions", + "type": "uint256" + } + ], + "name": "Cellar__PositionArrayFull", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "timeSharesAreUnlocked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "currentBlock", - "type": "uint256" - } - ], - "name": "Cellar__SharesAreLocked", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "position", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "sharesRemaining", + "type": "uint256" + } + ], + "name": "Cellar__PositionNotEmpty", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "Cellar__TotalAssetDeviatedOutsideRange", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "position", + "type": "uint32" + } + ], + "name": "Cellar__PositionNotInCatalogue", + "type": "error" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "current", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expected", - "type": "uint256" - } - ], - "name": "Cellar__TotalSharesMustRemainConstant", - "type": "error" + "inputs": [ + { + "internalType": "uint32", + "name": "position", + "type": "uint32" + } + ], + "name": "Cellar__PositionNotUsed", + "type": "error" }, { - "inputs": [], - "name": "Cellar__ZeroAssets", - "type": "error" + "inputs": [], + "name": "Cellar__RemovingHoldingPosition", + "type": "error" }, { - "inputs": [], - "name": "Cellar__ZeroShares", - "type": "error" + "inputs": [ + { + "internalType": "uint256", + "name": "timeSharesAreUnlocked", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "currentBlock", + "type": "uint256" + } + ], + "name": "Cellar__SharesAreLocked", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "adaptor", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "AdaptorCalled", - "type": "event" + "inputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "min", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "max", + "type": "uint256" + } + ], + "name": "Cellar__TotalAssetDeviatedOutsideRange", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "adaptor", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "inCatalogue", - "type": "bool" - } - ], - "name": "AdaptorCatalogueAltered", - "type": "event" + "inputs": [ + { + "internalType": "uint256", + "name": "current", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expected", + "type": "uint256" + } + ], + "name": "Cellar__TotalSharesMustRemainConstant", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" + "inputs": [], + "name": "Cellar__ZeroAssets", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" + "inputs": [], + "name": "Cellar__ZeroShares", + "type": "error" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "adaptor", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "AdaptorCalled", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "oldPlatformFee", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "newPlatformFee", - "type": "uint64" - } - ], - "name": "PlatformFeeChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "adaptor", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "inCatalogue", + "type": "bool" + } + ], + "name": "AdaptorCatalogueAltered", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "position", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "PositionAdded", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "inCatalogue", - "type": "bool" - } - ], - "name": "PositionCatalogueAltered", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "assets", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "position", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "PositionRemoved", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "newPosition1", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "newPosition2", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index1", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index2", - "type": "uint256" - } - ], - "name": "PositionSwapped", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "oldDeviation", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newDeviation", - "type": "uint256" - } - ], - "name": "RebalanceDeviationChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "oldPlatformFee", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "newPlatformFee", + "type": "uint64" + } + ], + "name": "PlatformFeeChanged", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "oldPeriod", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newPeriod", - "type": "uint256" - } - ], - "name": "ShareLockingPeriodChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "position", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "PositionAdded", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isShutdown", - "type": "bool" - } - ], - "name": "ShutdownChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "positionId", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "bool", + "name": "inCatalogue", + "type": "bool" + } + ], + "name": "PositionCatalogueAltered", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oldPayoutAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newPayoutAddress", - "type": "address" - } - ], - "name": "StrategistPayoutAddressChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "position", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "PositionRemoved", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "oldPlatformCut", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "newPlatformCut", - "type": "uint64" - } - ], - "name": "StrategistPlatformCutChanged", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "newPosition1", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint32", + "name": "newPosition2", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index1", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index2", + "type": "uint256" + } + ], + "name": "PositionSwapped", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldDeviation", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newDeviation", + "type": "uint256" + } + ], + "name": "RebalanceDeviationChanged", + "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "Withdraw", - "type": "event" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldPeriod", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newPeriod", + "type": "uint256" + } + ], + "name": "ShareLockingPeriodChanged", + "type": "event" }, { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isShutdown", + "type": "bool" + } + ], + "name": "ShutdownChanged", + "type": "event" }, { - "inputs": [], - "name": "GRAVITY_BRIDGE_REGISTRY_SLOT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldPayoutAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newPayoutAddress", + "type": "address" + } + ], + "name": "StrategistPayoutAddressChanged", + "type": "event" }, { - "inputs": [], - "name": "MAXIMUM_SHARE_LOCK_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "oldPlatformCut", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "newPlatformCut", + "type": "uint64" + } + ], + "name": "StrategistPlatformCutChanged", + "type": "event" }, { - "inputs": [], - "name": "MAX_FEE_CUT", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" }, { - "inputs": [], - "name": "MAX_PLATFORM_FEE", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "assets", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" }, { - "inputs": [], - "name": "MAX_POSITIONS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "MAX_REBALANCE_DEVIATION", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "GRAVITY_BRIDGE_REGISTRY_SLOT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "MINIMUM_SHARE_LOCK_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "MAXIMUM_SHARE_LOCK_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "PRICE_ROUTER_REGISTRY_SLOT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "MAX_FEE_CUT", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "aavePool", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "MAX_PLATFORM_FEE", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "adaptorCatalogue", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "MAX_POSITIONS", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - } - ], - "name": "addAdaptorToCatalogue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "MAX_REBALANCE_DEVIATION", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "index", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "configurationData", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "name": "addPosition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "MINIMUM_SHARE_LOCK_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "name": "addPositionToCatalogue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "PRICE_ROUTER_REGISTRY_SLOT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "aavePool", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "allowedRebalanceDeviation", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "adaptorCatalogue", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "adaptor", + "type": "address" + } + ], + "name": "addAdaptorToCatalogue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "asset", - "outputs": [ - { - "internalType": "contract ERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "positionId", + "type": "uint32" + }, + { + "internalType": "bytes", + "name": "configurationData", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "inDebtArray", + "type": "bool" + } + ], + "name": "addPosition", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "positionId", + "type": "uint32" + } + ], + "name": "addPositionToCatalogue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "blockExternalReceiver", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "bool", - "name": "checkTotalAssets", - "type": "bool" - } - ], - "name": "cachePriceRouter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "allowedRebalanceDeviation", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "components": [ + "inputs": [ { - "internalType": "address", - "name": "adaptor", - "type": "address" + "internalType": "address", + "name": "spender", + "type": "address" }, { - "internalType": "bytes[]", - "name": "callData", - "type": "bytes[]" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } - ], - "internalType": "struct Cellar.AdaptorCall[]", - "name": "data", - "type": "tuple[]" - } - ], - "name": "callOnAdaptor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "convertToAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "asset", + "outputs": [ + { + "internalType": "contract ERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "convertToShares", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "creditPositions", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "debtPositions", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "deposit", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "assets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "premiums", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "initiator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "name": "executeOperation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "feeData", - "outputs": [ - { - "internalType": "uint64", - "name": "strategistPlatformCut", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "platformFee", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastAccrual", - "type": "uint64" - }, - { - "internalType": "address", - "name": "strategistPayoutAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "index", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "name": "forcePositionOut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getCreditPositions", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDebtPositions", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPositionAssets", - "outputs": [ - { - "internalType": "contract ERC20[]", - "name": "assets", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "getPositionData", - "outputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - }, - { - "internalType": "bool", - "name": "isDebt", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "adaptorData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "configurationData", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "holdingPosition", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ignorePause", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initiateShutdown", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isPaused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "isPositionUsed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isShutdown", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "liftShutdown", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "locked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "maxDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "maxMint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "maxRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "maxWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "blockExternalReceiver", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "bool", + "name": "checkTotalAssets", + "type": "bool" + }, + { + "internalType": "uint16", + "name": "allowableRange", + "type": "uint16" + } + ], + "name": "cachePriceRouter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "adaptor", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "callData", + "type": "bytes[]" + } + ], + "internalType": "struct Cellar.AdaptorCall[]", + "name": "data", + "type": "tuple[]" + } + ], + "name": "callOnAdaptor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "name": "convertToAssets", + "outputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + } + ], + "name": "convertToShares", + "outputs": [ + { + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "creditPositions", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "debtPositions", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "positionCatalogue", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "previewDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "deposit", + "outputs": [ + { + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "previewMint", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address[]", + "name": "assets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "premiums", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "initiator", + "type": "address" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "executeOperation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "previewRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "feeData", + "outputs": [ + { + "internalType": "uint64", + "name": "strategistPlatformCut", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "platformFee", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastAccrual", + "type": "uint64" + }, + { + "internalType": "address", + "name": "strategistPayoutAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "name": "previewWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "index", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "positionId", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "inDebtArray", + "type": "bool" + } + ], + "name": "forcePositionOut", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "priceRouter", - "outputs": [ - { - "internalType": "contract PriceRouter", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "getCreditPositions", + "outputs": [ + { + "internalType": "uint32[]", + "name": "", + "type": "uint32[]" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "getDebtPositions", + "outputs": [ + { + "internalType": "uint32[]", + "name": "", + "type": "uint32[]" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract Registry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "getPositionAssets", + "outputs": [ + { + "internalType": "contract ERC20[]", + "name": "assets", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - } - ], - "name": "removeAdaptorFromCatalogue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "getPositionData", + "outputs": [ + { + "internalType": "address", + "name": "adaptor", + "type": "address" + }, + { + "internalType": "bool", + "name": "isDebt", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "adaptorData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "configurationData", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "index", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "name": "removePosition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "holdingPosition", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "name": "removePositionFromCatalogue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "ignorePause", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "name": "setHoldingPosition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "newDeviation", - "type": "uint256" - } - ], - "name": "setRebalanceDeviation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "initiateShutdown", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "newLock", - "type": "uint256" - } - ], - "name": "setShareLockPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "isPaused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "payout", - "type": "address" - } - ], - "name": "setStrategistPayoutAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "isPositionUsed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint64", - "name": "cut", - "type": "uint64" - } - ], - "name": "setStrategistPlatformCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "isShutdown", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "shareLockPeriod", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "liftShutdown", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "index1", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "index2", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "name": "swapPositions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "locked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "maxDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "bool", - "name": "toggle", - "type": "bool" - } - ], - "name": "toggleIgnorePause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "maxMint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "totalAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "maxRedeem", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "totalAssetsWithdrawable", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "maxWithdraw", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "uint256", + "name": "shares", + "type": "uint256" + }, + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "assets", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "bytes[]", + "name": "data", + "type": "bytes[]" + } + ], + "name": "multicall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userShareLockStartTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "viewPositionBalances", - "outputs": [ - { - "internalType": "contract ERC20[]", - "name": "assets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "balances", - "type": "uint256[]" - }, - { - "internalType": "bool[]", - "name": "isDebt", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function" + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x6001600b55610100604052670a688906bd8b0000608052662386f26fc1000060a052600060c081905260e052601480546001600160c01b0319166e2386f26fc100000a688906bd8b0000179055601580546001600160a01b03191690556202a300601755660110d9316ec000601955601a8054747d2768de32b0b80b7a3454c06bdac94a69ddc7a900610100600160a81b0319909116179055348015620000a557600080fd5b5060405162006fc938038062006fc9833981016040819052620000c89162000d47565b604051635c9fcd8560e11b8152600060048201526001600160a01b0386169063b93f9b0a90602401602060405180830381865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000134919062000e04565b848484601282828260006200014a848262000eb3565b50600162000159838262000eb3565b506002805460ff191660ff8316179055466006556200017762000495565b6007555050600980546001600160a01b039687166001600160a01b031991821617909155600a805496881696909116861790555050604051600092507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091508290a3506016805462010000600160b01b031916620100006001600160a01b0388811682029290921792839055604051635c9fcd8560e11b8152600260048201529204169063b93f9b0a90602401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000e04565b600c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600080600080600085806020019051810190620002ac9190620010cc565b60ff169450945094509450945060005b85518163ffffffff1610156200036b57620002ff868263ffffffff1681518110620002eb57620002eb62001198565b60200260200101516200053160201b60201c565b6200035881878363ffffffff16815181106200031f576200031f62001198565b6020026020010151868463ffffffff168151811062000342576200034262001198565b60200260200101516000620005f760201b60201c565b6200036381620011c4565b9050620002bc565b5060005b84518163ffffffff1610156200040a576200039e858263ffffffff1681518110620002eb57620002eb62001198565b620003f781868363ffffffff1681518110620003be57620003be62001198565b6020026020010151858463ffffffff1681518110620003e157620003e162001198565b60200260200101516001620005f760201b60201c565b6200040281620011c4565b90506200036f565b508451156200041e576200041e81620008d8565b505060148054600160801b600160c01b031916600160801b426001600160401b03160217905550508151600091506200046190602090840181019084016200120f565b5050601580546001600160a01b0319166001600160a01b039290921691909117905550620014c99950505050505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620004c9919062001313565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b1580156200058057600080fd5b505afa15801562000595573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f910160405180910390a150565b63ffffffff83166000908152600f602052604090205460ff16156200063c5760405163335894fb60e11b815263ffffffff841660048201526024015b60405180910390fd5b63ffffffff831660009081526012602052604090205460ff166200067c57604051631f9db01d60e31b815263ffffffff8416600482015260240162000633565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015620006d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000700919081019062001391565b925092509250831515821515146200073457604051632b1d0bd360e11b815263ffffffff8716600482015260240162000633565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190620007b0908262000eb3565b5060608201516002820190620007c7908262000eb3565b5090505081156200081d57600e54601011620007fa5760405163f025236d60e01b81526010600482015260240162000633565b620008178787600e620009e660201b62002aa7179092919060201c565b62000862565b600d54601011620008455760405163f025236d60e01b81526010600482015260240162000633565b620008628787600d620009e660201b62002aa7179092919060201c565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90620008c79088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b63ffffffff81166000908152600f602052604090205460ff1662000918576040516370abe85960e01b815263ffffffff8216600482015260240162000633565b6009546001600160a01b03166200092f8262000bc3565b6001600160a01b03161462000982576009546001600160a01b0316620009558262000bc3565b60405163298473c760e11b81526001600160a01b0392831660048201529116602482015260440162000633565b63ffffffff8116600090815260106020526040902054600160a01b900460ff1615620009ca57604051630a42c0f960e41b815263ffffffff8216600482015260240162000633565b6011805463ffffffff191663ffffffff92909216919091179055565b8254801562000b82578380620009fe60018462001400565b8154811062000a115762000a1162001198565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a909204909316021790559062000a75908362001400565b90505b8363ffffffff1681111562000b2c578462000a9560018362001400565b8154811062000aa85762000aa862001198565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1685828154811062000ae35762000ae362001198565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550808062000b23906200141c565b91505062000a78565b5081848463ffffffff168154811062000b495762000b4962001198565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555062000bbd565b83546001810185556000858152602090206008820401805460079092166004026101000a63ffffffff81810219909316928516029190911790555b50505050565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf9162000c0d916001019060040162001436565b602060405180830381865afa15801562000c2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c51919062000e04565b9392505050565b6001600160a01b038116811462000c6e57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000cb25762000cb262000c71565b604052919050565b600082601f83011262000ccc57600080fd5b81516001600160401b0381111562000ce85762000ce862000c71565b602062000cfe601f8301601f1916820162000c87565b828152858284870101111562000d1357600080fd5b60005b8381101562000d3357858101830151828201840152820162000d16565b506000928101909101919091529392505050565b600080600080600060a0868803121562000d6057600080fd5b855162000d6d8162000c58565b602087015190955062000d808162000c58565b60408701519094506001600160401b038082111562000d9e57600080fd5b62000dac89838a0162000cba565b9450606088015191508082111562000dc357600080fd5b62000dd189838a0162000cba565b9350608088015191508082111562000de857600080fd5b5062000df78882890162000cba565b9150509295509295909350565b60006020828403121562000e1757600080fd5b815162000c518162000c58565b600181811c9082168062000e3957607f821691505b60208210810362000e5a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000eae57600081815260208120601f850160051c8101602086101562000e895750805b601f850160051c820191505b8181101562000eaa5782815560010162000e95565b5050505b505050565b81516001600160401b0381111562000ecf5762000ecf62000c71565b62000ee78162000ee0845462000e24565b8462000e60565b602080601f83116001811462000f1f576000841562000f065750858301515b600019600386901b1c1916600185901b17855562000eaa565b600085815260208120601f198616915b8281101562000f505788860151825594840194600190910190840162000f2f565b508582101562000f6f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001600160401b0382111562000f9b5762000f9b62000c71565b5060051b60200190565b600082601f83011262000fb757600080fd5b8151602062000fd062000fca8362000f7f565b62000c87565b82815260059290921b8401810191818101908684111562000ff057600080fd5b8286015b848110156200102157805163ffffffff81168114620010135760008081fd5b835291830191830162000ff4565b509695505050505050565b600082601f8301126200103e57600080fd5b815160206200105162000fca8362000f7f565b82815260059290921b840181019181810190868411156200107157600080fd5b8286015b84811015620010215780516001600160401b03811115620010965760008081fd5b620010a68986838b010162000cba565b84525091830191830162001075565b805160ff81168114620010c757600080fd5b919050565b600080600080600060a08688031215620010e557600080fd5b85516001600160401b0380821115620010fd57600080fd5b6200110b89838a0162000fa5565b965060208801519150808211156200112257600080fd5b6200113089838a0162000fa5565b955060408801519150808211156200114757600080fd5b6200115589838a016200102c565b945060608801519150808211156200116c57600080fd5b506200117b888289016200102c565b9250506200118c60808701620010b5565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103620011e057620011e0620011ae565b6001019392505050565b8051620010c78162000c58565b80516001600160801b0381168114620010c757600080fd5b600080600080600080600080610100898b0312156200122d57600080fd5b88516001600160401b03808211156200124557600080fd5b620012538c838d0162000fa5565b995060208b01519150808211156200126a57600080fd5b620012788c838d0162000fa5565b985060408b01519150808211156200128f57600080fd5b6200129d8c838d016200102c565b975060608b0151915080821115620012b457600080fd5b50620012c38b828c016200102c565b955050620012d460808a01620010b5565b9350620012e460a08a01620011ea565b9250620012f460c08a01620011f7565b91506200130460e08a01620011f7565b90509295985092959890939650565b6000808354620013238162000e24565b600182811680156200133e5760018114620013545762001385565b60ff198416875282151583028701945062001385565b8760005260208060002060005b858110156200137c5781548a82015290840190820162001361565b50505082870194505b50929695505050505050565b600080600060608486031215620013a757600080fd5b8351620013b48162000c58565b60208501519093508015158114620013cb57600080fd5b60408501519092506001600160401b03811115620013e857600080fd5b620013f68682870162000cba565b9150509250925092565b81810381811115620014165762001416620011ae565b92915050565b6000816200142e576200142e620011ae565b506000190190565b60006020808352600084546200144c8162000e24565b808487015260406001808416600081146200147057600181146200148b57620014bb565b60ff1985168984015283151560051b890183019550620014bb565b896000528660002060005b85811015620014b35781548b820186015290830190880162001496565b8a0184019650505b509398975050505050505050565b615af080620014d96000396000f3fe608060405234801561001057600080fd5b50600436106104a05760003560e01c80637ecebe001161026d578063ba08765211610151578063d505accf116100ce578063e753e60011610092578063e753e60014610aab578063ebe3c32814610b20578063eef33eca14610b33578063ef8b30f714610b42578063f2fde38b14610b55578063f7b24e0814610b6857600080fd5b8063d505accf14610a34578063d7d4bf4514610a47578063d905777e14610a5a578063dd62ed3e14610a6d578063e1b1acb714610a9857600080fd5b8063cbdf33d011610115578063cbdf33d0146109da578063cd82f8b1146109fd578063ce96cb7714610a05578063cf30901214610a18578063d1e8840414610a2157600080fd5b8063ba0876521461099e578063bf86d690146109b1578063c244245a146109be578063c63d75b614610695578063c6e6f592146109c757600080fd5b80639fdb11b6116101ea578063ac9650d8116101ae578063ac9650d814610937578063b0a75d361461094a578063b187bd261461095d578063b3d7f6b914610965578063b460af9414610978578063b5292a991461098b57600080fd5b80639fdb11b6146108e8578063a03e4bc3146108f1578063a07bee0b14610909578063a8144e481461091c578063a9059cbb1461092457600080fd5b806395d89b411161023157806395d89b41146108985780639955a9d4146108a05780639959af94146108b35780639c552ca8146108c55780639c5f00c2146108d857600080fd5b80637ecebe001461081c5780638da5cb5b1461083c578063920f5c841461084f57806393bbeac01461086257806394bf804d1461088557600080fd5b80633d8ab1e5116103945780635e2c576e116103115780636ff1c02a116102d55780636ff1c02a1461079257806370a08231146107a157806371e99dc2146107c15780637384504f146107c957806378e0233e146107ec5780637b1039991461080357600080fd5b80635e2c576e146107315780635f6b88a014610739578063687c2b501461074c5780636925ba2c1461076c5780636e553f651461077f57600080fd5b80634e84befe116103585780634e84befe146106c8578063501eb4fe146106db578063530a3714146106ee57806359d20b4e146107015780635a400d251461072957600080fd5b80633d8ab1e51461066d5780633e3382ba14610680578063402d267d146106955780634c4602da146106a85780634cdad506146106b557600080fd5b8063150b7a021161042257806333e15be2116103e657806333e15be2146105ed5780633644e51514610600578063379e0b131461060857806338d52e0f1461061b5780633998a6811461064657600080fd5b8063150b7a021461056357806318160ddd1461058f57806318d4c1431461059857806323b872dd146105bb578063313ce567146105ce57600080fd5b806307a2d13a1161046957806307a2d13a146104fd578063087ed83714610510578063095ea7b3146105255780630a28a477146105485780630a680e181461055b57600080fd5b806251a3b7146104a557806301e1d114146104c15780630402ab63146104c957806306fdde03146104d35780630780fd3a146104e8575b600080fd5b6104ae61012c81565b6040519081526020015b60405180910390f35b6104ae610b70565b6104ae6202a30081565b6104db610bb4565b6040516104b891906149be565b6104fb6104f63660046149ea565b610c42565b005b6104ae61050b366004614a05565b610c78565b610518610c91565b6040516104b89190614a62565b610538610533366004614a8a565b610d66565b60405190151581526020016104b8565b6104ae610556366004614a05565b610dd2565b6104fb610df0565b610576610571366004614ba1565b610e68565b6040516001600160e01b031990911681526020016104b8565b6104ae60035481565b6105386105a6366004614c0c565b60136020526000908152604090205460ff1681565b6105386105c9366004614c29565b610e79565b6002546105db9060ff1681565b60405160ff90911681526020016104b8565b6104fb6105fb366004614c78565b610e8f565b6104ae610f92565b6104fb610616366004614caf565b610fac565b60095461062e906001600160a01b031681565b6040516001600160a01b0390911681526020016104b8565b6106556702c68af0bb14000081565b6040516001600160401b0390911681526020016104b8565b6104fb61067b366004614c0c565b611284565b610688611374565b6040516104b89190614cf6565b6104ae6106a3366004614c0c565b6113f8565b601a546105389060ff1681565b6104ae6106c3366004614a05565b611417565b6104fb6106d6366004614d63565b61142e565b6104fb6106e93660046149ea565b611726565b6104fb6106fc366004614a05565b611759565b61071461070f366004614a05565b611803565b60405163ffffffff90911681526020016104b8565b6104ae600281565b6104fb61183d565b6104fb610747366004614c0c565b6118c5565b6104ae61075a366004614c0c565b60186020526000908152604090205481565b6104fb61077a366004614ed4565b611946565b6104ae61078d366004614ef1565b611a89565b61065567016345785d8a000081565b6104ae6107af366004614c0c565b60046020526000908152604090205481565b610688611b03565b6107dc6107d73660046149ea565b611b60565b6040516104b89493929190614f16565b6107f4611ca9565b6040516104b893929190614f8f565b60165461062e906201000090046001600160a01b031681565b6104ae61082a366004614c0c565b60086020526000908152604090205481565b600a5461062e906001600160a01b031681565b61053861085d366004615045565b611f6f565b610538610870366004614a05565b600f6020526000908152604090205460ff1681565b6104ae610893366004614ef1565b612178565b6104db6121e6565b6104fb6108ae366004615149565b6121f3565b60165461053890610100900460ff1681565b6104fb6108d3366004614a05565b612231565b6011546107149063ffffffff1681565b6104ae60175481565b601a5461062e9061010090046001600160a01b031681565b6104fb610917366004614caf565b6122c9565b6104ae612303565b610538610932366004614a8a565b612339565b6104fb6109453660046151b9565b61234e565b6104fb610958366004614c0c565b6123d0565b610538612463565b6104ae610973366004614a05565b6124ec565b6104ae6109863660046151fa565b612503565b6104fb610999366004615231565b61255e565b6104ae6109ac3660046151fa565b612624565b6016546105389060ff1681565b6104ae60195481565b6104ae6109d5366004614a05565b612693565b6105386109e83660046149ea565b60126020526000908152604090205460ff1681565b6104ae600081565b6104ae610a13366004614c0c565b6126a6565b6104ae600b5481565b6104fb610a2f3660046149ea565b6126d5565b6104fb610a42366004615269565b612753565b600c5461062e906001600160a01b031681565b6104ae610a68366004614c0c565b612997565b6104ae610a7b3660046152da565b600560209081526000928352604080842090915290825290205481565b610714610aa6366004614a05565b6129c6565b601454601554610ae7916001600160401b0380821692680100000000000000008304821692600160801b9004909116906001600160a01b031684565b604080516001600160401b039586168152938516602085015291909316908201526001600160a01b0390911660608201526080016104b8565b6104fb610b2e366004614ed4565b6129d6565b610655670de0b6b3a764000081565b6104ae610b50366004614a05565b612a1a565b6104fb610b63366004614c0c565b612a31565b6104ae601081565b6000610b7a612c6c565b600b54600114610ba55760405162461bcd60e51b8152600401610b9c90615308565b60405180910390fd5b610baf6000612d0c565b905090565b60008054610bc19061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed9061532c565b8015610c3a5780601f10610c0f57610100808354040283529160200191610c3a565b820191906000526020600020905b815481529060010190602001808311610c1d57829003601f168201915b505050505081565b600a546001600160a01b03163314610c6c5760405162461bcd60e51b8152600401610b9c90615366565b610c7581613198565b50565b6000610c8b82610c86610b70565b61329c565b92915050565b600d546060906001600160401b03811115610cae57610cae614ab6565b604051908082528060200260200182016040528015610cd7578160200160208202803683370190505b50905060005b600d54811015610d6257610d28600d8281548110610cfd57610cfd61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1661333c565b828281518110610d3a57610d3a61538c565b6001600160a01b0390921660209283029190910190910152610d5b816153b8565b9050610cdd565b5090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a350600192915050565b600080610ddd610b70565b9050610de983826133c5565b9392505050565b600a546001600160a01b03163314610e1a5760405162461bcd60e51b8152600401610b9c90615366565b610e22613454565b6016805460ff191660019081179091556040519081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c906020015b60405180910390a1565b630a85bd0160e11b5b949350505050565b6000610e8484613478565b610e718484846134d7565b600a546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b9c90615366565b600081610f0457600d8363ffffffff1681548110610ed957610ed961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16610f44565b600e8363ffffffff1681548110610f1d57610f1d61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff165b90506000610f51826135b7565b90508015610f8157604051631c7b946d60e31b815263ffffffff8316600482015260248101829052604401610b9c565b610f8c848385613640565b50505050565b60006006544614610fa557610baf613725565b5060075490565b600a546001600160a01b03163314610fd65760405162461bcd60e51b8152600401610b9c90615366565b600080821561110857600e8463ffffffff1681548110610ff857610ff861538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600e8563ffffffff16815481106110395761103961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600e8763ffffffff168154811061107c5761107c61538c565b9060005260206000209060089182820401919006600402600e8863ffffffff16815481106110ac576110ac61538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff160217905550505061122d565b600d8463ffffffff16815481106111215761112161538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600d8563ffffffff16815481106111625761116261538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600d8763ffffffff16815481106111a5576111a561538c565b9060005260206000209060089182820401919006600402600d8863ffffffff16815481106111d5576111d561538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff16021790555050505b6040805163ffffffff84811682528381166020830152878116828401528616606082015290517fb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a9181900360800190a15050505050565b600a546001600160a01b031633146112ae5760405162461bcd60e51b8152600401610b9c90615366565b601654604051636777140560e11b81526001600160a01b038381166004830152620100009092049091169063ceee280a9060240160006040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506001600160a01b038116600081815260136020908152604091829020805460ff191660019081179091558251938452908301527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a91015b60405180910390a150565b6060600e8054806020026020016040519081016040528092919081815260200182805480156113ee57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116113b15790505b5050505050905090565b60165460009060ff161561140e57506000919050565b50600019919050565b600080611422610b70565b9050610de9838261329c565b600a546001600160a01b031633146114585760405162461bcd60e51b8152600401610b9c90615366565b600b5460011461147a5760405162461bcd60e51b8152600401610b9c90615308565b6002600b55611487613454565b61148f612c6c565b601a805460ff1916600117905560008080806114aa81612d0c565b90506114d5601954670de0b6b3a76400006114c591906153d1565b8290670de0b6b3a76400006137bf565b93506114f0601954670de0b6b3a76400006114c591906153e4565b925060035491505060005b84518160ff161015611695576000858260ff168151811061151e5761151e61538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661157357604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b868360ff168151811061158b5761158b61538c565b602002602001015160200151518160ff161015611682576115fa878460ff16815181106115ba576115ba61538c565b6020026020010151602001518260ff16815181106115da576115da61538c565b6020026020010151836001600160a01b03166137ed90919063ffffffff16565b507f7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf48382888560ff16815181106116325761163261538c565b6020026020010151602001518360ff16815181106116525761165261538c565b60200260200101516040516116689291906153f7565b60405180910390a18061167a8161541b565b915050611576565b50508061168e9061541b565b90506114fb565b5060006116a26000612d0c565b9050838110806116b157508281115b156116e05760405163628cc47560e11b8152600481018290526024810185905260448101849052606401610b9c565b600354821461171057600354604051632b40145960e21b8152600481019190915260248101839052604401610b9c565b5050601a805460ff1916905550506001600b5550565b600a546001600160a01b031633146117505760405162461bcd60e51b8152600401610b9c90615366565b610c7581613812565b600a546001600160a01b031633146117835760405162461bcd60e51b8152600401610b9c90615366565b67016345785d8a00008111156117bd576040516302d2a90f60e51b81526004810182905267016345785d8a00006024820152604401610b9c565b601980549082905560408051828152602081018490527fdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff91015b60405180910390a15050565b600d818154811061181357600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b600a546001600160a01b031633146118675760405162461bcd60e51b8152600401610b9c90615366565b60165460ff1661188a5760405163ec7165bf60e01b815260040160405180910390fd5b6016805460ff19169055604051600081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c90602001610e5e565b600a546001600160a01b031633146118ef5760405162461bcd60e51b8152600401610b9c90615366565b6001600160a01b0381166000818152601360209081526040808320805460ff191690558051938452908301919091527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a9101611369565b600a546001600160a01b031633146119705760405162461bcd60e51b8152600401610b9c90615366565b60008082156119a9576000611983610b70565b90506119948161251c6127106138d0565b92506119a5816129046127106138d0565b9150505b601654604051635c9fcd8560e11b815260026004820152620100009091046001600160a01b03169063b93f9b0a90602401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b919061543a565b600c80546001600160a01b0319166001600160a01b03929092169190911790556000611a45610b70565b90508315610f8c5782811080611a5a57508181115b15610f8c5760405163628cc47560e11b8152600481018290526024810184905260448101839052606401610b9c565b6000600b54600114611aad5760405162461bcd60e51b8152600401610b9c90615308565b6002600b556000611abd81612d0c565b9050611ac984826138ef565b915081600003611aec5760405163426f153760e11b815260040160405180910390fd5b611af7848385613906565b506001600b5592915050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156113ee576000918252602091829020805463ffffffff1684529082028301929091600491018084116113b15790505050505050905090565b601060205260009081526040902080546001820180546001600160a01b03831693600160a01b90930460ff16929190611b989061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc49061532c565b8015611c115780601f10611be657610100808354040283529160200191611c11565b820191906000526020600020905b815481529060010190602001808311611bf457829003601f168201915b505050505090806002018054611c269061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c529061532c565b8015611c9f5780601f10611c7457610100808354040283529160200191611c9f565b820191906000526020600020905b815481529060010190602001808311611c8257829003601f168201915b5050505050905084565b600d54600e546060918291829190611cc181836153e4565b6001600160401b03811115611cd857611cd8614ab6565b604051908082528060200260200182016040528015611d01578160200160208202803683370190505b509450611d0e81836153e4565b6001600160401b03811115611d2557611d25614ab6565b604051908082528060200260200182016040528015611d4e578160200160208202803683370190505b509350611d5b81836153e4565b6001600160401b03811115611d7257611d72614ab6565b604051908082528060200260200182016040528015611d9b578160200160208202803683370190505b50925060005b82811015611e8457611dbf600d8281548110610cfd57610cfd61538c565b868281518110611dd157611dd161538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e32600d8281548110611e0757611e0761538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166135b7565b858281518110611e4457611e4461538c565b6020026020010181815250506000848281518110611e6457611e6461538c565b91151560209283029190910190910152611e7d816153b8565b9050611da1565b5060005b81811015611f6757611ea6600e8281548110610cfd57610cfd61538c565b600d548790611eb590846153e4565b81518110611ec557611ec561538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611efb600e8281548110611e0757611e0761538c565b600d548690611f0a90846153e4565b81518110611f1a57611f1a61538c565b6020908102919091010152600d546001908590611f3790846153e4565b81518110611f4757611f4761538c565b91151560209283029190910190910152611f60816153b8565b9050611e88565b505050909192565b60006001600160a01b0384163014611f9a576040516304a246dd60e51b815260040160405180910390fd5b601a5461010090046001600160a01b03163314611fca576040516349456ad960e01b815260040160405180910390fd5b6000611fd883850185614d63565b905060005b81518160ff1610156120c2576000828260ff16815181106120005761200061538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661205557604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b838360ff168151811061206d5761206d61538c565b602002602001015160200151518160ff1610156120af5761209c848460ff16815181106115ba576115ba61538c565b50806120a78161541b565b915050612058565b5050806120bb9061541b565b9050611fdd565b5060005b8881101561216657601a546121569061010090046001600160a01b03168989848181106120f5576120f561538c565b905060200201358c8c8581811061210e5761210e61538c565b9050602002013561211f91906153e4565b8e8e858181106121315761213161538c565b90506020020160208101906121469190614c0c565b6001600160a01b03169190613984565b61215f816153b8565b90506120c6565b5060019b9a5050505050505050505050565b6000600b5460011461219c5760405162461bcd60e51b8152600401610b9c90615308565b6002600b5560006121ac81612d0c565b90506121b884826139fb565b9150816000036121db57604051639768300560e01b815260040160405180910390fd5b611af7828585613906565b60018054610bc19061532c565b600a546001600160a01b0316331461221d5760405162461bcd60e51b8152600401610b9c90615366565b612225613454565b610f8c84848484613a12565b600a546001600160a01b0316331461225b5760405162461bcd60e51b8152600401610b9c90615366565b61012c81108061226d57506202a30081115b1561228b57604051633a60233f60e21b815260040160405180910390fd5b601780549082905560408051828152602081018490527f227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f2491016117f7565b600a546001600160a01b031633146122f35760405162461bcd60e51b8152600401610b9c90615366565b6122fe838383613640565b505050565b600061230d612c6c565b600b5460011461232f5760405162461bcd60e51b8152600401610b9c90615308565b610baf6001612d0c565b600061234433613478565b610de98383613cb9565b60005b818110156122fe576123bd83838381811061236e5761236e61538c565b90506020028101906123809190615457565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525030939250506137ed9050565b50806123c8816153b8565b915050612351565b600a546001600160a01b031633146123fa5760405162461bcd60e51b8152600401610b9c90615366565b601554604080516001600160a01b03928316815291831660208301527f51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d910160405180910390a1601580546001600160a01b0319166001600160a01b0392909216919091179055565b601654600090610100900460ff166124e657601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa1580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf919061549d565b50600090565b6000806124f7610b70565b9050610de983826139fb565b6000600b546001146125275760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061253781612d0c565b905061254385826133c5565b915061255185838686613d1f565b506001600b559392505050565b600a546001600160a01b031633146125885760405162461bcd60e51b8152600401610b9c90615366565b670de0b6b3a76400006001600160401b03821611156125ba57604051633d0203e560e01b815260040160405180910390fd5b601454604080516001600160401b03928316815291831660208301527fb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868910160405180910390a16014805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000600b546001146126485760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061265881612d0c565b9050612664858261329c565b91508160000361268757604051639768300560e01b815260040160405180910390fd5b61255182868686613d1f565b6000610c8b826126a1610b70565b6138ef565b6000600b546001146126ca5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826000613df8565b600a546001600160a01b031633146126ff5760405162461bcd60e51b8152600401610b9c90615366565b63ffffffff81166000818152601260209081526040808320805460ff191690558051938452908301919091527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b428410156127a35760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610b9c565b600060016127af610f92565b6001600160a01b038a811660008181526008602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156128bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906128f15750876001600160a01b0316816001600160a01b0316145b61292e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610b9c565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000600b546001146129bb5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826001613df8565b600e818154811061181357600080fd5b600a546001600160a01b03163314612a005760405162461bcd60e51b8152600401610b9c90615366565b601680549115156101000261ff0019909216919091179055565b600080612a25610b70565b9050610de983826138ef565b600a546001600160a01b03163314612a5b5760405162461bcd60e51b8152600401610b9c90615366565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b82548015612c2b578380612abc6001846153d1565b81548110612acc57612acc61538c565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a9092049093160217905590612b2e90836153d1565b90505b8363ffffffff16811115612bd95784612b4b6001836153d1565b81548110612b5b57612b5b61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16858281548110612b9357612b9361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508080612bd1906154ba565b915050612b31565b5081848463ffffffff1681548110612bf357612bf361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550610f8c565b508254600181018455600093845260209093206008840401805460079094166004026101000a63ffffffff8181021990951692909416939093021790915550565b601654610100900460ff16612d0a57601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa158015612cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cec919061549d565b15612d0a57604051630f301f8f60e41b815260040160405180910390fd5b565b600d5460009081816001600160401b03811115612d2b57612d2b614ab6565b604051908082528060200260200182016040528015612d54578160200160208202803683370190505b5090506000826001600160401b03811115612d7157612d71614ab6565b604051908082528060200260200182016040528015612d9a578160200160208202803683370190505b5090508415612eeb5760005b83811015612e6b576000600d8281548110612dc357612dc361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612df481613eba565b838381518110612e0657612e0661538c565b6020026020010181815250600003612e1e5750612e5b565b612e278161333c565b848381518110612e3957612e3961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b612e64816153b8565b9050612da6565b50600c5460095460405163b333a17560e01b81526001600160a01b039283169263b333a17592612ea3928792879216906004016154d1565b602060405180830381865afa158015612ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee4919061550f565b9350613190565b600e546000816001600160401b03811115612f0857612f08614ab6565b604051908082528060200260200182016040528015612f31578160200160208202803683370190505b5090506000826001600160401b03811115612f4e57612f4e614ab6565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b50905060005b86811015613042576000600d8281548110612f9a57612f9a61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612fcb816135b7565b868381518110612fdd57612fdd61538c565b6020026020010181815250600003612ff55750613032565b612ffe8161333c565b8783815181106130105761301061538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b61303b816153b8565b9050612f7d565b5060005b8381101561310b576000600e82815481106130635761306361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050613094816135b7565b8383815181106130a6576130a661538c565b60200260200101818152506000036130be57506130fb565b6130c78161333c565b8483815181106130d9576130d961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b613104816153b8565b9050613046565b50600c54600954604051637563738b60e11b81526001600160a01b039283169263eac6e71692613149928a928a928992899290911690600401615528565b602060405180830381865afa158015613166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318a919061550f565b96505050505b505050919050565b63ffffffff81166000908152600f602052604090205460ff166131d6576040516370abe85960e01b815263ffffffff82166004820152602401610b9c565b6009546001600160a01b03166131eb8261333c565b6001600160a01b03161461323a576009546001600160a01b031661320e8261333c565b60405163298473c760e11b81526001600160a01b03928316600482015291166024820152604401610b9c565b63ffffffff8116600090815260106020526040902054600160a01b900460ff161561328057604051630a42c0f960e41b815263ffffffff82166004820152602401610b9c565b6011805463ffffffff191663ffffffff92909216919091179055565b60035460009080156132b8576132b38484836138d0565b610e71565b610e716012600960009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133349190615590565b869190613f74565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf91613384916001019060040161562a565b602060405180830381865afa1580156133a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061543a565b60035460009080156133dc576132b38482856137bf565b6009546040805163313ce56760e01b81529051610e71926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015613427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344b9190615590565b85906012613f74565b60165460ff1615612d0a576040516337a5332d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205480156134d3576000601754826134a791906153e4565b9050428111156122fe576040516306f8ee3f60e21b815260048101829052426024820152604401610b9c565b5050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146135335761350e83826153d1565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260408120805485929061355b9084906153d1565b90915550506001600160a01b0380851660008181526004602052604090819020805487019055519091871690600080516020615a9b833981519152906135a49087815260200190565b60405180910390a3506001949350505050565b63ffffffff811660009081526010602052604080822080549151637841536560e01b81526001600160a01b039092169182916378415365916135ff916001019060040161562a565b602060405180830381865afa15801561361c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061550f565b60115463ffffffff9081169083160361366c576040516319ded73160e21b815260040160405180910390fd5b80156136825761367d600e84613fdd565b61368d565b61368d600d84613fdd565b63ffffffff82166000908152600f60209081526040808320805460ff191690556010909152812080546001600160a81b0319168155906136d06001830182614924565b6136de600283016000614924565b50506040805163ffffffff8085168252851660208201527fa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51910160405180910390a1505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051613757919061563d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8282028115158415858304851417166137d757600080fd5b6001826001830304018115150290509392505050565b6060610de98383604051806060016040528060278152602001615a7460279139614122565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b15801561386057600080fd5b505afa158015613874573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b8282028115158415858304851417166138e857600080fd5b0492915050565b60035460009080156133dc576132b38482856138d0565b61391183838361419a565b600954613929906001600160a01b0316333086614282565b613933818361430c565b60408051848152602081018490526001600160a01b0383169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a36122fe838383614366565b600060405163095ea7b360e01b8152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610f8c5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610b9c565b60035460009080156132b8576132b38484836137bf565b63ffffffff83166000908152600f602052604090205460ff1615613a515760405163335894fb60e11b815263ffffffff84166004820152602401610b9c565b63ffffffff831660009081526012602052604090205460ff16613a8f57604051631f9db01d60e31b815263ffffffff84166004820152602401610b9c565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015613ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b1091908101906156b3565b92509250925083151582151514613b4257604051632b1d0bd360e11b815263ffffffff87166004820152602401610b9c565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190613bbc90826157a0565b5060608201516002820190613bd190826157a0565b509050508115613c1257600e54601011613c015760405163f025236d60e01b815260106004820152602401610b9c565b613c0d600e8888612aa7565b613c44565b600d54601011613c385760405163f025236d60e01b815260106004820152602401610b9c565b613c44600d8888612aa7565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90613ca89088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b33600090815260046020526040812080548391908390613cda9084906153d1565b90915550506001600160a01b03831660008181526004602052604090819020805485019055513390600080516020615a9b83398151915290610dc19086815260200190565b613d2b84848484614397565b336001600160a01b03821614613d99576001600160a01b03811660009081526005602090815260408083203384529091529020546000198114613d9757613d7284826153d1565b6001600160a01b03831660009081526005602090815260408083203384529091529020555b505b613da381846143a8565b60408051858152602081018590526001600160a01b03808416929085169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4610f8c848361440a565b6000613e02612c6c565b6001600160a01b0383166000908152601860205260409020548015613e4857600060175482613e3191906153e4565b905042811115613e4657600092505050610c8b565b505b6000613e546000612d0c565b6001600160a01b03861660009081526004602052604081205491925090613e7b908361329c565b90506000613e896001612d0c565b905080821115613e995780613e9b565b815b94508515613eb057613ead85846138ef565b94505b5050505092915050565b63ffffffff8116600090815260106020526040812054600160a01b900460ff1615613ee757506000919050565b63ffffffff82166000908152601060205260409081902080549151637d2872e960e11b81526001600160a01b039092169163fa50e5d291613f339160018201916002019060040161585f565b602060405180830381865afa158015613f50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b919061550f565b60008160ff168360ff1603613f8a575082610de9565b8160ff168360ff161015613fbe57613fa2838361588d565b613fad90600a61598a565b613fb79085615999565b9050610de9565b613fc8828461588d565b613fd390600a61598a565b613fb790856159b8565b815463ffffffff8216811161402a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610b9c565b63ffffffff82165b61403d6001836153d1565b8110156140de57836140508260016153e4565b815481106140605761406061538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff168482815481106140985761409861538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555080806140d6906153b8565b915050614032565b50828054806140ef576140ef6159da565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055505050565b6060600080856001600160a01b03168560405161413f91906159f0565b600060405180830381855af49150503d806000811461417a576040519150601f19603f3d011682016040523d82523d6000602084013e61417f565b606091505b5091509150614190868383876147a5565b9695505050505050565b6141a2613454565b6141aa612c6c565b336001600160a01b0382161461424a57601654604051635551e1b560e01b8152336004820152620100009091046001600160a01b031690635551e1b590602401602060405180830381865afa158015614207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422b919061549d565b61424a576040516334871f2560e21b8152336004820152602401610b9c565b6000614255826113f8565b905080841115610f8c57604051632d21eb8760e21b81526004810185905260248101829052604401610b9c565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806143055760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606401610b9c565b5050505050565b806003600082825461431e91906153e4565b90915550506001600160a01b038216600081815260046020908152604080832080548601905551848152600080516020615a9b83398151915291015b60405180910390a35050565b6011546143799063ffffffff168461481e565b6001600160a01b031660009081526018602052604090204290555050565b61439f612c6c565b610f8c81613478565b6001600160a01b038216600090815260046020526040812080548392906143d09084906153d1565b90915550506003805482900390556040518181526000906001600160a01b03841690600080516020615a9b8339815191529060200161435a565b6144356040518060800160405280600081526020016000815260200160008152602001600081525090565b600c54600954604051630226614760e01b81526001600160a01b039182166004820152911690630226614790602401602060405180830381865afa158015614481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a5919061550f565b604080830191909152600954815163313ce56760e01b815291516001600160a01b039091169163313ce5679160048083019260209291908290030181865afa1580156144f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145199190615590565b61452490600a61598a565b6060820152600d5460005b81811015614782576000600d828154811061454c5761454c61538c565b60009182526020822060088204015460079091166004026101000a900463ffffffff16915061457a82613eba565b90508060000361458b575050614772565b60006145968361333c565b600c54604051630226614760e01b81526001600160a01b038084166004830152929350911690630226614790602401602060405180830381865afa1580156145e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614606919061550f565b866000018181525050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561464d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146719190615590565b61467c90600a61598a565b60208701819052865160009182916146a7916146a087670de0b6b3a7640000615999565b91906138d0565b90506146c688606001518960400151836138d09092919063ffffffff16565b91506146da670de0b6b3a7640000836159b8565b91505060008982111561474057600061470a89604001518a606001518d670de0b6b3a76400006146a09190615999565b60208a01518a51919250614720918391906138d0565b9150614734670de0b6b3a7640000836159b8565b915060009a505061474f565b508261474c828b6153d1565b99505b61475a85828b6148ab565b8960000361476c575050505050614782565b50505050505b61477b816153b8565b905061452f565b508315610f8c5760405163cc5ea39b60e01b815260048101859052602401610b9c565b6060831561481457825160000361480d576001600160a01b0385163b61480d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9c565b5081610e71565b610e7183836148fa565b63ffffffff821660009081526010602052604090819020805491516001600160a01b0390921691610f8c916369445c3160e01b91614869918691600182019160020190602401615a0c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038316906137ed565b63ffffffff831660009081526010602052604090819020805491516001600160a01b03909216916143059163c9111bd760e01b9161486991879187916001810191600290910190602401615a37565b81511561490a5781518083602001fd5b8060405162461bcd60e51b8152600401610b9c91906149be565b5080546149309061532c565b6000825580601f10614940575050565b601f016020900490600052602060002090810190610c7591905b80821115610d62576000815560010161495a565b60005b83811015614989578181015183820152602001614971565b50506000910152565b600081518084526149aa81602086016020860161496e565b601f01601f19169290920160200192915050565b602081526000610de96020830184614992565b803563ffffffff811681146149e557600080fd5b919050565b6000602082840312156149fc57600080fd5b610de9826149d1565b600060208284031215614a1757600080fd5b5035919050565b600081518084526020808501945080840160005b83811015614a575781516001600160a01b031687529582019590820190600101614a32565b509495945050505050565b602081526000610de96020830184614a1e565b6001600160a01b0381168114610c7557600080fd5b60008060408385031215614a9d57600080fd5b8235614aa881614a75565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614aee57614aee614ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1c57614b1c614ab6565b604052919050565b60006001600160401b03821115614b3d57614b3d614ab6565b50601f01601f191660200190565b600082601f830112614b5c57600080fd5b8135614b6f614b6a82614b24565b614af4565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614bb757600080fd5b8435614bc281614a75565b93506020850135614bd281614a75565b92506040850135915060608501356001600160401b03811115614bf457600080fd5b614c0087828801614b4b565b91505092959194509250565b600060208284031215614c1e57600080fd5b8135610de981614a75565b600080600060608486031215614c3e57600080fd5b8335614c4981614a75565b92506020840135614c5981614a75565b929592945050506040919091013590565b8015158114610c7557600080fd5b60008060408385031215614c8b57600080fd5b614c94836149d1565b91506020830135614ca481614c6a565b809150509250929050565b600080600060608486031215614cc457600080fd5b614ccd846149d1565b9250614cdb602085016149d1565b91506040840135614ceb81614c6a565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015614d3457835163ffffffff1683529284019291840191600101614d12565b50909695505050505050565b60006001600160401b03821115614d5957614d59614ab6565b5060051b60200190565b600060208284031215614d7557600080fd5b6001600160401b038083351115614d8b57600080fd5b8235830184601f820112614d9e57600080fd5b614dab614b6a8235614d40565b81358082526020808301929160051b84010187811115614dca57600080fd5b602084015b81811015614ec7578581351115614de557600080fd5b803585016040818b03601f19011215614dfd57600080fd5b614e05614acc565b6020820135614e1381614a75565b8152604082013588811115614e2757600080fd5b8083019250508a603f830112614e3c57600080fd5b6020820135614e4d614b6a82614d40565b81815260059190911b83016040019060208101908d831115614e6e57600080fd5b604085015b83811015614ea7578b81351115614e8957600080fd5b614e998f60408335890101614b4b565b835260209283019201614e73565b508060208501525050508086525050602084019350602081019050614dcf565b5090979650505050505050565b600060208284031215614ee657600080fd5b8135610de981614c6a565b60008060408385031215614f0457600080fd5b823591506020830135614ca481614a75565b6001600160a01b03851681528315156020820152608060408201819052600090614f4290830185614992565b8281036060840152614f548185614992565b979650505050505050565b600081518084526020808501945080840160005b83811015614a5757815187529582019590820190600101614f73565b606081526000614fa26060830186614a1e565b602083820381850152614fb58287614f5f565b8481036040860152855180825282870193509082019060005b81811015614fec578451151583529383019391830191600101614fce565b509098975050505050505050565b60008083601f84011261500c57600080fd5b5081356001600160401b0381111561502357600080fd5b6020830191508360208260051b850101111561503e57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561506357600080fd5b89356001600160401b038082111561507a57600080fd5b6150868d838e01614ffa565b909b50995060208c013591508082111561509f57600080fd5b6150ab8d838e01614ffa565b909950975060408c01359150808211156150c457600080fd5b6150d08d838e01614ffa565b909750955060608c013591506150e582614a75565b90935060808b013590808211156150fb57600080fd5b818c0191508c601f83011261510f57600080fd5b81358181111561511e57600080fd5b8d602082850101111561513057600080fd5b6020830194508093505050509295985092959850929598565b6000806000806080858703121561515f57600080fd5b615168856149d1565b9350615176602086016149d1565b925060408501356001600160401b0381111561519157600080fd5b61519d87828801614b4b565b92505060608501356151ae81614c6a565b939692955090935050565b600080602083850312156151cc57600080fd5b82356001600160401b038111156151e257600080fd5b6151ee85828601614ffa565b90969095509350505050565b60008060006060848603121561520f57600080fd5b83359250602084013561522181614a75565b91506040840135614ceb81614a75565b60006020828403121561524357600080fd5b81356001600160401b0381168114610de957600080fd5b60ff81168114610c7557600080fd5b600080600080600080600060e0888a03121561528457600080fd5b873561528f81614a75565b9650602088013561529f81614a75565b9550604088013594506060880135935060808801356152bd8161525a565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156152ed57600080fd5b82356152f881614a75565b91506020830135614ca481614a75565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b600181811c9082168061534057607f821691505b60208210810361536057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016153ca576153ca6153a2565b5060010190565b81810381811115610c8b57610c8b6153a2565b80820180821115610c8b57610c8b6153a2565b6001600160a01b0383168152604060208201819052600090610e7190830184614992565b600060ff821660ff8103615431576154316153a2565b60010192915050565b60006020828403121561544c57600080fd5b8151610de981614a75565b6000808335601e1984360301811261546e57600080fd5b8301803591506001600160401b0382111561548857600080fd5b60200191503681900382131561503e57600080fd5b6000602082840312156154af57600080fd5b8151610de981614c6a565b6000816154c9576154c96153a2565b506000190190565b6060815260006154e46060830186614a1e565b82810360208401526154f68186614f5f565b91505060018060a01b0383166040830152949350505050565b60006020828403121561552157600080fd5b5051919050565b60a08152600061553b60a0830188614a1e565b828103602084015261554d8188614f5f565b905082810360408401526155618187614a1e565b905082810360608401526155758186614f5f565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156155a257600080fd5b8151610de98161525a565b600081546155ba8161532c565b8085526020600183811680156155d757600181146155f15761561f565b60ff1985168884015283151560051b88018301955061561f565b866000528260002060005b858110156156175781548a82018601529083019084016155fc565b890184019650505b505050505092915050565b602081526000610de960208301846155ad565b600080835461564b8161532c565b600182811680156156635760018114615678576156a7565b60ff19841687528215158302870194506156a7565b8760005260208060002060005b8581101561569e5781548a820152908401908201615685565b50505082870194505b50929695505050505050565b6000806000606084860312156156c857600080fd5b83516156d381614a75565b60208501519093506156e481614c6a565b60408501519092506001600160401b0381111561570057600080fd5b8401601f8101861361571157600080fd5b805161571f614b6a82614b24565b81815287602083850101111561573457600080fd5b61574582602083016020860161496e565b8093505050509250925092565b601f8211156122fe57600081815260208120601f850160051c810160208610156157795750805b601f850160051c820191505b8181101561579857828155600101615785565b505050505050565b81516001600160401b038111156157b9576157b9614ab6565b6157cd816157c7845461532c565b84615752565b602080601f83116001811461580257600084156157ea5750858301515b600019600386901b1c1916600185901b178555615798565b600085815260208120601f198616915b8281101561583157888601518255948401946001909101908401615812565b508582101561584f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061587260408301856155ad565b828103602084015261588481856155ad565b95945050505050565b60ff8281168282160390811115610c8b57610c8b6153a2565b600181815b808511156158e15781600019048211156158c7576158c76153a2565b808516156158d457918102915b93841c93908002906158ab565b509250929050565b6000826158f857506001610c8b565b8161590557506000610c8b565b816001811461591b576002811461592557615941565b6001915050610c8b565b60ff841115615936576159366153a2565b50506001821b610c8b565b5060208310610133831016604e8410600b8410161715615964575081810a610c8b565b61596e83836158a6565b8060001904821115615982576159826153a2565b029392505050565b6000610de960ff8416836158e9565b60008160001904831182151516156159b3576159b36153a2565b500290565b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008251615a0281846020870161496e565b9190910192915050565b838152606060208201526000615a2560608301856155ad565b828103604084015261419081856155ad565b8481526001600160a01b0384166020820152608060408201819052600090615a61908301856155ad565b8281036060840152614f5481856155ad56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dd287b48397cc723182f481f545c67e54374e23ca920649697588f2a1afd3d964736f6c63430008100033", - "sourceMap": "1648:1:41:-:0;1624:25;;17289:174;806:60136;17289:174;17334:7;806:60136;17289:174;17368:7;17289:174;;-1:-1:-1;17289:174:41;;;;;;17256:207;;;-1:-1:-1;;;;;;17256:207:41;;;;;;;;-1:-1:-1;;;;;;17256:207:41;;;26580:6;26734:58;;50573:9;50530:52;;54636:68;;;;-1:-1:-1;;;;;;54636:68:41;;;;;;22778:1954;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22977:50;;-1:-1:-1;;;22977:50:41;;21109:1;22977:50;;;2460:25:98;-1:-1:-1;;;;;22977:20:41;;;;;2433:18:98;;22977:50:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22943:6;22951:5;22958:7;22967:2;22951:5;22958:7;22967:2;2064:4:45;:12;22951:5:41;2064:4:45;:12;:::i;:::-;-1:-1:-1;2086:6:45;:16;2095:7;2086:6;:16;:::i;:::-;-1:-1:-1;2112:8:45;:20;;-1:-1:-1;;2112:20:45;;;;;;;2162:13;2143:16;:32;2212:24;:22;:24::i;:::-;2185;:51;-1:-1:-1;;1306:5:46::1;:14:::0;;-1:-1:-1;;;;;1306:14:46;;::::1;-1:-1:-1::0;;;;;;1306:14:46;;::::1;;::::0;;;1045:5:25;:14;;;;;;;;;;;;;-1:-1:-1;;1075:40:25;;1306:5:46::1;::::0;-1:-1:-1;1075:40:25;;-1:-1:-1;1306:5:46;;1075:40:25;-1:-1:-1;23039:8:41::2;:20:::0;;-1:-1:-1;;;;;;23039:20:41::2;::::0;-1:-1:-1;;;;;23039:20:41;;::::2;::::0;::::2;::::0;;;::::2;::::0;;;;23095:47:::2;::::0;-1:-1:-1;;;23095:47:41;;23039:8:::2;23095:47;::::0;::::2;2460:25:98::0;23095:8:41;::::2;;::::0;:19:::2;::::0;2433:18:98;;23095:47:41::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23069:11;;:74;;;;;-1:-1:-1::0;;;;;23069:74:41::2;;;;;-1:-1:-1::0;;;;;23069:74:41::2;;;;;;23186:32;23236:30:::0;23284:39:::2;23341:37:::0;23396:23:::2;23447:6;23436:65;;;;;;;;;;;;:::i;:::-;23168:333;;;;;;;;;;;;23558:8;23553:216;23572:16;:23;23568:1;:27;;;23553:216;;;23620:44;23644:16;23661:1;23644:19;;;;;;;;;;:::i;:::-;;;;;;;23620:23;;;:44;;:::i;:::-;23682:72;23695:1;23698:16;23715:1;23698:19;;;;;;;;;;:::i;:::-;;;;;;;23719:24;23744:1;23719:27;;;;;;;;;;:::i;:::-;;;;;;;23748:5;23682:12;;;:72;;:::i;:::-;23597:3;::::0;::::2;:::i;:::-;;;23553:216;;;;23787:8;23782:207;23801:14;:21;23797:1;:25;;;23782:207;;;23847:42;23871:14;23886:1;23871:17;;;;;;;;;;:::i;23847:42::-;23907:67;23920:1;23923:14;23938:1;23923:17;;;;;;;;;;:::i;:::-;;;;;;;23942:22;23965:1;23942:25;;;;;;;;;;:::i;:::-;;;;;;;23969:4;23907:12;;;:67;;:::i;:::-;23824:3;::::0;::::2;:::i;:::-;;;23782:207;;;-1:-1:-1::0;24172:23:41;;:27;24168:70:::2;;24201:37;24221:16:::0;24201:19:::2;:37::i;:::-;-1:-1:-1::0;;24437:7:41::2;:45:::0;;-1:-1:-1;;;;;;;;24437:45:41::2;-1:-1:-1::0;;;24466:15:41::2;-1:-1:-1::0;;;;;24437:45:41::2;;;::::0;;-1:-1:-1;;24537:126:41;;-1:-1:-1;;;24537:126:41::2;::::0;::::2;::::0;;;;;;;::::2;;:::i;:::-;-1:-1:-1::0;;24674:31:41;:51;;-1:-1:-1;;;;;;24674:51:41::2;-1:-1:-1::0;;;;;24674:51:41;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;806:60136:41;;-1:-1:-1;;;;;;;;;;806:60136:41;5480:446:45;5545:7;5642:95;5775:4;5759:22;;;;;;:::i;:::-;;;;;;;;;;5610:295;;;11978:25:98;;;;12019:18;;12012:34;;;;5803:14:45;12062:18:98;;;12055:34;5839:13:45;12105:18:98;;;12098:34;5882:4:45;12148:19:98;;;12141:61;11950:19;;5610:295:45;;;;;;;;;;;;5583:336;;;;;;5564:355;;5480:446;:::o;8994:290:41:-;9125:8;;:49;;-1:-1:-1;;;9125:49:41;;12387:10:98;12375:23;;9125:49:41;;;12357:42:98;9125:8:41;;;;-1:-1:-1;;;;;9125:8:41;;:37;;12330:18:98;;9125:49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9184:29:41;;;;;;;:17;:29;;;;;;;;;:36;;-1:-1:-1;;9184:36:41;9216:4;9184:36;;;;;;9235:42;;12576::98;;;12634:18;;;12627:50;9235:42:41;;12549:18:98;9235:42:41;;;;;;;8994:290;:::o;10922:1552::-;11102:26;;;;;;;:14;:26;;;;;;;;11098:78;;;11137:39;;-1:-1:-1;;;11137:39:41;;12387:10:98;12375:23;;11137:39:41;;;12357:42:98;12330:18;;11137:39:41;;;;;;;;11098:78;11251:29;;;;;;;:17;:29;;;;;;;;11246:85;;11289:42;;-1:-1:-1;;;11289:42:41;;12387:10:98;12375:23;;11289:42:41;;;12357::98;12330:18;;11289:42:41;12213:192:98;11246:85:41;11515:8;;:40;;-1:-1:-1;;;11515:40:41;;12387:10:98;12375:23;;11515:40:41;;;12357:42:98;11457:15:41;;;;;;11515:8;;;-1:-1:-1;;;;;11515:8:41;;:28;;12330:18:98;;11515:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11515:40:41;;;;;;;;;;;;:::i;:::-;11456:99;;;;;;11580:11;11570:21;;:6;:21;;;11566:66;;11600:32;;-1:-1:-1;;;11600:32:41;;12387:10:98;12375:23;;11600:32:41;;;12357:42:98;12330:18;;11600:32:41;12213:192:98;11566:66:41;11726:179;;;;;;;;-1:-1:-1;;;;;11726:179:41;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:27;;;-1:-1:-1;11696:27:41;;;:15;:27;;;;;;:209;;;;;;;;-1:-1:-1;;;11696:209:41;-1:-1:-1;;;;;;11696:209:41;;;;;;;;;;;;;;11726:179;;11696:27;:209;;;;;;;;:::i;:::-;-1:-1:-1;11696:209:41;;;;;;;;;;;;:::i;:::-;;;;;11920:6;11916:460;;;11946:13;:20;7600:2;-1:-1:-1;11942:90:41;;11992:40;;-1:-1:-1;;;11992:40:41;;7600:2;11992:40;;;2460:25:98;2433:18;;11992:40:41;2314:177:98;11942:90:41;12100:36;12118:5;12125:10;12100:13;:17;;;;;;:36;;;;;:::i;:::-;11916:460;;;12171:15;:22;7600:2;-1:-1:-1;12167:92:41;;12219:40;;-1:-1:-1;;;12219:40:41;;7600:2;12219:40;;;2460:25:98;2433:18;;12219:40:41;2314:177:98;12167:92:41;12327:38;12347:5;12354:10;12327:15;:19;;;;;;:38;;;;;:::i;:::-;12386:26;;;;;;;:14;:26;;;;;;;:33;;-1:-1:-1;;12386:33:41;12415:4;12386:33;;;12435:32;;;;;12401:10;;12461:5;;14865:10:98;14902:15;;;14884:34;;14954:15;;14949:2;14934:18;;14927:43;14843:2;14828:18;;14684:292;12435:32:41;;;;;;;;11036:1438;;;10922:1552;;;;:::o;7943:406::-;8015:26;;;;;;;:14;:26;;;;;;;;8010:75;;8050:35;;-1:-1:-1;;;8050:35:41;;12387:10:98;12375:23;;8050:35:41;;;12357:42:98;12330:18;;8050:35:41;12213:192:98;8010:75:41;8123:5;;-1:-1:-1;;;;;8123:5:41;8099:20;8108:10;8099:8;:20::i;:::-;-1:-1:-1;;;;;8099:29:41;;8095:110;;8167:5;;-1:-1:-1;;;;;8167:5:41;8183:20;8192:10;8183:8;:20::i;:::-;8137:68;;-1:-1:-1;;;8137:68:41;;-1:-1:-1;;;;;15211:15:98;;;8137:68:41;;;15193:34:98;15263:15;;15243:18;;;15236:43;15128:18;;8137:68:41;14981:304:98;8095:110:41;8219:27;;;;;;;:15;:27;;;;;:34;-1:-1:-1;;;8219:34:41;;;;8215:89;;;8262:42;;-1:-1:-1;;;8262:42:41;;12387:10:98;12375:23;;8262:42:41;;;12357::98;12330:18;;8262:42:41;12213:192:98;8215:89:41;8314:15;:28;;-1:-1:-1;;8314:28:41;;;;;;;;;;;;7943:406::o;493:384:97:-;621:12;;648:7;;644:227;;671:5;;688:7;694:1;688:3;:7;:::i;:::-;682:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;671:26;;;;;;;;;;;;;;;;;;;;;;682:14;;;671:26;;;;;682:14;671:26;;;;;;;;;;682:14;;;;;;;;;;;;;;671:26;;;;682:14;729:7;;:3;:7;:::i;:::-;717:19;;712:65;742:5;738:9;;:1;:9;712:65;;;765:5;771;775:1;771;:5;:::i;:::-;765:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:5;760:1;754:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;749:3;;;;;:::i;:::-;;;;712:65;;;;807:5;792;798;792:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;644:227;;;843:17;;;;;;;-1:-1:-1;843:17:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:227;597:280;493:384;;;:::o;59476:217:41:-;59569:25;;;59534:5;59569:25;;;:15;:25;;;;;;:33;;59619:67;;-1:-1:-1;;;59619:67:41;;-1:-1:-1;;;;;59569:33:41;;;;;;59619:28;;:67;;59569:33;59648:37;;59619:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;59612:74;59476:217;-1:-1:-1;;;59476:217:41:o;14:141:98:-;-1:-1:-1;;;;;99:31:98;;89:42;;79:70;;145:1;142;135:12;79:70;14:141;:::o;160:127::-;221:10;216:3;212:20;209:1;202:31;252:4;249:1;242:15;276:4;273:1;266:15;292:275;363:2;357:9;428:2;409:13;;-1:-1:-1;;405:27:98;393:40;;-1:-1:-1;;;;;448:34:98;;484:22;;;445:62;442:88;;;510:18;;:::i;:::-;546:2;539:22;292:275;;-1:-1:-1;292:275:98:o;572:650::-;626:5;679:3;672:4;664:6;660:17;656:27;646:55;;697:1;694;687:12;646:55;720:13;;-1:-1:-1;;;;;745:26:98;;742:52;;;774:18;;:::i;:::-;813:4;841:53;884:2;865:13;;-1:-1:-1;;861:27:98;857:36;;841:53;:::i;:::-;919:2;910:7;903:19;963:3;958:2;953;945:6;941:15;937:24;934:33;931:53;;;980:1;977;970:12;931:53;1002:1;1012:134;1026:2;1023:1;1020:9;1012:134;;;1115:14;;;1111:23;;1105:30;1083:15;;;1079:24;;1072:64;1037:10;;1012:134;;;-1:-1:-1;1189:1:98;1166:16;;;1162:25;;;1155:36;;;;1170:7;572:650;-1:-1:-1;;;572:650:98:o;1227:1082::-;1395:6;1403;1411;1419;1427;1480:3;1468:9;1459:7;1455:23;1451:33;1448:53;;;1497:1;1494;1487:12;1448:53;1529:9;1523:16;1548:41;1583:5;1548:41;:::i;:::-;1658:2;1643:18;;1637:25;1608:5;;-1:-1:-1;1671:43:98;1637:25;1671:43;:::i;:::-;1784:2;1769:18;;1763:25;1733:7;;-1:-1:-1;;;;;;1837:14:98;;;1834:34;;;1864:1;1861;1854:12;1834:34;1887:61;1940:7;1931:6;1920:9;1916:22;1887:61;:::i;:::-;1877:71;;1994:2;1983:9;1979:18;1973:25;1957:41;;2023:2;2013:8;2010:16;2007:36;;;2039:1;2036;2029:12;2007:36;2062:63;2117:7;2106:8;2095:9;2091:24;2062:63;:::i;:::-;2052:73;;2171:3;2160:9;2156:19;2150:26;2134:42;;2201:2;2191:8;2188:16;2185:36;;;2217:1;2214;2207:12;2185:36;;2240:63;2295:7;2284:8;2273:9;2269:24;2240:63;:::i;:::-;2230:73;;;1227:1082;;;;;;;;:::o;2496:261::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2667:9;2661:16;2686:41;2721:5;2686:41;:::i;2762:380::-;2841:1;2837:12;;;;2884;;;2905:61;;2959:4;2951:6;2947:17;2937:27;;2905:61;3012:2;3004:6;3001:14;2981:18;2978:38;2975:161;;3058:10;3053:3;3049:20;3046:1;3039:31;3093:4;3090:1;3083:15;3121:4;3118:1;3111:15;2975:161;;2762:380;;;:::o;3273:545::-;3375:2;3370:3;3367:11;3364:448;;;3411:1;3436:5;3432:2;3425:17;3481:4;3477:2;3467:19;3551:2;3539:10;3535:19;3532:1;3528:27;3522:4;3518:38;3587:4;3575:10;3572:20;3569:47;;;-1:-1:-1;3610:4:98;3569:47;3665:2;3660:3;3656:12;3653:1;3649:20;3643:4;3639:31;3629:41;;3720:82;3738:2;3731:5;3728:13;3720:82;;;3783:17;;;3764:1;3753:13;3720:82;;;3724:3;;;3364:448;3273:545;;;:::o;3994:1352::-;4114:10;;-1:-1:-1;;;;;4136:30:98;;4133:56;;;4169:18;;:::i;:::-;4198:97;4288:6;4248:38;4280:4;4274:11;4248:38;:::i;:::-;4242:4;4198:97;:::i;:::-;4350:4;;4414:2;4403:14;;4431:1;4426:663;;;;5133:1;5150:6;5147:89;;;-1:-1:-1;5202:19:98;;;5196:26;5147:89;-1:-1:-1;;3951:1:98;3947:11;;;3943:24;3939:29;3929:40;3975:1;3971:11;;;3926:57;5249:81;;4396:944;;4426:663;3220:1;3213:14;;;3257:4;3244:18;;-1:-1:-1;;4462:20:98;;;4580:236;4594:7;4591:1;4588:14;4580:236;;;4683:19;;;4677:26;4662:42;;4775:27;;;;4743:1;4731:14;;;;4610:19;;4580:236;;;4584:3;4844:6;4835:7;4832:19;4829:201;;;4905:19;;;4899:26;-1:-1:-1;;4988:1:98;4984:14;;;5000:3;4980:24;4976:37;4972:42;4957:58;4942:74;;4829:201;-1:-1:-1;;;;;5076:1:98;5060:14;;;5056:22;5043:36;;-1:-1:-1;3994:1352:98:o;5351:182::-;5410:4;-1:-1:-1;;;;;5432:30:98;;5429:56;;;5465:18;;:::i;:::-;-1:-1:-1;5510:1:98;5506:14;5522:4;5502:25;;5351:182::o;5538:832::-;5602:5;5655:3;5648:4;5640:6;5636:17;5632:27;5622:55;;5673:1;5670;5663:12;5622:55;5702:6;5696:13;5728:4;5752:59;5768:42;5807:2;5768:42;:::i;:::-;5752:59;:::i;:::-;5845:15;;;5931:1;5927:10;;;;5915:23;;5911:32;;;5876:12;;;;5955:15;;;5952:35;;;5983:1;5980;5973:12;5952:35;6019:2;6011:6;6007:15;6031:310;6047:6;6042:3;6039:15;6031:310;;;6120:3;6114:10;6168;6161:5;6157:22;6150:5;6147:33;6137:131;;6222:1;6251:2;6247;6240:14;6137:131;6281:18;;6319:12;;;;6064;;6031:310;;;-1:-1:-1;6359:5:98;5538:832;-1:-1:-1;;;;;;5538:832:98:o;6375:894::-;6438:5;6491:3;6484:4;6476:6;6472:17;6468:27;6458:55;;6509:1;6506;6499:12;6458:55;6538:6;6532:13;6564:4;6588:59;6604:42;6643:2;6604:42;:::i;6588:59::-;6681:15;;;6767:1;6763:10;;;;6751:23;;6747:32;;;6712:12;;;;6791:15;;;6788:35;;;6819:1;6816;6809:12;6788:35;6855:2;6847:6;6843:15;6867:373;6883:6;6878:3;6875:15;6867:373;;;6956:10;;-1:-1:-1;;;;;6982:35:98;;6979:125;;;7058:1;7087:2;7083;7076:14;6979:125;7129:68;7193:3;7188:2;7174:11;7166:6;7162:24;7158:33;7129:68;:::i;:::-;7117:81;;-1:-1:-1;7218:12:98;;;;6900;;6867:373;;7274:160;7351:13;;7404:4;7393:16;;7383:27;;7373:55;;7424:1;7421;7414:12;7373:55;7274:160;;;:::o;7439:1167::-;7659:6;7667;7675;7683;7691;7744:3;7732:9;7723:7;7719:23;7715:33;7712:53;;;7761:1;7758;7751:12;7712:53;7788:16;;-1:-1:-1;;;;;7853:14:98;;;7850:34;;;7880:1;7877;7870:12;7850:34;7903:71;7966:7;7957:6;7946:9;7942:22;7903:71;:::i;:::-;7893:81;;8020:2;8009:9;8005:18;7999:25;7983:41;;8049:2;8039:8;8036:16;8033:36;;;8065:1;8062;8055:12;8033:36;8088:73;8153:7;8142:8;8131:9;8127:24;8088:73;:::i;:::-;8078:83;;8207:2;8196:9;8192:18;8186:25;8170:41;;8236:2;8226:8;8223:16;8220:36;;;8252:1;8249;8242:12;8220:36;8275:72;8339:7;8328:8;8317:9;8313:24;8275:72;:::i;:::-;8265:82;;8393:2;8382:9;8378:18;8372:25;8356:41;;8422:2;8412:8;8409:16;8406:36;;;8438:1;8435;8428:12;8406:36;;8461:72;8525:7;8514:8;8503:9;8499:24;8461:72;:::i;:::-;8451:82;;;8552:48;8595:3;8584:9;8580:19;8552:48;:::i;:::-;8542:58;;7439:1167;;;;;;;;:::o;8611:127::-;8672:10;8667:3;8663:20;8660:1;8653:31;8703:4;8700:1;8693:15;8727:4;8724:1;8717:15;8743:127;8804:10;8799:3;8795:20;8792:1;8785:31;8835:4;8832:1;8825:15;8859:4;8856:1;8849:15;8875:201;8913:3;8941:10;8986:2;8979:5;8975:14;9013:2;9004:7;9001:15;8998:41;;9019:18;;:::i;:::-;9068:1;9055:15;;8875:201;-1:-1:-1;;;8875:201:98:o;9081:156::-;9168:13;;9190:41;9168:13;9190:41;:::i;9242:177::-;9321:13;;-1:-1:-1;;;;;9363:31:98;;9353:42;;9343:70;;9409:1;9406;9399:12;9424:1441;9679:6;9687;9695;9703;9711;9719;9727;9735;9788:3;9776:9;9767:7;9763:23;9759:33;9756:53;;;9805:1;9802;9795:12;9756:53;9832:16;;-1:-1:-1;;;;;9897:14:98;;;9894:34;;;9924:1;9921;9914:12;9894:34;9947:71;10010:7;10001:6;9990:9;9986:22;9947:71;:::i;:::-;9937:81;;10064:2;10053:9;10049:18;10043:25;10027:41;;10093:2;10083:8;10080:16;10077:36;;;10109:1;10106;10099:12;10077:36;10132:73;10197:7;10186:8;10175:9;10171:24;10132:73;:::i;:::-;10122:83;;10251:2;10240:9;10236:18;10230:25;10214:41;;10280:2;10270:8;10267:16;10264:36;;;10296:1;10293;10286:12;10264:36;10319:72;10383:7;10372:8;10361:9;10357:24;10319:72;:::i;:::-;10309:82;;10437:2;10426:9;10422:18;10416:25;10400:41;;10466:2;10456:8;10453:16;10450:36;;;10482:1;10479;10472:12;10450:36;;10505:72;10569:7;10558:8;10547:9;10543:24;10505:72;:::i;:::-;10495:82;;;10596:48;10639:3;10628:9;10624:19;10596:48;:::i;:::-;10586:58;;10663;10716:3;10705:9;10701:19;10663:58;:::i;:::-;10653:68;;10740:50;10785:3;10774:9;10770:19;10740:50;:::i;:::-;10730:60;;10809:50;10854:3;10843:9;10839:19;10809:50;:::i;:::-;10799:60;;9424:1441;;;;;;;;;;;:::o;10870:844::-;11000:3;11029:1;11062:6;11056:13;11092:36;11118:9;11092:36;:::i;:::-;11147:1;11164:18;;;11191:133;;;;11338:1;11333:356;;;;11157:532;;11191:133;-1:-1:-1;;11224:24:98;;11212:37;;11297:14;;11290:22;11278:35;;11269:45;;;-1:-1:-1;11191:133:98;;11333:356;11364:6;11361:1;11354:17;11394:4;11439:2;11436:1;11426:16;11464:1;11478:165;11492:6;11489:1;11486:13;11478:165;;;11570:14;;11557:11;;;11550:35;11613:16;;;;11507:10;;11478:165;;;11482:3;;;11672:6;11667:3;11663:16;11656:23;;11157:532;-1:-1:-1;11705:3:98;;10870:844;-1:-1:-1;;;;;;10870:844:98:o;12688:636::-;12782:6;12790;12798;12851:2;12839:9;12830:7;12826:23;12822:32;12819:52;;;12867:1;12864;12857:12;12819:52;12899:9;12893:16;12918:41;12953:5;12918:41;:::i;:::-;13028:2;13013:18;;13007:25;12978:5;;-1:-1:-1;13070:15:98;;13063:23;13051:36;;13041:64;;13101:1;13098;13091:12;13041:64;13175:2;13160:18;;13154:25;13124:7;;-1:-1:-1;;;;;;13191:30:98;;13188:50;;;13234:1;13231;13224:12;13188:50;13257:61;13310:7;13301:6;13290:9;13286:22;13257:61;:::i;:::-;13247:71;;;12688:636;;;;;:::o;15290:128::-;15357:9;;;15378:11;;;15375:37;;;15392:18;;:::i;:::-;15290:128;;;;:::o;15423:136::-;15462:3;15490:5;15480:39;;15499:18;;:::i;:::-;-1:-1:-1;;;15535:18:98;;15423:136::o;15564:961::-;15671:4;15700:2;15729;15718:9;15711:21;15752:1;15785:6;15779:13;15815:36;15841:9;15815:36;:::i;:::-;15887:6;15882:2;15871:9;15867:18;15860:34;15913:2;15934:1;15966:2;15955:9;15951:18;15983:1;15978:158;;;;16150:1;16145:354;;;;15944:555;;15978:158;-1:-1:-1;;16026:24:98;;16006:18;;;15999:52;16104:14;;16097:22;16094:1;16090:30;16075:46;;16071:55;;;-1:-1:-1;15978:158:98;;16145:354;16176:6;16173:1;16166:17;16224:2;16221:1;16211:16;16249:1;16263:180;16277:6;16274:1;16271:13;16263:180;;;16370:14;;16346:17;;;16342:26;;16335:50;16413:16;;;;16292:10;;16263:180;;;16467:17;;16463:26;;;-1:-1:-1;;15944:555:98;-1:-1:-1;16516:3:98;;15564:961;-1:-1:-1;;;;;;;;15564:961:98:o;16530:276::-;806:60136:41;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106104a05760003560e01c80637ecebe001161026d578063ba08765211610151578063d505accf116100ce578063e753e60011610092578063e753e60014610aab578063ebe3c32814610b20578063eef33eca14610b33578063ef8b30f714610b42578063f2fde38b14610b55578063f7b24e0814610b6857600080fd5b8063d505accf14610a34578063d7d4bf4514610a47578063d905777e14610a5a578063dd62ed3e14610a6d578063e1b1acb714610a9857600080fd5b8063cbdf33d011610115578063cbdf33d0146109da578063cd82f8b1146109fd578063ce96cb7714610a05578063cf30901214610a18578063d1e8840414610a2157600080fd5b8063ba0876521461099e578063bf86d690146109b1578063c244245a146109be578063c63d75b614610695578063c6e6f592146109c757600080fd5b80639fdb11b6116101ea578063ac9650d8116101ae578063ac9650d814610937578063b0a75d361461094a578063b187bd261461095d578063b3d7f6b914610965578063b460af9414610978578063b5292a991461098b57600080fd5b80639fdb11b6146108e8578063a03e4bc3146108f1578063a07bee0b14610909578063a8144e481461091c578063a9059cbb1461092457600080fd5b806395d89b411161023157806395d89b41146108985780639955a9d4146108a05780639959af94146108b35780639c552ca8146108c55780639c5f00c2146108d857600080fd5b80637ecebe001461081c5780638da5cb5b1461083c578063920f5c841461084f57806393bbeac01461086257806394bf804d1461088557600080fd5b80633d8ab1e5116103945780635e2c576e116103115780636ff1c02a116102d55780636ff1c02a1461079257806370a08231146107a157806371e99dc2146107c15780637384504f146107c957806378e0233e146107ec5780637b1039991461080357600080fd5b80635e2c576e146107315780635f6b88a014610739578063687c2b501461074c5780636925ba2c1461076c5780636e553f651461077f57600080fd5b80634e84befe116103585780634e84befe146106c8578063501eb4fe146106db578063530a3714146106ee57806359d20b4e146107015780635a400d251461072957600080fd5b80633d8ab1e51461066d5780633e3382ba14610680578063402d267d146106955780634c4602da146106a85780634cdad506146106b557600080fd5b8063150b7a021161042257806333e15be2116103e657806333e15be2146105ed5780633644e51514610600578063379e0b131461060857806338d52e0f1461061b5780633998a6811461064657600080fd5b8063150b7a021461056357806318160ddd1461058f57806318d4c1431461059857806323b872dd146105bb578063313ce567146105ce57600080fd5b806307a2d13a1161046957806307a2d13a146104fd578063087ed83714610510578063095ea7b3146105255780630a28a477146105485780630a680e181461055b57600080fd5b806251a3b7146104a557806301e1d114146104c15780630402ab63146104c957806306fdde03146104d35780630780fd3a146104e8575b600080fd5b6104ae61012c81565b6040519081526020015b60405180910390f35b6104ae610b70565b6104ae6202a30081565b6104db610bb4565b6040516104b891906149be565b6104fb6104f63660046149ea565b610c42565b005b6104ae61050b366004614a05565b610c78565b610518610c91565b6040516104b89190614a62565b610538610533366004614a8a565b610d66565b60405190151581526020016104b8565b6104ae610556366004614a05565b610dd2565b6104fb610df0565b610576610571366004614ba1565b610e68565b6040516001600160e01b031990911681526020016104b8565b6104ae60035481565b6105386105a6366004614c0c565b60136020526000908152604090205460ff1681565b6105386105c9366004614c29565b610e79565b6002546105db9060ff1681565b60405160ff90911681526020016104b8565b6104fb6105fb366004614c78565b610e8f565b6104ae610f92565b6104fb610616366004614caf565b610fac565b60095461062e906001600160a01b031681565b6040516001600160a01b0390911681526020016104b8565b6106556702c68af0bb14000081565b6040516001600160401b0390911681526020016104b8565b6104fb61067b366004614c0c565b611284565b610688611374565b6040516104b89190614cf6565b6104ae6106a3366004614c0c565b6113f8565b601a546105389060ff1681565b6104ae6106c3366004614a05565b611417565b6104fb6106d6366004614d63565b61142e565b6104fb6106e93660046149ea565b611726565b6104fb6106fc366004614a05565b611759565b61071461070f366004614a05565b611803565b60405163ffffffff90911681526020016104b8565b6104ae600281565b6104fb61183d565b6104fb610747366004614c0c565b6118c5565b6104ae61075a366004614c0c565b60186020526000908152604090205481565b6104fb61077a366004614ed4565b611946565b6104ae61078d366004614ef1565b611a89565b61065567016345785d8a000081565b6104ae6107af366004614c0c565b60046020526000908152604090205481565b610688611b03565b6107dc6107d73660046149ea565b611b60565b6040516104b89493929190614f16565b6107f4611ca9565b6040516104b893929190614f8f565b60165461062e906201000090046001600160a01b031681565b6104ae61082a366004614c0c565b60086020526000908152604090205481565b600a5461062e906001600160a01b031681565b61053861085d366004615045565b611f6f565b610538610870366004614a05565b600f6020526000908152604090205460ff1681565b6104ae610893366004614ef1565b612178565b6104db6121e6565b6104fb6108ae366004615149565b6121f3565b60165461053890610100900460ff1681565b6104fb6108d3366004614a05565b612231565b6011546107149063ffffffff1681565b6104ae60175481565b601a5461062e9061010090046001600160a01b031681565b6104fb610917366004614caf565b6122c9565b6104ae612303565b610538610932366004614a8a565b612339565b6104fb6109453660046151b9565b61234e565b6104fb610958366004614c0c565b6123d0565b610538612463565b6104ae610973366004614a05565b6124ec565b6104ae6109863660046151fa565b612503565b6104fb610999366004615231565b61255e565b6104ae6109ac3660046151fa565b612624565b6016546105389060ff1681565b6104ae60195481565b6104ae6109d5366004614a05565b612693565b6105386109e83660046149ea565b60126020526000908152604090205460ff1681565b6104ae600081565b6104ae610a13366004614c0c565b6126a6565b6104ae600b5481565b6104fb610a2f3660046149ea565b6126d5565b6104fb610a42366004615269565b612753565b600c5461062e906001600160a01b031681565b6104ae610a68366004614c0c565b612997565b6104ae610a7b3660046152da565b600560209081526000928352604080842090915290825290205481565b610714610aa6366004614a05565b6129c6565b601454601554610ae7916001600160401b0380821692680100000000000000008304821692600160801b9004909116906001600160a01b031684565b604080516001600160401b039586168152938516602085015291909316908201526001600160a01b0390911660608201526080016104b8565b6104fb610b2e366004614ed4565b6129d6565b610655670de0b6b3a764000081565b6104ae610b50366004614a05565b612a1a565b6104fb610b63366004614c0c565b612a31565b6104ae601081565b6000610b7a612c6c565b600b54600114610ba55760405162461bcd60e51b8152600401610b9c90615308565b60405180910390fd5b610baf6000612d0c565b905090565b60008054610bc19061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed9061532c565b8015610c3a5780601f10610c0f57610100808354040283529160200191610c3a565b820191906000526020600020905b815481529060010190602001808311610c1d57829003601f168201915b505050505081565b600a546001600160a01b03163314610c6c5760405162461bcd60e51b8152600401610b9c90615366565b610c7581613198565b50565b6000610c8b82610c86610b70565b61329c565b92915050565b600d546060906001600160401b03811115610cae57610cae614ab6565b604051908082528060200260200182016040528015610cd7578160200160208202803683370190505b50905060005b600d54811015610d6257610d28600d8281548110610cfd57610cfd61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1661333c565b828281518110610d3a57610d3a61538c565b6001600160a01b0390921660209283029190910190910152610d5b816153b8565b9050610cdd565b5090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a350600192915050565b600080610ddd610b70565b9050610de983826133c5565b9392505050565b600a546001600160a01b03163314610e1a5760405162461bcd60e51b8152600401610b9c90615366565b610e22613454565b6016805460ff191660019081179091556040519081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c906020015b60405180910390a1565b630a85bd0160e11b5b949350505050565b6000610e8484613478565b610e718484846134d7565b600a546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b9c90615366565b600081610f0457600d8363ffffffff1681548110610ed957610ed961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16610f44565b600e8363ffffffff1681548110610f1d57610f1d61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff165b90506000610f51826135b7565b90508015610f8157604051631c7b946d60e31b815263ffffffff8316600482015260248101829052604401610b9c565b610f8c848385613640565b50505050565b60006006544614610fa557610baf613725565b5060075490565b600a546001600160a01b03163314610fd65760405162461bcd60e51b8152600401610b9c90615366565b600080821561110857600e8463ffffffff1681548110610ff857610ff861538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600e8563ffffffff16815481106110395761103961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600e8763ffffffff168154811061107c5761107c61538c565b9060005260206000209060089182820401919006600402600e8863ffffffff16815481106110ac576110ac61538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff160217905550505061122d565b600d8463ffffffff16815481106111215761112161538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600d8563ffffffff16815481106111625761116261538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600d8763ffffffff16815481106111a5576111a561538c565b9060005260206000209060089182820401919006600402600d8863ffffffff16815481106111d5576111d561538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff16021790555050505b6040805163ffffffff84811682528381166020830152878116828401528616606082015290517fb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a9181900360800190a15050505050565b600a546001600160a01b031633146112ae5760405162461bcd60e51b8152600401610b9c90615366565b601654604051636777140560e11b81526001600160a01b038381166004830152620100009092049091169063ceee280a9060240160006040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506001600160a01b038116600081815260136020908152604091829020805460ff191660019081179091558251938452908301527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a91015b60405180910390a150565b6060600e8054806020026020016040519081016040528092919081815260200182805480156113ee57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116113b15790505b5050505050905090565b60165460009060ff161561140e57506000919050565b50600019919050565b600080611422610b70565b9050610de9838261329c565b600a546001600160a01b031633146114585760405162461bcd60e51b8152600401610b9c90615366565b600b5460011461147a5760405162461bcd60e51b8152600401610b9c90615308565b6002600b55611487613454565b61148f612c6c565b601a805460ff1916600117905560008080806114aa81612d0c565b90506114d5601954670de0b6b3a76400006114c591906153d1565b8290670de0b6b3a76400006137bf565b93506114f0601954670de0b6b3a76400006114c591906153e4565b925060035491505060005b84518160ff161015611695576000858260ff168151811061151e5761151e61538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661157357604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b868360ff168151811061158b5761158b61538c565b602002602001015160200151518160ff161015611682576115fa878460ff16815181106115ba576115ba61538c565b6020026020010151602001518260ff16815181106115da576115da61538c565b6020026020010151836001600160a01b03166137ed90919063ffffffff16565b507f7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf48382888560ff16815181106116325761163261538c565b6020026020010151602001518360ff16815181106116525761165261538c565b60200260200101516040516116689291906153f7565b60405180910390a18061167a8161541b565b915050611576565b50508061168e9061541b565b90506114fb565b5060006116a26000612d0c565b9050838110806116b157508281115b156116e05760405163628cc47560e11b8152600481018290526024810185905260448101849052606401610b9c565b600354821461171057600354604051632b40145960e21b8152600481019190915260248101839052604401610b9c565b5050601a805460ff1916905550506001600b5550565b600a546001600160a01b031633146117505760405162461bcd60e51b8152600401610b9c90615366565b610c7581613812565b600a546001600160a01b031633146117835760405162461bcd60e51b8152600401610b9c90615366565b67016345785d8a00008111156117bd576040516302d2a90f60e51b81526004810182905267016345785d8a00006024820152604401610b9c565b601980549082905560408051828152602081018490527fdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff91015b60405180910390a15050565b600d818154811061181357600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b600a546001600160a01b031633146118675760405162461bcd60e51b8152600401610b9c90615366565b60165460ff1661188a5760405163ec7165bf60e01b815260040160405180910390fd5b6016805460ff19169055604051600081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c90602001610e5e565b600a546001600160a01b031633146118ef5760405162461bcd60e51b8152600401610b9c90615366565b6001600160a01b0381166000818152601360209081526040808320805460ff191690558051938452908301919091527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a9101611369565b600a546001600160a01b031633146119705760405162461bcd60e51b8152600401610b9c90615366565b60008082156119a9576000611983610b70565b90506119948161251c6127106138d0565b92506119a5816129046127106138d0565b9150505b601654604051635c9fcd8560e11b815260026004820152620100009091046001600160a01b03169063b93f9b0a90602401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b919061543a565b600c80546001600160a01b0319166001600160a01b03929092169190911790556000611a45610b70565b90508315610f8c5782811080611a5a57508181115b15610f8c5760405163628cc47560e11b8152600481018290526024810184905260448101839052606401610b9c565b6000600b54600114611aad5760405162461bcd60e51b8152600401610b9c90615308565b6002600b556000611abd81612d0c565b9050611ac984826138ef565b915081600003611aec5760405163426f153760e11b815260040160405180910390fd5b611af7848385613906565b506001600b5592915050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156113ee576000918252602091829020805463ffffffff1684529082028301929091600491018084116113b15790505050505050905090565b601060205260009081526040902080546001820180546001600160a01b03831693600160a01b90930460ff16929190611b989061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc49061532c565b8015611c115780601f10611be657610100808354040283529160200191611c11565b820191906000526020600020905b815481529060010190602001808311611bf457829003601f168201915b505050505090806002018054611c269061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c529061532c565b8015611c9f5780601f10611c7457610100808354040283529160200191611c9f565b820191906000526020600020905b815481529060010190602001808311611c8257829003601f168201915b5050505050905084565b600d54600e546060918291829190611cc181836153e4565b6001600160401b03811115611cd857611cd8614ab6565b604051908082528060200260200182016040528015611d01578160200160208202803683370190505b509450611d0e81836153e4565b6001600160401b03811115611d2557611d25614ab6565b604051908082528060200260200182016040528015611d4e578160200160208202803683370190505b509350611d5b81836153e4565b6001600160401b03811115611d7257611d72614ab6565b604051908082528060200260200182016040528015611d9b578160200160208202803683370190505b50925060005b82811015611e8457611dbf600d8281548110610cfd57610cfd61538c565b868281518110611dd157611dd161538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e32600d8281548110611e0757611e0761538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166135b7565b858281518110611e4457611e4461538c565b6020026020010181815250506000848281518110611e6457611e6461538c565b91151560209283029190910190910152611e7d816153b8565b9050611da1565b5060005b81811015611f6757611ea6600e8281548110610cfd57610cfd61538c565b600d548790611eb590846153e4565b81518110611ec557611ec561538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611efb600e8281548110611e0757611e0761538c565b600d548690611f0a90846153e4565b81518110611f1a57611f1a61538c565b6020908102919091010152600d546001908590611f3790846153e4565b81518110611f4757611f4761538c565b91151560209283029190910190910152611f60816153b8565b9050611e88565b505050909192565b60006001600160a01b0384163014611f9a576040516304a246dd60e51b815260040160405180910390fd5b601a5461010090046001600160a01b03163314611fca576040516349456ad960e01b815260040160405180910390fd5b6000611fd883850185614d63565b905060005b81518160ff1610156120c2576000828260ff16815181106120005761200061538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661205557604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b838360ff168151811061206d5761206d61538c565b602002602001015160200151518160ff1610156120af5761209c848460ff16815181106115ba576115ba61538c565b50806120a78161541b565b915050612058565b5050806120bb9061541b565b9050611fdd565b5060005b8881101561216657601a546121569061010090046001600160a01b03168989848181106120f5576120f561538c565b905060200201358c8c8581811061210e5761210e61538c565b9050602002013561211f91906153e4565b8e8e858181106121315761213161538c565b90506020020160208101906121469190614c0c565b6001600160a01b03169190613984565b61215f816153b8565b90506120c6565b5060019b9a5050505050505050505050565b6000600b5460011461219c5760405162461bcd60e51b8152600401610b9c90615308565b6002600b5560006121ac81612d0c565b90506121b884826139fb565b9150816000036121db57604051639768300560e01b815260040160405180910390fd5b611af7828585613906565b60018054610bc19061532c565b600a546001600160a01b0316331461221d5760405162461bcd60e51b8152600401610b9c90615366565b612225613454565b610f8c84848484613a12565b600a546001600160a01b0316331461225b5760405162461bcd60e51b8152600401610b9c90615366565b61012c81108061226d57506202a30081115b1561228b57604051633a60233f60e21b815260040160405180910390fd5b601780549082905560408051828152602081018490527f227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f2491016117f7565b600a546001600160a01b031633146122f35760405162461bcd60e51b8152600401610b9c90615366565b6122fe838383613640565b505050565b600061230d612c6c565b600b5460011461232f5760405162461bcd60e51b8152600401610b9c90615308565b610baf6001612d0c565b600061234433613478565b610de98383613cb9565b60005b818110156122fe576123bd83838381811061236e5761236e61538c565b90506020028101906123809190615457565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525030939250506137ed9050565b50806123c8816153b8565b915050612351565b600a546001600160a01b031633146123fa5760405162461bcd60e51b8152600401610b9c90615366565b601554604080516001600160a01b03928316815291831660208301527f51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d910160405180910390a1601580546001600160a01b0319166001600160a01b0392909216919091179055565b601654600090610100900460ff166124e657601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa1580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf919061549d565b50600090565b6000806124f7610b70565b9050610de983826139fb565b6000600b546001146125275760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061253781612d0c565b905061254385826133c5565b915061255185838686613d1f565b506001600b559392505050565b600a546001600160a01b031633146125885760405162461bcd60e51b8152600401610b9c90615366565b670de0b6b3a76400006001600160401b03821611156125ba57604051633d0203e560e01b815260040160405180910390fd5b601454604080516001600160401b03928316815291831660208301527fb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868910160405180910390a16014805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000600b546001146126485760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061265881612d0c565b9050612664858261329c565b91508160000361268757604051639768300560e01b815260040160405180910390fd5b61255182868686613d1f565b6000610c8b826126a1610b70565b6138ef565b6000600b546001146126ca5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826000613df8565b600a546001600160a01b031633146126ff5760405162461bcd60e51b8152600401610b9c90615366565b63ffffffff81166000818152601260209081526040808320805460ff191690558051938452908301919091527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b428410156127a35760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610b9c565b600060016127af610f92565b6001600160a01b038a811660008181526008602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156128bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906128f15750876001600160a01b0316816001600160a01b0316145b61292e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610b9c565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000600b546001146129bb5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826001613df8565b600e818154811061181357600080fd5b600a546001600160a01b03163314612a005760405162461bcd60e51b8152600401610b9c90615366565b601680549115156101000261ff0019909216919091179055565b600080612a25610b70565b9050610de983826138ef565b600a546001600160a01b03163314612a5b5760405162461bcd60e51b8152600401610b9c90615366565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b82548015612c2b578380612abc6001846153d1565b81548110612acc57612acc61538c565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a9092049093160217905590612b2e90836153d1565b90505b8363ffffffff16811115612bd95784612b4b6001836153d1565b81548110612b5b57612b5b61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16858281548110612b9357612b9361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508080612bd1906154ba565b915050612b31565b5081848463ffffffff1681548110612bf357612bf361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550610f8c565b508254600181018455600093845260209093206008840401805460079094166004026101000a63ffffffff8181021990951692909416939093021790915550565b601654610100900460ff16612d0a57601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa158015612cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cec919061549d565b15612d0a57604051630f301f8f60e41b815260040160405180910390fd5b565b600d5460009081816001600160401b03811115612d2b57612d2b614ab6565b604051908082528060200260200182016040528015612d54578160200160208202803683370190505b5090506000826001600160401b03811115612d7157612d71614ab6565b604051908082528060200260200182016040528015612d9a578160200160208202803683370190505b5090508415612eeb5760005b83811015612e6b576000600d8281548110612dc357612dc361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612df481613eba565b838381518110612e0657612e0661538c565b6020026020010181815250600003612e1e5750612e5b565b612e278161333c565b848381518110612e3957612e3961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b612e64816153b8565b9050612da6565b50600c5460095460405163b333a17560e01b81526001600160a01b039283169263b333a17592612ea3928792879216906004016154d1565b602060405180830381865afa158015612ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee4919061550f565b9350613190565b600e546000816001600160401b03811115612f0857612f08614ab6565b604051908082528060200260200182016040528015612f31578160200160208202803683370190505b5090506000826001600160401b03811115612f4e57612f4e614ab6565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b50905060005b86811015613042576000600d8281548110612f9a57612f9a61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612fcb816135b7565b868381518110612fdd57612fdd61538c565b6020026020010181815250600003612ff55750613032565b612ffe8161333c565b8783815181106130105761301061538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b61303b816153b8565b9050612f7d565b5060005b8381101561310b576000600e82815481106130635761306361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050613094816135b7565b8383815181106130a6576130a661538c565b60200260200101818152506000036130be57506130fb565b6130c78161333c565b8483815181106130d9576130d961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b613104816153b8565b9050613046565b50600c54600954604051637563738b60e11b81526001600160a01b039283169263eac6e71692613149928a928a928992899290911690600401615528565b602060405180830381865afa158015613166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318a919061550f565b96505050505b505050919050565b63ffffffff81166000908152600f602052604090205460ff166131d6576040516370abe85960e01b815263ffffffff82166004820152602401610b9c565b6009546001600160a01b03166131eb8261333c565b6001600160a01b03161461323a576009546001600160a01b031661320e8261333c565b60405163298473c760e11b81526001600160a01b03928316600482015291166024820152604401610b9c565b63ffffffff8116600090815260106020526040902054600160a01b900460ff161561328057604051630a42c0f960e41b815263ffffffff82166004820152602401610b9c565b6011805463ffffffff191663ffffffff92909216919091179055565b60035460009080156132b8576132b38484836138d0565b610e71565b610e716012600960009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133349190615590565b869190613f74565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf91613384916001019060040161562a565b602060405180830381865afa1580156133a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061543a565b60035460009080156133dc576132b38482856137bf565b6009546040805163313ce56760e01b81529051610e71926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015613427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344b9190615590565b85906012613f74565b60165460ff1615612d0a576040516337a5332d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205480156134d3576000601754826134a791906153e4565b9050428111156122fe576040516306f8ee3f60e21b815260048101829052426024820152604401610b9c565b5050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146135335761350e83826153d1565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260408120805485929061355b9084906153d1565b90915550506001600160a01b0380851660008181526004602052604090819020805487019055519091871690600080516020615a9b833981519152906135a49087815260200190565b60405180910390a3506001949350505050565b63ffffffff811660009081526010602052604080822080549151637841536560e01b81526001600160a01b039092169182916378415365916135ff916001019060040161562a565b602060405180830381865afa15801561361c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061550f565b60115463ffffffff9081169083160361366c576040516319ded73160e21b815260040160405180910390fd5b80156136825761367d600e84613fdd565b61368d565b61368d600d84613fdd565b63ffffffff82166000908152600f60209081526040808320805460ff191690556010909152812080546001600160a81b0319168155906136d06001830182614924565b6136de600283016000614924565b50506040805163ffffffff8085168252851660208201527fa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51910160405180910390a1505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051613757919061563d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8282028115158415858304851417166137d757600080fd5b6001826001830304018115150290509392505050565b6060610de98383604051806060016040528060278152602001615a7460279139614122565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b15801561386057600080fd5b505afa158015613874573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b8282028115158415858304851417166138e857600080fd5b0492915050565b60035460009080156133dc576132b38482856138d0565b61391183838361419a565b600954613929906001600160a01b0316333086614282565b613933818361430c565b60408051848152602081018490526001600160a01b0383169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a36122fe838383614366565b600060405163095ea7b360e01b8152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610f8c5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610b9c565b60035460009080156132b8576132b38484836137bf565b63ffffffff83166000908152600f602052604090205460ff1615613a515760405163335894fb60e11b815263ffffffff84166004820152602401610b9c565b63ffffffff831660009081526012602052604090205460ff16613a8f57604051631f9db01d60e31b815263ffffffff84166004820152602401610b9c565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015613ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b1091908101906156b3565b92509250925083151582151514613b4257604051632b1d0bd360e11b815263ffffffff87166004820152602401610b9c565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190613bbc90826157a0565b5060608201516002820190613bd190826157a0565b509050508115613c1257600e54601011613c015760405163f025236d60e01b815260106004820152602401610b9c565b613c0d600e8888612aa7565b613c44565b600d54601011613c385760405163f025236d60e01b815260106004820152602401610b9c565b613c44600d8888612aa7565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90613ca89088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b33600090815260046020526040812080548391908390613cda9084906153d1565b90915550506001600160a01b03831660008181526004602052604090819020805485019055513390600080516020615a9b83398151915290610dc19086815260200190565b613d2b84848484614397565b336001600160a01b03821614613d99576001600160a01b03811660009081526005602090815260408083203384529091529020546000198114613d9757613d7284826153d1565b6001600160a01b03831660009081526005602090815260408083203384529091529020555b505b613da381846143a8565b60408051858152602081018590526001600160a01b03808416929085169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4610f8c848361440a565b6000613e02612c6c565b6001600160a01b0383166000908152601860205260409020548015613e4857600060175482613e3191906153e4565b905042811115613e4657600092505050610c8b565b505b6000613e546000612d0c565b6001600160a01b03861660009081526004602052604081205491925090613e7b908361329c565b90506000613e896001612d0c565b905080821115613e995780613e9b565b815b94508515613eb057613ead85846138ef565b94505b5050505092915050565b63ffffffff8116600090815260106020526040812054600160a01b900460ff1615613ee757506000919050565b63ffffffff82166000908152601060205260409081902080549151637d2872e960e11b81526001600160a01b039092169163fa50e5d291613f339160018201916002019060040161585f565b602060405180830381865afa158015613f50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b919061550f565b60008160ff168360ff1603613f8a575082610de9565b8160ff168360ff161015613fbe57613fa2838361588d565b613fad90600a61598a565b613fb79085615999565b9050610de9565b613fc8828461588d565b613fd390600a61598a565b613fb790856159b8565b815463ffffffff8216811161402a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610b9c565b63ffffffff82165b61403d6001836153d1565b8110156140de57836140508260016153e4565b815481106140605761406061538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff168482815481106140985761409861538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555080806140d6906153b8565b915050614032565b50828054806140ef576140ef6159da565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055505050565b6060600080856001600160a01b03168560405161413f91906159f0565b600060405180830381855af49150503d806000811461417a576040519150601f19603f3d011682016040523d82523d6000602084013e61417f565b606091505b5091509150614190868383876147a5565b9695505050505050565b6141a2613454565b6141aa612c6c565b336001600160a01b0382161461424a57601654604051635551e1b560e01b8152336004820152620100009091046001600160a01b031690635551e1b590602401602060405180830381865afa158015614207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422b919061549d565b61424a576040516334871f2560e21b8152336004820152602401610b9c565b6000614255826113f8565b905080841115610f8c57604051632d21eb8760e21b81526004810185905260248101829052604401610b9c565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806143055760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606401610b9c565b5050505050565b806003600082825461431e91906153e4565b90915550506001600160a01b038216600081815260046020908152604080832080548601905551848152600080516020615a9b83398151915291015b60405180910390a35050565b6011546143799063ffffffff168461481e565b6001600160a01b031660009081526018602052604090204290555050565b61439f612c6c565b610f8c81613478565b6001600160a01b038216600090815260046020526040812080548392906143d09084906153d1565b90915550506003805482900390556040518181526000906001600160a01b03841690600080516020615a9b8339815191529060200161435a565b6144356040518060800160405280600081526020016000815260200160008152602001600081525090565b600c54600954604051630226614760e01b81526001600160a01b039182166004820152911690630226614790602401602060405180830381865afa158015614481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a5919061550f565b604080830191909152600954815163313ce56760e01b815291516001600160a01b039091169163313ce5679160048083019260209291908290030181865afa1580156144f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145199190615590565b61452490600a61598a565b6060820152600d5460005b81811015614782576000600d828154811061454c5761454c61538c565b60009182526020822060088204015460079091166004026101000a900463ffffffff16915061457a82613eba565b90508060000361458b575050614772565b60006145968361333c565b600c54604051630226614760e01b81526001600160a01b038084166004830152929350911690630226614790602401602060405180830381865afa1580156145e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614606919061550f565b866000018181525050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561464d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146719190615590565b61467c90600a61598a565b60208701819052865160009182916146a7916146a087670de0b6b3a7640000615999565b91906138d0565b90506146c688606001518960400151836138d09092919063ffffffff16565b91506146da670de0b6b3a7640000836159b8565b91505060008982111561474057600061470a89604001518a606001518d670de0b6b3a76400006146a09190615999565b60208a01518a51919250614720918391906138d0565b9150614734670de0b6b3a7640000836159b8565b915060009a505061474f565b508261474c828b6153d1565b99505b61475a85828b6148ab565b8960000361476c575050505050614782565b50505050505b61477b816153b8565b905061452f565b508315610f8c5760405163cc5ea39b60e01b815260048101859052602401610b9c565b6060831561481457825160000361480d576001600160a01b0385163b61480d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9c565b5081610e71565b610e7183836148fa565b63ffffffff821660009081526010602052604090819020805491516001600160a01b0390921691610f8c916369445c3160e01b91614869918691600182019160020190602401615a0c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038316906137ed565b63ffffffff831660009081526010602052604090819020805491516001600160a01b03909216916143059163c9111bd760e01b9161486991879187916001810191600290910190602401615a37565b81511561490a5781518083602001fd5b8060405162461bcd60e51b8152600401610b9c91906149be565b5080546149309061532c565b6000825580601f10614940575050565b601f016020900490600052602060002090810190610c7591905b80821115610d62576000815560010161495a565b60005b83811015614989578181015183820152602001614971565b50506000910152565b600081518084526149aa81602086016020860161496e565b601f01601f19169290920160200192915050565b602081526000610de96020830184614992565b803563ffffffff811681146149e557600080fd5b919050565b6000602082840312156149fc57600080fd5b610de9826149d1565b600060208284031215614a1757600080fd5b5035919050565b600081518084526020808501945080840160005b83811015614a575781516001600160a01b031687529582019590820190600101614a32565b509495945050505050565b602081526000610de96020830184614a1e565b6001600160a01b0381168114610c7557600080fd5b60008060408385031215614a9d57600080fd5b8235614aa881614a75565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614aee57614aee614ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1c57614b1c614ab6565b604052919050565b60006001600160401b03821115614b3d57614b3d614ab6565b50601f01601f191660200190565b600082601f830112614b5c57600080fd5b8135614b6f614b6a82614b24565b614af4565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614bb757600080fd5b8435614bc281614a75565b93506020850135614bd281614a75565b92506040850135915060608501356001600160401b03811115614bf457600080fd5b614c0087828801614b4b565b91505092959194509250565b600060208284031215614c1e57600080fd5b8135610de981614a75565b600080600060608486031215614c3e57600080fd5b8335614c4981614a75565b92506020840135614c5981614a75565b929592945050506040919091013590565b8015158114610c7557600080fd5b60008060408385031215614c8b57600080fd5b614c94836149d1565b91506020830135614ca481614c6a565b809150509250929050565b600080600060608486031215614cc457600080fd5b614ccd846149d1565b9250614cdb602085016149d1565b91506040840135614ceb81614c6a565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015614d3457835163ffffffff1683529284019291840191600101614d12565b50909695505050505050565b60006001600160401b03821115614d5957614d59614ab6565b5060051b60200190565b600060208284031215614d7557600080fd5b6001600160401b038083351115614d8b57600080fd5b8235830184601f820112614d9e57600080fd5b614dab614b6a8235614d40565b81358082526020808301929160051b84010187811115614dca57600080fd5b602084015b81811015614ec7578581351115614de557600080fd5b803585016040818b03601f19011215614dfd57600080fd5b614e05614acc565b6020820135614e1381614a75565b8152604082013588811115614e2757600080fd5b8083019250508a603f830112614e3c57600080fd5b6020820135614e4d614b6a82614d40565b81815260059190911b83016040019060208101908d831115614e6e57600080fd5b604085015b83811015614ea7578b81351115614e8957600080fd5b614e998f60408335890101614b4b565b835260209283019201614e73565b508060208501525050508086525050602084019350602081019050614dcf565b5090979650505050505050565b600060208284031215614ee657600080fd5b8135610de981614c6a565b60008060408385031215614f0457600080fd5b823591506020830135614ca481614a75565b6001600160a01b03851681528315156020820152608060408201819052600090614f4290830185614992565b8281036060840152614f548185614992565b979650505050505050565b600081518084526020808501945080840160005b83811015614a5757815187529582019590820190600101614f73565b606081526000614fa26060830186614a1e565b602083820381850152614fb58287614f5f565b8481036040860152855180825282870193509082019060005b81811015614fec578451151583529383019391830191600101614fce565b509098975050505050505050565b60008083601f84011261500c57600080fd5b5081356001600160401b0381111561502357600080fd5b6020830191508360208260051b850101111561503e57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561506357600080fd5b89356001600160401b038082111561507a57600080fd5b6150868d838e01614ffa565b909b50995060208c013591508082111561509f57600080fd5b6150ab8d838e01614ffa565b909950975060408c01359150808211156150c457600080fd5b6150d08d838e01614ffa565b909750955060608c013591506150e582614a75565b90935060808b013590808211156150fb57600080fd5b818c0191508c601f83011261510f57600080fd5b81358181111561511e57600080fd5b8d602082850101111561513057600080fd5b6020830194508093505050509295985092959850929598565b6000806000806080858703121561515f57600080fd5b615168856149d1565b9350615176602086016149d1565b925060408501356001600160401b0381111561519157600080fd5b61519d87828801614b4b565b92505060608501356151ae81614c6a565b939692955090935050565b600080602083850312156151cc57600080fd5b82356001600160401b038111156151e257600080fd5b6151ee85828601614ffa565b90969095509350505050565b60008060006060848603121561520f57600080fd5b83359250602084013561522181614a75565b91506040840135614ceb81614a75565b60006020828403121561524357600080fd5b81356001600160401b0381168114610de957600080fd5b60ff81168114610c7557600080fd5b600080600080600080600060e0888a03121561528457600080fd5b873561528f81614a75565b9650602088013561529f81614a75565b9550604088013594506060880135935060808801356152bd8161525a565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156152ed57600080fd5b82356152f881614a75565b91506020830135614ca481614a75565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b600181811c9082168061534057607f821691505b60208210810361536057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016153ca576153ca6153a2565b5060010190565b81810381811115610c8b57610c8b6153a2565b80820180821115610c8b57610c8b6153a2565b6001600160a01b0383168152604060208201819052600090610e7190830184614992565b600060ff821660ff8103615431576154316153a2565b60010192915050565b60006020828403121561544c57600080fd5b8151610de981614a75565b6000808335601e1984360301811261546e57600080fd5b8301803591506001600160401b0382111561548857600080fd5b60200191503681900382131561503e57600080fd5b6000602082840312156154af57600080fd5b8151610de981614c6a565b6000816154c9576154c96153a2565b506000190190565b6060815260006154e46060830186614a1e565b82810360208401526154f68186614f5f565b91505060018060a01b0383166040830152949350505050565b60006020828403121561552157600080fd5b5051919050565b60a08152600061553b60a0830188614a1e565b828103602084015261554d8188614f5f565b905082810360408401526155618187614a1e565b905082810360608401526155758186614f5f565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156155a257600080fd5b8151610de98161525a565b600081546155ba8161532c565b8085526020600183811680156155d757600181146155f15761561f565b60ff1985168884015283151560051b88018301955061561f565b866000528260002060005b858110156156175781548a82018601529083019084016155fc565b890184019650505b505050505092915050565b602081526000610de960208301846155ad565b600080835461564b8161532c565b600182811680156156635760018114615678576156a7565b60ff19841687528215158302870194506156a7565b8760005260208060002060005b8581101561569e5781548a820152908401908201615685565b50505082870194505b50929695505050505050565b6000806000606084860312156156c857600080fd5b83516156d381614a75565b60208501519093506156e481614c6a565b60408501519092506001600160401b0381111561570057600080fd5b8401601f8101861361571157600080fd5b805161571f614b6a82614b24565b81815287602083850101111561573457600080fd5b61574582602083016020860161496e565b8093505050509250925092565b601f8211156122fe57600081815260208120601f850160051c810160208610156157795750805b601f850160051c820191505b8181101561579857828155600101615785565b505050505050565b81516001600160401b038111156157b9576157b9614ab6565b6157cd816157c7845461532c565b84615752565b602080601f83116001811461580257600084156157ea5750858301515b600019600386901b1c1916600185901b178555615798565b600085815260208120601f198616915b8281101561583157888601518255948401946001909101908401615812565b508582101561584f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061587260408301856155ad565b828103602084015261588481856155ad565b95945050505050565b60ff8281168282160390811115610c8b57610c8b6153a2565b600181815b808511156158e15781600019048211156158c7576158c76153a2565b808516156158d457918102915b93841c93908002906158ab565b509250929050565b6000826158f857506001610c8b565b8161590557506000610c8b565b816001811461591b576002811461592557615941565b6001915050610c8b565b60ff841115615936576159366153a2565b50506001821b610c8b565b5060208310610133831016604e8410600b8410161715615964575081810a610c8b565b61596e83836158a6565b8060001904821115615982576159826153a2565b029392505050565b6000610de960ff8416836158e9565b60008160001904831182151516156159b3576159b36153a2565b500290565b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008251615a0281846020870161496e565b9190910192915050565b838152606060208201526000615a2560608301856155ad565b828103604084015261419081856155ad565b8481526001600160a01b0384166020820152608060408201819052600090615a61908301856155ad565b8281036060840152614f5481856155ad56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dd287b48397cc723182f481f545c67e54374e23ca920649697588f2a1afd3d964736f6c63430008100033", - "sourceMap": "806:60136:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26377:58;;26429:6;26377:58;;;;;160:25:98;;;148:2;133:18;26377:58:41;;;;;;;;41742:183;;;:::i;26528:58::-;;26580:6;26528:58;;1031:18:45;;;:::i;:::-;;;;;;;:::i;7823:114:41:-;;;;;;:::i;:::-;;:::i;:::-;;42549:152;;;;;;:::i;:::-;;:::i;59778:263::-;;;:::i;:::-;;;;;;;:::i;2431:211:45:-;;;;;;:::i;:::-;;:::i;:::-;;;2876:14:98;;2869:22;2851:41;;2839:2;2824:18;2431:211:45;2711:187:98;43724:197:41;;;;;;:::i;:::-;;:::i;20479:146::-;;;:::i;588:200:19:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;5067:33:98;;;5049:52;;5037:2;5022:18;588:200:19;4905:202:98;1294:26:45;;;;;;8633:48:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;28317:191;;;;;;:::i;:::-;;:::i;1083:21:45:-;;;;;;;;;;;;5997:4:98;5985:17;;;5967:36;;5955:2;5940:18;1083:21:45;5825:184:98;12687:508:41;;;;;;:::i;:::-;;:::i;5297:177:45:-;;;:::i;14385:798:41:-;;;;;;:::i;:::-;;:::i;1113:18:46:-;;;;;-1:-1:-1;;;;;1113:18:46;;;;;;-1:-1:-1;;;;;7206:32:98;;;7188:51;;7176:2;7161:18;1113::46;7027:218:98;17556:48:41;;17598:6;17556:48;;;;;-1:-1:-1;;;;;7412:31:98;;;7394:50;;7382:2;7367:18;17556:48:41;7250:200:98;9675:283:41;;;;;;:::i;:::-;;:::i;7344:105::-;;;:::i;:::-;;;;;;;:::i;56208:144::-;;;;;;:::i;:::-;;:::i;51330:33::-;;;;;;;;;44571:195;;;;;;:::i;:::-;;:::i;52415:1775::-;;;;;;:::i;:::-;;:::i;8782:122::-;;;;;;:::i;:::-;;:::i;50744:402::-;;;;;;:::i;:::-;;:::i;6611:31::-;;;;;;:::i;:::-;;:::i;:::-;;;10702:10:98;10690:23;;;10672:42;;10660:2;10645:18;6611:31:41;10528:192:98;21194:54:41;;21247:1;21194:54;;20682:179;;;:::i;10062:176::-;;;;;;:::i;:::-;;:::i;26898:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;2419:739;;;;;;:::i;:::-;;:::i;30724:483::-;;;;;;:::i;:::-;;:::i;50342:55::-;;50391:6;50342:55;;1327:44:45;;;;;;:::i;:::-;;;;;;;;;;;;;;7134:109:41;;;:::i;6967:63::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;60047:893::-;;;:::i;:::-;;;;;;;;;:::i;21374:24::-;;;;;;;;-1:-1:-1;;;;;21374:24:41;;;1721:41:45;;;;;;:::i;:::-;;;;;;;;;;;;;;690:20:25;;;;;-1:-1:-1;;;;;690:20:25;;;54817:1117:41;;;;;;:::i;:::-;;:::i;6846:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;31483:507;;;;;;:::i;:::-;;:::i;1056:20:45:-;;;:::i;10548:269:41:-;;;;;;:::i;:::-;;:::i;19367:23::-;;;;;;;;;;;;27075:366;;;;;;:::i;:::-;;:::i;7711:29::-;;;;;;;;;26734:58;;;;;;54636:68;;;;;;;;-1:-1:-1;;;;;54636:68:41;;;13321:160;;;;;;:::i;:::-;;:::i;42137:185::-;;;:::i;28062:169::-;;;;;;:::i;:::-;;:::i;1239:153::-;;;;;;:::i;:::-;;:::i;18252:215::-;;;;;;:::i;:::-;;:::i;19501:175::-;;;:::i;43304:189::-;;;;;;:::i;:::-;;:::i;33530:497::-;;;;;;:::i;:::-;;:::i;17864:260::-;;;;;;:::i;:::-;;:::i;34905:532::-;;;;;;:::i;:::-;;:::i;19251:22::-;;;;;;;;;50530:52;;;;;;42928:152;;;;;;:::i;:::-;;:::i;8467:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21054:56;;21109:1;21054:56;;46282:165;;;;;;:::i;:::-;;:::i;1624:25::-;;;;;;9389:187;;;;;;:::i;:::-;;:::i;3808:1483:45:-;;;;;;:::i;:::-;;:::i;2032:30:41:-;;;;;-1:-1:-1;;;;;2032:30:41;;;46802:162;;;;;;:::i;:::-;;:::i;1378:64:45:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6736:29:41;;;;;;:::i;:::-;;:::i;17256:207::-;;;;;;;-1:-1:-1;;;;;17256:207:41;;;;;;;;;;-1:-1:-1;;;17256:207:41;;;;;;-1:-1:-1;;;;;17256:207:41;;;;;;;-1:-1:-1;;;;;19453:15:98;;;19435:34;;19505:15;;;19500:2;19485:18;;19478:43;19557:15;;;;19537:18;;;19530:43;-1:-1:-1;;;;;19609:32:98;;;19604:2;19589:18;;19582:60;19385:3;19370:19;17256:207:41;19173:475:98;20035:96:41;;;;;;:::i;:::-;;:::i;17689:41::-;;17726:4;17689:41;;44148:196;;;;;;:::i;:::-;;:::i;1312:161:25:-;;;;;;:::i;:::-;;:::i;7560:42:41:-;;7600:2;7560:42;;41742:183;41795:14;41821:16;:14;:16::i;:::-;41855:6;;41865:1;41855:11;41847:34;;;;-1:-1:-1;;;41847:34:41;;;;;;;:::i;:::-;;;;;;;;;41900:18;41912:5;41900:11;:18::i;:::-;41891:27;;41742:183;:::o;1031:18:45:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7823:114:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;7899:31:41::1;7919:10;7899:19;:31::i;:::-;7823:114:::0;:::o;42549:152::-;42620:14;42655:39;42672:6;42680:13;:11;:13::i;:::-;42655:16;:39::i;:::-;42646:48;42549:152;-1:-1:-1;;42549:152:41:o;59778:263::-;59884:15;:22;59830:21;;-1:-1:-1;;;;;59872:35:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;59872:35:41;;59863:44;;59922:9;59917:118;59941:15;:22;59937:26;;59917:118;;;59996:28;60005:15;60021:1;60005:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;59996:8;:28::i;:::-;59984:6;59991:1;59984:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;59984:40:41;;;:9;;;;;;;;;;;:40;59965:3;;;:::i;:::-;;;59917:118;;;;59778:263;:::o;2431:211:45:-;2531:10;2505:4;2521:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2521:30:45;;;;;;;;;;:39;;;2576:37;2505:4;;2521:30;;2576:37;;;;2554:6;160:25:98;;148:2;133:18;;14:177;2576:37:45;;;;;;;;-1:-1:-1;2631:4:45;2431:211;;;;:::o;43724:197:41:-;43795:14;43821:20;43844:13;:11;:13::i;:::-;43821:36;;43876:38;43893:6;43901:12;43876:16;:38::i;:::-;43867:47;43724:197;-1:-1:-1;;;43724:197:41:o;20479:146::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20536:18:41::1;:16;:18::i;:::-;20564:10;:17:::0;;-1:-1:-1;;20564:17:41::1;20577:4;20564:17:::0;;::::1;::::0;;;20597:21:::1;::::0;2851:41:98;;;20597:21:41::1;::::0;2839:2:98;2824:18;20597:21:41::1;;;;;;;;20479:146::o:0;588:200:19:-;-1:-1:-1;;;588:200:19;;;;;;;:::o;28317:191:41:-;28406:4;28422:26;28443:4;28422:20;:26::i;:::-;28465:36;28484:4;28490:2;28494:6;28465:18;:36::i;12687:508::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;12811:17:41::1;12831:11;:59;;12868:15;12884:5;12868:22;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:59;;;12845:13;12859:5;12845:20;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:59;12811:79;;12987:23;13013:22;13024:10;13013;:22::i;:::-;12987:48:::0;-1:-1:-1;13049:19:41;;13045:85:::1;;13077:53;::::0;-1:-1:-1;;;13077:53:41;;21324:10:98;21312:23;;13077:53:41::1;::::0;::::1;21294:42:98::0;21352:18;;;21345:34;;;21267:18;;13077:53:41::1;21122:263:98::0;13045:85:41::1;13141:47;13157:5;13164:10;13176:11;13141:15;:47::i;:::-;12762:433;;12687:508:::0;;:::o;5297:177:45:-;5354:7;5397:16;;5380:13;:33;:87;;5443:24;:22;:24::i;5380:87::-;-1:-1:-1;5416:24:45;;;5297:177::o;14385:798:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;14546:19:41::1;14575::::0;14609:11:::1;14605:497;;;14651:13;14665:6;14651:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14636:36;;14701:13;14715:6;14701:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14686:36;;14817:12;14831;14768:13;14782:6;14768:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14791:13;14805:6;14791:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14767:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14605:497;;;14890:15;14906:6;14890:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14875:38;;14942:15;14958:6;14942:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14927:38;;15064:12;15078;15011:15;15027:6;15011:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15036:15;15052:6;15036:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15010:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14605:497;15117:59;::::0;;21625:10:98;21662:15;;;21644:34;;21714:15;;;21709:2;21694:18;;21687:43;21766:15;;;21746:18;;;21739:43;21818:15;;21813:2;21798:18;;21791:43;15117:59:41;;::::1;::::0;;;;21602:3:98;15117:59:41;;::::1;14475:708;;14385:798:::0;;;:::o;9675:283::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;9811:8:41::1;::::0;:45:::1;::::0;-1:-1:-1;;;9811:45:41;;-1:-1:-1;;;;;7206:32:98;;;9811:45:41::1;::::0;::::1;7188:51:98::0;9811:8:41;;;::::1;::::0;;::::1;::::0;:36:::1;::::0;7161:18:98;;9811:45:41::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;9866:25:41;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:32;;-1:-1:-1;;9866:32:41::1;9894:4;9866:32:::0;;::::1;::::0;;;9913:38;;22013:51:98;;;22080:18;;;22073:50;9913:38:41::1;::::0;21986:18:98;9913:38:41::1;;;;;;;;9675:283:::0;:::o;7344:105::-;7395:15;7429:13;7422:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:105;:::o;56208:144::-;56290:10;;56267:7;;56290:10;;56286:24;;;-1:-1:-1;56309:1:41;;56208:144;-1:-1:-1;56208:144:41:o;56286:24::-;-1:-1:-1;;;56328:17:41;56208:144;-1:-1:-1;56208:144:41:o;44571:195::-;44640:14;44666:20;44689:13;:11;:13::i;:::-;44666:36;;44721:38;44738:6;44746:12;44721:16;:38::i;52415:1775::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;1698:6:41::1;;1708:1;1698:11;1690:34;;;;-1:-1:-1::0;;;1690:34:41::1;;;;;;;:::i;:::-;1744:1;1735:6;:10:::0;52507:18:::2;:16;:18::i;:::-;52535:16;:14;:16::i;:::-;52561:21;:28:::0;;-1:-1:-1;;52561:28:41::2;52585:4;52561:28;::::0;;:21:::2;::::0;;;52837:18:::2;52561:21:::0;52837:11:::2;:18::i;:::-;52803:52;;52892:74;52933:25;;52926:4;:32;;;;:::i;:::-;52892:23:::0;;52961:4:::2;52892:32;:74::i;:::-;52869:97;;53003:74;53044:25;;53037:4;:32;;;;:::i;53003:74::-;52980:97;;53105:11;;53091:25;;52789:338;53176:7;53171:477;53193:4;:11;53189:1;:15;;;53171:477;;;53225:15;53243:4;53248:1;53243:7;;;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;:15;-1:-1:-1;;;;;53350:25:41;::::2;53243:15;53350:25:::0;;;:16:::2;:25:::0;;;;;;;;53243:15;;-1:-1:-1;53350:25:41::2;;53345:79;;53384:40;::::0;-1:-1:-1;;;53384:40:41;;-1:-1:-1;;;;;7206:32:98;;53384:40:41::2;::::0;::::2;7188:51:98::0;7161:18;;53384:40:41::2;7027:218:98::0;53345:79:41::2;53443:7;53438:200;53460:4;53465:1;53460:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;:23;53456:1;:27;;;53438:200;;;53508:49;53537:4;53542:1;53537:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;53554:1;53537:19;;;;;;;;;;:::i;:::-;;;;;;;53508:7;-1:-1:-1::0;;;;;53508:28:41::2;;;:49;;;;:::i;:::-;;53580:43;53594:7;53603:4;53608:1;53603:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;53620:1;53603:19;;;;;;;;;;:::i;:::-;;;;;;;53580:43;;;;;;;:::i;:::-;;;;;;;;53485:3:::0;::::2;::::0;::::2;:::i;:::-;;;;53438:200;;;;53211:437;53206:3;;;;:::i;:::-;;;53171:477;;;;53797:14;53814:18;53826:5;53814:11;:18::i;:::-;53797:35;;53855:20;53846:6;:29;:62;;;;53888:20;53879:6;:29;53846:62;53842:190;;;53931:90;::::0;-1:-1:-1;;;53931:90:41;;::::2;::::0;::::2;23099:25:98::0;;;23140:18;;;23133:34;;;23183:18;;;23176:34;;;23072:18;;53931:90:41::2;22897:319:98::0;53842:190:41::2;54060:11;;54045;:26;54041:102;;54118:11;::::0;54080:63:::2;::::0;-1:-1:-1;;;54080:63:41;;::::2;::::0;::::2;23395:25:98::0;;;;23436:18;;;23429:34;;;23368:18;;54080:63:41::2;23221:248:98::0;54041:102:41::2;-1:-1:-1::0;;54154:21:41::2;:29:::0;;-1:-1:-1;;54154:29:41::2;::::0;;-1:-1:-1;;54154:29:41;1768:6:::1;:10:::0;-1:-1:-1;52415:1775:41:o;8782:122::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;8862:35:41::1;8886:10;8862:23;:35::i;50744:402::-:0;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;50391:6:41::1;50830:38:::0;::::1;50826:135;;;50889:72;::::0;-1:-1:-1;;;50889:72:41;;::::1;::::0;::::1;23647:25:98::0;;;50391:6:41::1;23688:18:98::0;;;23681:59;23620:18;;50889:72:41::1;23474:272:98::0;50826:135:41::1;50995:25;::::0;;51030:40;;;;51086:53:::1;::::0;;23395:25:98;;;23451:2;23436:18;;23429:34;;;51086:53:41::1;::::0;23368:18:98;51086:53:41::1;;;;;;;;50816:330;50744:402:::0;:::o;6611:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20682:179::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20740:10:41::1;::::0;::::1;;20735:53;;20759:29;;-1:-1:-1::0;;;20759:29:41::1;;;;;;;;;;;20735:53;20798:10;:18:::0;;-1:-1:-1;;20798:18:41::1;::::0;;20832:22:::1;::::0;-1:-1:-1;2851:41:98;;20832:22:41::1;::::0;2839:2:98;2824:18;20832:22:41::1;2711:187:98::0;10062:176:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;-1:-1:-1;;;;;10144:25:41;::::1;10172:5;10144:25:::0;;;:16:::1;:25;::::0;;;;;;;:33;;-1:-1:-1;;10144:33:41::1;::::0;;10192:39;;22013:51:98;;;22080:18;;;22073:50;;;;10192:39:41::1;::::0;21986:18:98;10192:39:41::1;21845:284:98::0;2419:739:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;2497:17:41::1;2524::::0;2556:16:::1;2552:261;;;2588:20;2611:13;:11;:13::i;:::-;2588:36:::0;-1:-1:-1;2704:36:41::1;2588::::0;2728:6:::1;2736:3;2704:23;:36::i;:::-;2692:48:::0;-1:-1:-1;2766:36:41::1;:12:::0;2790:6:::1;2798:3;2766:23;:36::i;:::-;2754:48;;2574:239;2552:261;2849:8;::::0;:47:::1;::::0;-1:-1:-1;;;2849:47:41;;:8:::1;:47;::::0;::::1;160:25:98::0;2849:8:41;;;::::1;-1:-1:-1::0;;;;;2849:8:41::1;::::0;:19:::1;::::0;133:18:98;;2849:47:41::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2823:11;:74:::0;;-1:-1:-1;;;;;;2823:74:41::1;-1:-1:-1::0;;;;;2823:74:41;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;2929:13:41::1;:11;:13::i;:::-;2907:35;;2957:16;2953:199;;;3007:9;2993:11;:23;:50;;;;3034:9;3020:11;:23;2993:50;2989:152;;;3068:73;::::0;-1:-1:-1;;;3068:73:41;;::::1;::::0;::::1;23099:25:98::0;;;23140:18;;;23133:34;;;23183:18;;;23176:34;;;23072:18;;3068:73:41::1;22897:319:98::0;30724:483:41;30813:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;30943:20:::1;30966:18;30943:20:::0;30966:11:::1;:18::i;:::-;30943:41;;31084:38;31101:6;31109:12;31084:16;:38::i;:::-;31075:47;;;31127:1;31074:54:::0;31070:87:::1;;31137:20;;-1:-1:-1::0;;;31137:20:41::1;;;;;;;;;;;31070:87;31168:32;31175:6;31183;31191:8;31168:6;:32::i;:::-;-1:-1:-1::0;1777:1:41;1768:6;:10;30724:483;;-1:-1:-1;;30724:483:41:o;7134:109::-;7187:15;7221;7214:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7134:109;:::o;6967:63::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6967:63:41;;;-1:-1:-1;;;6967:63:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;60047:893::-;60232:15;:22;60282:13;:20;60126:21;;;;;;60232:22;60333:19;60282:20;60232:22;60333:19;:::i;:::-;-1:-1:-1;;;;;60321:32:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60321:32:41;-1:-1:-1;60312:41:41;-1:-1:-1;60388:19:41;60400:7;60388:9;:19;:::i;:::-;-1:-1:-1;;;;;60374:34:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60374:34:41;-1:-1:-1;60363:45:41;-1:-1:-1;60438:19:41;60450:7;60438:9;:19;:::i;:::-;-1:-1:-1;;;;;60427:31:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60427:31:41;;60418:40;;60473:9;60468:194;60492:9;60488:1;:13;60468:194;;;60534:28;60543:15;60559:1;60543:18;;;;;;;;:::i;60534:28::-;60522:6;60529:1;60522:9;;;;;;;;:::i;:::-;;;;;;:40;-1:-1:-1;;;;;60522:40:41;;;-1:-1:-1;;;;;60522:40:41;;;;;60590:30;60601:15;60617:1;60601:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;60590:10;:30::i;:::-;60576:8;60585:1;60576:11;;;;;;;;:::i;:::-;;;;;;:44;;;;;60646:5;60634:6;60641:1;60634:9;;;;;;;;:::i;:::-;:17;;;:9;;;;;;;;;;;:17;60503:3;;;:::i;:::-;;;60468:194;;;;60677:9;60672:262;60696:7;60692:1;:11;60672:262;;;60761:26;60770:13;60784:1;60770:16;;;;;;;;:::i;60761:26::-;60735:15;:22;60724:6;;60731:26;;:1;:26;:::i;:::-;60724:34;;;;;;;;:::i;:::-;;;;;;:63;-1:-1:-1;;;;;60724:63:41;;;-1:-1:-1;;;;;60724:63:41;;;;;60840:28;60851:13;60865:1;60851:16;;;;;;;;:::i;60840:28::-;60814:15;:22;60801:8;;60810:26;;:1;:26;:::i;:::-;60801:36;;;;;;;;:::i;:::-;;;;;;;;;;:67;60893:15;:22;60919:4;;60882:6;;60889:26;;:1;:26;:::i;:::-;60882:34;;;;;;;;:::i;:::-;:41;;;:34;;;;;;;;;;;:41;60705:3;;;:::i;:::-;;;60672:262;;;;60202:738;;60047:893;;;:::o;54817:1117::-;55033:4;-1:-1:-1;;;;;55053:26:41;;55074:4;55053:26;55049:66;;55088:27;;-1:-1:-1;;;55088:27:41;;;;;;;;;;;55049:66;55143:8;;;;;-1:-1:-1;;;;;55143:8:41;55129:10;:22;55125:62;;55160:27;;-1:-1:-1;;;55160:27:41;;;;;;;;;;;55125:62;55198:25;55226:35;;;;55237:6;55226:35;:::i;:::-;55198:63;;55311:7;55306:411;55328:4;:11;55324:1;:15;;;55306:411;;;55360:15;55378:4;55383:1;55378:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;-1:-1:-1;;;;;55485:25:41;;55378:15;55485:25;;;:16;:25;;;;;;;;55378:15;;-1:-1:-1;55485:25:41;;55480:79;;55519:40;;-1:-1:-1;;;55519:40:41;;-1:-1:-1;;;;;7206:32:98;;55519:40:41;;;7188:51:98;7161:18;;55519:40:41;7027:218:98;55480:79:41;55578:7;55573:134;55595:4;55600:1;55595:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;:23;55591:1;:27;;;55573:134;;;55643:49;55672:4;55677:1;55672:7;;;;;;;;;;:::i;55643:49::-;-1:-1:-1;55620:3:41;;;;:::i;:::-;;;;55573:134;;;;55346:371;55341:3;;;;:::i;:::-;;;55306:411;;;;55775:9;55770:136;55790:18;;;55770:136;;;55858:8;;55829:66;;55858:8;;;-1:-1:-1;;;;;55858:8:41;55882;;55891:1;55882:11;;;;;;;:::i;:::-;;;;;;;55869:7;;55877:1;55869:10;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;55835:6;;55842:1;55835:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;55829:28:41;;:66;:28;:66::i;:::-;55810:3;;;:::i;:::-;;;55770:136;;;-1:-1:-1;55923:4:41;;54817:1117;-1:-1:-1;;;;;;;;;;;54817:1117:41:o;31483:507::-;31569:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;31699:20:::1;31722:18;31699:20:::0;31722:11:::1;:18::i;:::-;31699:41;;31871:34;31884:6;31892:12;31871;:34::i;:::-;31862:43;;;31910:1;31861:50:::0;31857:83:::1;;31920:20;;-1:-1:-1::0;;;31920:20:41::1;;;;;;;;;;;31857:83;31951:32;31958:6;31966;31974:8;31951:6;:32::i;1056:20:45:-:0;;;;;;;:::i;10548:269:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;10719:18:41::1;:16;:18::i;:::-;10747:63;10760:5;10767:10;10779:17;10798:11;10747:12;:63::i;27075:366::-:0;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;26429:6:41::1;27153:7;:35;:74;;;;26580:6;27192:7;:35;27153:74;27149:131;;;27248:32;;-1:-1:-1::0;;;27248:32:41::1;;;;;;;;;;;27149:131;27317:15;::::0;;27342:25;;;;27382:52:::1;::::0;;23395:25:98;;;23451:2;23436:18;;23429:34;;;27382:52:41::1;::::0;23368:18:98;27382:52:41::1;23221:248:98::0;13321:160:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;13427:47:41::1;13443:5;13450:10;13462:11;13427:15;:47::i;:::-;13321:160:::0;;;:::o;42137:185::-;42193:14;42219:16;:14;:16::i;:::-;42253:6;;42263:1;42253:11;42245:34;;;;-1:-1:-1;;;42245:34:41;;;;;;;:::i;:::-;42298:17;42310:4;42298:11;:17::i;28062:169::-;28133:4;28149:32;28170:10;28149:20;:32::i;:::-;28198:26;28213:2;28217:6;28198:14;:26::i;1239:153::-;1305:9;1300:85;1320:15;;;1300:85;;;1342:43;1377:4;;1382:1;1377:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1342:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1350:4:41;;1342:43;-1:-1:-1;;1342:34:41;:43;-1:-1:-1;1342:43:41:i;:::-;-1:-1:-1;1337:3:41;;;;:::i;:::-;;;;1300:85;;18252:215;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;18369:31:41;;18338:71:::1;::::0;;-1:-1:-1;;;;;18369:31:41;;::::1;24745:34:98::0;;24815:15;;;24810:2;24795:18;;24788:43;18338:71:41::1;::::0;24680:18:98;18338:71:41::1;;;;;;;18420:31:::0;:40;;-1:-1:-1;;;;;;18420:40:41::1;-1:-1:-1::0;;;;;18420:40:41;;;::::1;::::0;;;::::1;::::0;;18252:215::o;19501:175::-;19565:11;;19544:4;;19565:11;;;;;19560:88;;19599:8;;:38;;-1:-1:-1;;;19599:38:41;;19631:4;19599:38;;;7188:51:98;19599:8:41;;;;-1:-1:-1;;;;;19599:8:41;;:23;;7161:18:98;;19599:38:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19560:88::-;-1:-1:-1;19664:5:41;;19501:175::o;43304:189::-;43371:14;43397:20;43420:13;:11;:13::i;:::-;43397:36;;43452:34;43465:6;43473:12;43452;:34::i;33530:497::-;33665:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;33795:20:::1;33818:18;33795:20:::0;33818:11:::1;:18::i;:::-;33795:41;;33933:38;33950:6;33958:12;33933:16;:38::i;:::-;33924:47;;33982:38;33988:6;33996;34004:8;34014:5;33982;:38::i;:::-;-1:-1:-1::0;1777:1:41;1768:6;:10;33530:497;;-1:-1:-1;;;33530:497:41:o;17864:260::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;17726:4:41::1;-1:-1:-1::0;;;;;17943:17:41;::::1;;17939:53;;;17969:23;;-1:-1:-1::0;;;17969:23:41::1;;;;;;;;;;;17939:53;18036:7;:29:::0;18007:64:::1;::::0;;-1:-1:-1;;;;;18036:29:41;;::::1;25299:34:98::0;;25369:15;;;25364:2;25349:18;;25342:43;18007:64:41::1;::::0;25235:18:98;18007:64:41::1;;;;;;;18082:7;:35:::0;;-1:-1:-1;;18082:35:41::1;-1:-1:-1::0;;;;;18082:35:41;;;::::1;::::0;;;::::1;::::0;;17864:260::o;34905:532::-;35038:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;35168:20:::1;35191:18;35168:20:::0;35191:11:::1;:18::i;:::-;35168:41;;35308:38;35325:6;35333:12;35308:16;:38::i;:::-;35299:47;;;35351:1;35298:54:::0;35294:87:::1;;35361:20;;-1:-1:-1::0;;;35361:20:41::1;;;;;;;;;;;35294:87;35392:38;35398:6;35406;35414:8;35424:5;35392;:38::i;42928:152::-:0;42999:14;43034:39;43051:6;43059:13;:11;:13::i;:::-;43034:16;:39::i;46282:165::-;46348:7;46375:6;;46385:1;46375:11;46367:34;;;;-1:-1:-1;;;46367:34:41;;;;;;;:::i;:::-;46418:22;46427:5;46434;46418:8;:22::i;9389:187::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;9474:29:41::1;::::0;::::1;9506:5;9474:29:::0;;;:17:::1;:29;::::0;;;;;;;:37;;-1:-1:-1;;9474:37:41::1;::::0;;9526:43;;25562:42:98;;;25620:18;;;25613:50;;;;9526:43:41::1;::::0;25535:18:98;9526:43:41::1;25396:273:98::0;3808:1483:45;4027:15;4015:8;:27;;4007:63;;;;-1:-1:-1;;;4007:63:45;;25876:2:98;4007:63:45;;;25858:21:98;25915:2;25895:18;;;25888:30;25954:25;25934:18;;;25927:53;25997:18;;4007:63:45;25674:347:98;4007:63:45;4235:24;4262:805;4398:18;:16;:18::i;:::-;-1:-1:-1;;;;;4843:13:45;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4481:449;;4525:165;4481:449;;;26313:25:98;26392:18;;;26385:43;;;;26464:15;;;26444:18;;;26437:43;26496:18;;;26489:34;;;26539:19;;;26532:35;;;;26583:19;;;;26576:35;;;4481:449:45;;;;;;;;;;26285:19:98;;;4481:449:45;;;4442:514;;;;;;;;-1:-1:-1;;;4320:658:45;;;26880:27:98;26923:11;;;26916:27;;;;26959:12;;;26952:28;;;;26996:12;;4320:658:45;;;-1:-1:-1;;4320:658:45;;;;;;;;;4289:707;;4320:658;4289:707;;;;4262:805;;;;;;;;;27246:25:98;27319:4;27307:17;;27287:18;;;27280:45;27341:18;;;27334:34;;;27384:18;;;27377:34;;;27218:19;;4262:805:45;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4262:805:45;;-1:-1:-1;;4262:805:45;;;-1:-1:-1;;;;;;;5090:30:45;;;;;;:59;;;5144:5;-1:-1:-1;;;;;5124:25:45;:16;-1:-1:-1;;;;;5124:25:45;;5090:59;5082:86;;;;-1:-1:-1;;;5082:86:45;;27624:2:98;5082:86:45;;;27606:21:98;27663:2;27643:18;;;27636:30;-1:-1:-1;;;27682:18:98;;;27675:44;27736:18;;5082:86:45;27422:338:98;5082:86:45;-1:-1:-1;;;;;5183:27:45;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5253:31;160:25:98;;;5183:36:45;;5253:31;;;;;133:18:98;5253:31:45;;;;;;;3808:1483;;;;;;;:::o;46802:162:41:-;46866:7;46893:6;;46903:1;46893:11;46885:34;;;;-1:-1:-1;;;46885:34:41;;;;;;;:::i;:::-;46936:21;46945:5;46952:4;46936:8;:21::i;6736:29::-;;;;;;;;;;;;20035:96;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20104:11:41::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;20104:20:41;;::::1;::::0;;;::::1;::::0;;20035:96::o;44148:196::-;44218:14;44244:20;44267:13;:11;:13::i;:::-;44244:36;;44299:38;44316:6;44324:12;44299:16;:38::i;1312:161:25:-;778:5;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;1392:5:::1;:16:::0;;-1:-1:-1;;;;;;1392:16:25::1;-1:-1:-1::0;;;;;1392:16:25;::::1;::::0;;::::1;::::0;;;1424:42:::1;::::0;1445:10:::1;::::0;1424:42:::1;::::0;-1:-1:-1;;1424:42:25::1;1312:161:::0;:::o;493:384:97:-;621:12;;648:7;;644:227;;671:5;;688:7;694:1;688:3;:7;:::i;:::-;682:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;671:26;;;;;;;;;;;;;;;;;;;;;;682:14;;;671:26;;;;;682:14;671:26;;;;;;;;;;682:14;;;;;;;;;;;;;;671:26;;;;682:14;729:7;;:3;:7;:::i;:::-;717:19;;712:65;742:5;738:9;;:1;:9;712:65;;;765:5;771;775:1;771;:5;:::i;:::-;765:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:5;760:1;754:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;749:3;;;;;:::i;:::-;;;;712:65;;;;807:5;792;798;792:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;644:227;;;-1:-1:-1;843:17:97;;;;;;;-1:-1:-1;843:17:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:384:97:o;19769:166:41:-;19824:11;;;;;;;19819:110;;19855:8;;:38;;-1:-1:-1;;;19855:38:41;;19887:4;19855:38;;;7188:51:98;19855:8:41;;;;-1:-1:-1;;;;;19855:8:41;;:23;;7161:18:98;;19855:38:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19851:67;;;19902:16;;-1:-1:-1;;;19902:16:41;;;;;;;;;;;19851:67;19769:166::o;39162:1998::-;39288:15;:22;39231:14;;;39288:22;-1:-1:-1;;;;;39350:33:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39350:33:41;;39320:63;;39393:31;39441:20;-1:-1:-1;;;;;39427:35:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39427:35:41;;39393:69;;39552:18;39548:1606;;;39591:9;39586:385;39606:20;39602:1;:24;39586:385;;;39651:15;39669;39685:1;39669:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;39651:36;;39859:27;39877:8;39859:17;:27::i;:::-;39839:14;39854:1;39839:17;;;;;;;;:::i;:::-;;;;;;:47;;;;39891:1;39838:54;39834:68;;39894:8;;;39834:68;39938:18;39947:8;39938;:18::i;:::-;39920:12;39933:1;39920:15;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;39920:36:41;;;-1:-1:-1;;;;;39920:36:41;;;;;39633:338;39586:385;39628:3;;;:::i;:::-;;;39586:385;;;-1:-1:-1;39993:11:41;;40045:5;;39993:58;;-1:-1:-1;;;39993:58:41;;-1:-1:-1;;;;;39993:11:41;;;;:21;;:58;;40015:12;;40029:14;;40045:5;;39993:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39984:67;;39548:1606;;;40111:13;:20;40082:26;40111:20;-1:-1:-1;;;;;40173:31:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40173:31:41;;40145:59;;40218:29;40264:18;-1:-1:-1;;;;;40250:33:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40250:33:41;;40218:65;;40302:9;40297:365;40317:20;40313:1;:24;40297:365;;;40362:15;40380;40396:1;40380:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;40362:36;;40557:20;40568:8;40557:10;:20::i;:::-;40537:14;40552:1;40537:17;;;;;;;;:::i;:::-;;;;;;:40;;;;40582:1;40536:47;40532:61;;40585:8;;;40532:61;40629:18;40638:8;40629;:18::i;:::-;40611:12;40624:1;40611:15;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;40611:36:41;;;-1:-1:-1;;;;;40611:36:41;;;;;40344:318;40297:365;40339:3;;;:::i;:::-;;;40297:365;;;;40680:9;40675:357;40695:18;40691:1;:22;40675:357;;;40738:15;40756:13;40770:1;40756:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;40738:34;;40929:20;40940:8;40929:10;:20::i;:::-;40911:12;40924:1;40911:15;;;;;;;;:::i;:::-;;;;;;:38;;;;40954:1;40910:45;40906:59;;40957:8;;;40906:59;40999:18;41008:8;40999;:18::i;:::-;40983:10;40994:1;40983:13;;;;;;;;:::i;:::-;;;;;;:34;-1:-1:-1;;;;;40983:34:41;;;-1:-1:-1;;;;;40983:34:41;;;;;40720:312;40675:357;40715:3;;;:::i;:::-;;;40675:357;;;-1:-1:-1;41054:11:41;;41137:5;;41054:89;;-1:-1:-1;;;41054:89:41;;-1:-1:-1;;;;;41054:11:41;;;;:26;;:89;;41081:12;;41095:14;;41111:10;;41123:12;;41137:5;;;;41054:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41045:98;;40068:1086;;;39548:1606;39247:1913;;;39162:1998;;;:::o;7943:406::-;8015:26;;;;;;;:14;:26;;;;;;;;8010:75;;8050:35;;-1:-1:-1;;;8050:35:41;;10702:10:98;10690:23;;8050:35:41;;;10672:42:98;10645:18;;8050:35:41;10528:192:98;8010:75:41;8123:5;;-1:-1:-1;;;;;8123:5:41;8099:20;8108:10;8099:8;:20::i;:::-;-1:-1:-1;;;;;8099:29:41;;8095:110;;8167:5;;-1:-1:-1;;;;;8167:5:41;8183:20;8192:10;8183:8;:20::i;:::-;8137:68;;-1:-1:-1;;;8137:68:41;;-1:-1:-1;;;;;24763:15:98;;;8137:68:41;;;24745:34:98;24815:15;;24795:18;;;24788:43;24680:18;;8137:68:41;24533:304:98;8095:110:41;8219:27;;;;;;;:15;:27;;;;;:34;-1:-1:-1;;;8219:34:41;;;;8215:89;;;8262:42;;-1:-1:-1;;;8262:42:41;;10702:10:98;10690:23;;8262:42:41;;;10672::98;10645:18;;8262:42:41;10528:192:98;8215:89:41;8314:15;:28;;-1:-1:-1;;8314:28:41;;;;;;;;;;;;7943:406::o;47094:306::-;47229:11;;47181:14;;47260:16;;:133;;47349:44;:6;47367:12;47381:11;47349:17;:44::i;:::-;47260:133;;;47291:43;47313:2;47317:5;;;;;;;;;-1:-1:-1;;;;;47317:5:41;-1:-1:-1;;;;;47317:14:41;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47291:6;;:43;:21;:43::i;59476:217::-;59569:25;;;59534:5;59569:25;;;:15;:25;;;;;;:33;;59619:67;;-1:-1:-1;;;59619:67:41;;-1:-1:-1;;;;;59569:33:41;;;;;;59619:28;;:67;;59569:33;59648:37;;59619:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;48378:304::-;48513:11;;48465:14;;48544:16;;:131;;48633:42;:6;48649:11;48662:12;48633:15;:42::i;48544:131::-;48597:5;;:16;;;-1:-1:-1;;;48597:16:41;;;;48575:43;;-1:-1:-1;;;;;48597:5:41;;:14;;:16;;;;;;;;;;;;;;:5;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48575:6;;48615:2;48575:21;:43::i;20224:108::-;20280:10;;;;20276:49;;;20299:26;;-1:-1:-1;;;20299:26:41;;;;;;;;;;;27600:380;-1:-1:-1;;;;;27688:29:41;;27669:16;27688:29;;;:22;:29;;;;;;27731:13;;27727:247;;27760:29;27803:15;;27792:8;:26;;;;:::i;:::-;27760:58;;27860:15;27836:21;:39;27832:131;;;27900:63;;-1:-1:-1;;;27900:63:41;;;;;23395:25:98;;;27947:15:41;23436:18:98;;;23429:34;23368:18;;27900:63:41;23221:248:98;27727:247:41;27659:321;27600:380;:::o;3027:592:45:-;-1:-1:-1;;;;;3179:15:45;;3145:4;3179:15;;;:9;:15;;;;;;;;3195:10;3179:27;;;;;;;;-1:-1:-1;;3257:28:45;;3253:80;;3317:16;3327:6;3317:7;:16;:::i;:::-;-1:-1:-1;;;;;3287:15:45;;;;;;:9;:15;;;;;;;;3303:10;3287:27;;;;;;;:46;3253:80;-1:-1:-1;;;;;3344:15:45;;;;;;:9;:15;;;;;:25;;3363:6;;3344:15;:25;;3363:6;;3344:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3515:13:45;;;;;;;:9;:13;;;;;;;:23;;;;;;3564:26;3515:13;;3564:26;;;-1:-1:-1;;;;;;;;;;;3564:26:45;;;3532:6;160:25:98;;148:2;133:18;;14:177;3564:26:45;;;;;;;;-1:-1:-1;3608:4:45;;3027:592;-1:-1:-1;;;;3027:592:45:o;59116:223:41:-;59213:25;;;59176:7;59213:25;;;:15;:25;;;;;;:33;;59263:69;;-1:-1:-1;;;59263:69:41;;-1:-1:-1;;;;;59213:33:41;;;;;;59263:30;;:69;;59213:33;59294:37;;59263:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13592:506::-;13705:15;;;;;;13691:29;;;;13687:75;;13729:33;;-1:-1:-1;;;13729:33:41;;;;;;;;;;;13687:75;13777:11;13773:180;;;13855:27;:13;13876:5;13855:20;:27::i;:::-;13773:180;;;13913:29;:15;13936:5;13913:22;:29::i;:::-;13963:26;;;13992:5;13963:26;;;:14;:26;;;;;;;;:34;;-1:-1:-1;;13963:34:41;;;14014:15;:27;;;;;14007:34;;-1:-1:-1;;;;;;14007:34:41;;;14014:27;14007:34;13963;14007;;13992:5;14007:34;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;14057:34:41;;;31568:10:98;31605:15;;;31587:34;;31657:15;;31652:2;31637:18;;31630:43;14057:34:41;;31531:18:98;14057:34:41;;;;;;;13592:506;;;:::o;5480:446:45:-;5545:7;5642:95;5775:4;5759:22;;;;;;:::i;:::-;;;;;;;;;;5610:295;;;32792:25:98;;;;32833:18;;32826:34;;;;5803:14:45;32876:18:98;;;32869:34;5839:13:45;32919:18:98;;;32912:34;5882:4:45;32962:19:98;;;32955:61;32764:19;;5610:295:45;;;;;;;;;;;;5583:336;;;;;;5564:355;;5480:446;:::o;1898:752:96:-;2102:9;;;2233:19;;2226:27;2258:9;;2272;;;2269:16;;2255:31;2222:65;2212:121;;2317:1;2314;2307:12;2212:121;2631:1;2617:11;2613:1;2610;2606:9;2602:27;2598:35;2593:1;2586:9;2579:17;2575:59;2570:64;;1898:752;;;;;:::o;6468:198:20:-;6551:12;6582:77;6603:6;6611:4;6582:77;;;;;;;;;;;;;;;;;:20;:77::i;8994:290:41:-;9125:8;;:49;;-1:-1:-1;;;9125:49:41;;10702:10:98;10690:23;;9125:49:41;;;10672:42:98;9125:8:41;;;;-1:-1:-1;;;;;9125:8:41;;:37;;10645:18:98;;9125:49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9184:29:41;;;;;;;:17;:29;;;;;;;;;:36;;-1:-1:-1;;9184:36:41;9216:4;9184:36;;;;;;9235:42;;25562::98;;;25620:18;;;25613:50;9235:42:41;;25535:18:98;9235:42:41;25396:273:98;1357:535:96;1563:9;;;1694:19;;1687:27;1719:9;;1733;;;1730:16;;1716:31;1683:65;1673:121;;1778:1;1775;1768:12;1673:121;1857:19;;1357:535;-1:-1:-1;;1357:535:96:o;47530:306:41:-;47665:11;;47617:14;;47696:16;;:133;;47785:44;:6;47803:11;47816:12;47785:17;:44::i;30041:412::-;30126:39;30140:6;30148;30156:8;30126:13;:39::i;:::-;30245:5;;:57;;-1:-1:-1;;;;;30245:5:41;30268:10;30288:4;30295:6;30245:22;:57::i;:::-;30313:23;30319:8;30329:6;30313:5;:23::i;:::-;30352:45;;;23395:25:98;;;23451:2;23436:18;;23429:34;;;-1:-1:-1;;;;;30352:45:41;;;30360:10;;30352:45;;23368:18:98;30352:45:41;;;;;;;30408:38;30421:6;30429;30437:8;30408:12;:38::i;4327:1454:48:-;4438:12;4565:4;4559:11;-1:-1:-1;;;4688:17:48;4681:93;4821:2;4817:1;4798:17;4794:25;4787:37;4901:6;4896:2;4877:17;4873:26;4866:42;5703:2;5700:1;5696:2;5677:17;5674:1;5667:5;5660;5655:51;5224:16;5217:24;5211:2;5193:16;5190:24;5186:1;5182;5176:8;5173:15;5169:46;5166:76;4966:754;4955:765;;;5748:7;5740:34;;;;-1:-1:-1;;;5740:34:48;;33229:2:98;5740:34:48;;;33211:21:98;33268:2;33248:18;;;33241:30;-1:-1:-1;;;33287:18:98;;;33280:44;33341:18;;5740:34:48;33027:338:98;47955:300:41;48086:11;;48038:14;;48117:16;;:131;;48206:42;:6;48222:12;48236:11;48206:15;:42::i;10922:1552::-;11102:26;;;;;;;:14;:26;;;;;;;;11098:78;;;11137:39;;-1:-1:-1;;;11137:39:41;;10702:10:98;10690:23;;11137:39:41;;;10672:42:98;10645:18;;11137:39:41;10528:192:98;11098:78:41;11251:29;;;;;;;:17;:29;;;;;;;;11246:85;;11289:42;;-1:-1:-1;;;11289:42:41;;10702:10:98;10690:23;;11289:42:41;;;10672::98;10645:18;;11289:42:41;10528:192:98;11246:85:41;11515:8;;:40;;-1:-1:-1;;;11515:40:41;;10702:10:98;10690:23;;11515:40:41;;;10672:42:98;11457:15:41;;;;;;11515:8;;;-1:-1:-1;;;;;11515:8:41;;:28;;10645:18:98;;11515:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11515:40:41;;;;;;;;;;;;:::i;:::-;11456:99;;;;;;11580:11;11570:21;;:6;:21;;;11566:66;;11600:32;;-1:-1:-1;;;11600:32:41;;10702:10:98;10690:23;;11600:32:41;;;10672:42:98;10645:18;;11600:32:41;10528:192:98;11566:66:41;11726:179;;;;;;;;-1:-1:-1;;;;;11726:179:41;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:27;;;-1:-1:-1;11696:27:41;;;:15;:27;;;;;;:209;;;;;;;;-1:-1:-1;;;11696:209:41;-1:-1:-1;;;;;;11696:209:41;;;;;;;;;;;;;;11726:179;;11696:27;:209;;;;;;;;:::i;:::-;-1:-1:-1;11696:209:41;;;;;;;;;;;;:::i;:::-;;;;;11920:6;11916:460;;;11946:13;:20;7600:2;-1:-1:-1;11942:90:41;;11992:40;;-1:-1:-1;;;11992:40:41;;7600:2;11992:40;;;160:25:98;133:18;;11992:40:41;14:177:98;11942:90:41;12100:36;:13;12118:5;12125:10;12100:17;:36::i;:::-;11916:460;;;12171:15;:22;7600:2;-1:-1:-1;12167:92:41;;12219:40;;-1:-1:-1;;;12219:40:41;;7600:2;12219:40;;;160:25:98;133:18;;12219:40:41;14:177:98;12167:92:41;12327:38;:15;12347:5;12354:10;12327:19;:38::i;:::-;12386:26;;;;;;;:14;:26;;;;;;;:33;;-1:-1:-1;;12386:33:41;12415:4;12386:33;;;12435:32;;;;;12401:10;;12461:5;;31568:10:98;31605:15;;;31587:34;;31657:15;;31652:2;31637:18;;31630:43;31546:2;31531:18;;31387:292;12435:32:41;;;;;;;;11036:1438;;;10922:1552;;;;:::o;2648:373:45:-;2744:10;2718:4;2734:21;;;:9;:21;;;;;:31;;2759:6;;2734:21;2718:4;;2734:31;;2759:6;;2734:31;:::i;:::-;;;;-1:-1:-1;;;;;;;2911:13:45;;;;;;:9;:13;;;;;;;:23;;;;;;2960:32;2969:10;;-1:-1:-1;;;;;;;;;;;2960:32:45;;;2928:6;160:25:98;;148:2;133:18;;14:177;31996:654:41;32095:47;32110:6;32118;32126:8;32136:5;32095:14;:47::i;:::-;32157:10;-1:-1:-1;;;;;32157:19:41;;;32153:228;;-1:-1:-1;;;;;32210:16:41;;32192:15;32210:16;;;:9;:16;;;;;;;;32227:10;32210:28;;;;;;;;-1:-1:-1;;32293:28:41;;32289:81;;32354:16;32364:6;32354:7;:16;:::i;:::-;-1:-1:-1;;;;;32323:16:41;;;;;;:9;:16;;;;;;;;32340:10;32323:28;;;;;;;:47;32289:81;32178:203;32153:228;32391:20;32397:5;32404:6;32391:5;:20::i;:::-;32427:53;;;23395:25:98;;;23451:2;23436:18;;23429:34;;;-1:-1:-1;;;;;32427:53:41;;;;;;;;32436:10;;32427:53;;23368:18:98;32427:53:41;;;;;;;32490:34;32507:6;32515:8;32490:16;:34::i;45071:825::-;45142:14;45168:16;:14;:16::i;:::-;-1:-1:-1;;;;;45274:29:41;;45255:16;45274:29;;;:22;:29;;;;;;45317:13;;45313:169;;45346:29;45389:15;;45378:8;:26;;;;:::i;:::-;45346:58;;45446:15;45422:21;:39;45418:53;;;45470:1;45463:8;;;;;;45418:53;45332:150;45313:169;45536:20;45559:18;45571:5;45559:11;:18::i;:::-;-1:-1:-1;;;;;45621:16:41;;45587:14;45621:16;;;:9;:16;;;;;;45536:41;;-1:-1:-1;45587:14:41;45604:48;;45536:41;45604:16;:48::i;:::-;45587:65;;45663:20;45686:17;45698:4;45686:11;:17::i;:::-;45663:40;;45732:12;45722:6;:22;;:46;;45756:12;45722:46;;;45747:6;45722:46;45713:55;;45783:8;45779:61;;;45802:38;45819:6;45827:12;45802:16;:38::i;:::-;45793:47;;45779:61;45158:738;;;;45071:825;;;;:::o;58357:427::-;58513:25;;;58424:7;58513:25;;;:15;:25;;;;;:32;-1:-1:-1;;;58513:32:41;;;;58509:46;;;-1:-1:-1;58554:1:41;;58357:427;-1:-1:-1;58357:427:41:o;58509:46::-;58596:25;;;;;;;:15;:25;;;;;;;:33;;58584:193;;-1:-1:-1;;;58584:193:41;;-1:-1:-1;;;;;58596:33:41;;;;58584:63;;:193;;58596:33;58665:37;;;58720:43;;;58584:193;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;371:413:96:-;502:7;541:10;525:26;;:12;:26;;;521:257;;-1:-1:-1;574:6:96;567:13;;521:257;616:10;601:25;;:12;:25;;;597:181;;;663:25;676:12;663:10;:25;:::i;:::-;658:31;;:2;:31;:::i;:::-;649:40;;:6;:40;:::i;:::-;642:47;;;;597:181;741:25;756:10;741:12;:25;:::i;:::-;736:31;;:2;:31;:::i;:::-;727:40;;:6;:40;:::i;1072:258:97:-;1159:12;;1190:11;;;;-1:-1:-1;1182:43:97;;;;-1:-1:-1;;;1182:43:97;;38879:2:98;1182:43:97;;;38861:21:98;38918:2;38898:18;;;38891:30;-1:-1:-1;;;38937:18:98;;;38930:49;38996:18;;1182:43:97;38677:343:98;1182:43:97;1241:17;;;1236:65;1264:7;1270:1;1264:3;:7;:::i;:::-;1260:1;:11;1236:65;;;1289:5;1295;:1;1299;1295:5;:::i;:::-;1289:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1278:5;1284:1;1278:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1273:3;;;;;:::i;:::-;;;;1236:65;;;;1312:5;:11;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1312:11:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1072:258:97:o;6852:325:20:-;6993:12;7018;7032:23;7059:6;-1:-1:-1;;;;;7059:19:20;7079:4;7059:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7017:67;;;;7101:69;7128:6;7136:7;7145:10;7157:12;7101:26;:69::i;:::-;7094:76;6852:325;-1:-1:-1;;;;;;6852:325:20:o;28961:472:41:-;29060:18;:16;:18::i;:::-;29088:16;:14;:16::i;:::-;29118:10;-1:-1:-1;;;;;29118:22:41;;;29114:178;;29161:8;;:47;;-1:-1:-1;;;29161:47:41;;29197:10;29161:47;;;7188:51:98;29161:8:41;;;;-1:-1:-1;;;;;29161:8:41;;:35;;7161:18:98;;29161:47:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29156:125;;29233:48;;-1:-1:-1;;;29233:48:41;;29270:10;29233:48;;;7188:51:98;7161:18;;29233:48:41;7027:218:98;29156:125:41;29301:17;29321:20;29332:8;29321:10;:20::i;:::-;29301:40;;29364:9;29355:6;:18;29351:75;;;29382:44;;-1:-1:-1;;;29382:44:41;;;;;23395:25:98;;;23436:18;;;23429:34;;;23368:18;;29382:44:41;23221:248:98;1286:1573:48;1424:12;1551:4;1545:11;-1:-1:-1;;;1674:17:48;1667:93;1807:4;1803:1;1784:17;1780:25;1773:39;1891:2;1886;1867:17;1863:26;1856:38;1971:6;1966:2;1947:17;1943:26;1936:42;2775:2;2772:1;2767:3;2748:17;2745:1;2738:5;2731;2726:52;2294:16;2287:24;2281:2;2263:16;2260:24;2256:1;2252;2246:8;2243:15;2239:46;2236:76;2036:756;2025:767;;;2820:7;2812:40;;;;-1:-1:-1;;;2812:40:48;;39651:2:98;2812:40:48;;;39633:21:98;39690:2;39670:18;;;39663:30;-1:-1:-1;;;39709:18:98;;;39702:50;39769:18;;2812:40:48;39449:344:98;2812:40:48;1414:1445;1286:1573;;;;:::o;6120:325:45:-;6205:6;6190:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6357:13:45;;;;;;:9;:13;;;;;;;;:23;;;;;;6406:32;160:25:98;;;-1:-1:-1;;;;;;;;;;;6406:32:45;133:18:98;6406:32:45;;;;;;;;6120:325;;:::o;29557:195:41:-;29661:15;;29650:35;;29661:15;;29678:6;29650:10;:35::i;:::-;-1:-1:-1;;;;;29695:32:41;;;;;:22;:32;;;;;29730:15;29695:50;;-1:-1:-1;;29557:195:41:o;29826:209::-;29925:16;:14;:16::i;:::-;30001:27;30022:5;30001:20;:27::i;6451:328:45:-;-1:-1:-1;;;;;6523:15:45;;;;;;:9;:15;;;;;:25;;6542:6;;6523:15;:25;;6542:6;;6523:25;:::i;:::-;;;;-1:-1:-1;;6691:11:45;:21;;;;;;;6738:34;;160:25:98;;;-1:-1:-1;;;;;;;6738:34:45;;;-1:-1:-1;;;;;;;;;;;6738:34:45;148:2:98;133:18;6738:34:45;14:177:98;36220:2540:41;36374:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36374:34:41;36446:11;;36472:5;;36446:32;;-1:-1:-1;;;36446:32:41;;-1:-1:-1;;;;;36472:5:41;;;36446:32;;;7188:51:98;36446:11:41;;;:25;;7161:18:98;;36446:32:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36418:25;;;;:60;;;;36517:5;;:16;;-1:-1:-1;;;36517:16:41;;;;-1:-1:-1;;;;;36517:5:41;;;;:14;;:16;;;;;;;;;;;;;;:5;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36511:22;;:2;:22;:::i;:::-;36488:20;;;:45;36566:15;:22;36543:20;36598:2026;36618:12;36614:1;:16;36598:2026;;;36651:15;36669;36685:1;36669:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36731:27:41;36669:18;36731:17;:27::i;:::-;36701:57;;36838:19;36861:1;36838:24;36834:38;;36864:8;;;;36834:38;36886:19;36908:18;36917:8;36908;:18::i;:::-;36968:11;;:40;;-1:-1:-1;;;36968:40:41;;-1:-1:-1;;;;;7206:32:98;;;36968:40:41;;;7188:51:98;36886:40:41;;-1:-1:-1;36968:11:41;;;:25;;7161:18:98;;36968:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36941:11;:24;;:67;;;;;37050:13;-1:-1:-1;;;;;37050:22:41;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37044:30;;:2;:30;:::i;:::-;37022:19;;;:52;;;37272:24;;37088:40;;;;37195:160;;37196:42;37219:19;35905:4;37196:42;:::i;:::-;37195:55;:160;:55;:160::i;:::-;37160:195;;37408:142;37465:11;:20;;;37507:11;:25;;;37408:24;:35;;:142;;;;;:::i;:::-;37373:177;-1:-1:-1;37603:55:41;35905:4;37373:177;37603:55;:::i;:::-;37568:90;;37142:531;37781:14;37849:6;37814:32;:41;37810:621;;;37930:19;37952:149;38016:11;:25;;;38063:11;:20;;;37976:6;35905:4;37953:29;;;;:::i;37952:149::-;38151:19;;;;38172:24;;37930:171;;-1:-1:-1;38128:69:41;;37930:171;;38151:19;38128:22;:69::i;:::-;38119:78;-1:-1:-1;38224:29:41;35905:4;38119:78;38224:29;:::i;:::-;38215:38;;38280:1;38271:10;;37857:439;37810:621;;;-1:-1:-1;38329:19:41;38375:41;38384:32;38375:6;:41;:::i;:::-;38366:50;;37810:621;38484:41;38498:8;38508:6;38516:8;38484:13;:41::i;:::-;38595:6;38605:1;38595:11;38591:22;;38608:5;;;;;;;38591:22;36637:1987;;;;;36598:2026;36632:3;;;:::i;:::-;;;36598:2026;;;-1:-1:-1;38700:10:41;;38696:57;;38719:34;;-1:-1:-1;;;38719:34:41;;;;;160:25:98;;;133:18;;38719:34:41;14:177:98;7465:628:20;7645:12;7673:7;7669:418;;;7700:10;:17;7721:1;7700:22;7696:286;;-1:-1:-1;;;;;1465:19:20;;;7907:60;;;;-1:-1:-1;;;7907:60:20;;40000:2:98;7907:60:20;;;39982:21:98;40039:2;40019:18;;;40012:30;40078:31;40058:18;;;40051:59;40127:18;;7907:60:20;39798:353:98;7907:60:20;-1:-1:-1;8002:10:20;7995:17;;7669:418;8043:33;8051:10;8063:12;8043:7;:33::i;57000:414:41:-;57090:25;;;57072:15;57090:25;;;:15;:25;;;;;;;:33;;57175:222;;-1:-1:-1;;;;;57090:33:41;;;;57133:274;;-1:-1:-1;;;57215:28:41;57175:222;;57261:6;;57090:33;57285:37;;;57340:43;;;57175:222;;;:::i;:::-;;;;-1:-1:-1;;57175:222:41;;;;;;;;;;;;;;-1:-1:-1;;;;;57175:222:41;-1:-1:-1;;;;;;57175:222:41;;;;;;;;;;-1:-1:-1;;;;;57133:28:41;;;;:274::i;57719:462::-;57830:25;;;57812:15;57830:25;;;:15;:25;;;;;;;:33;;57915:249;;-1:-1:-1;;;;;57830:33:41;;;;57873:301;;-1:-1:-1;;;57955:29:41;57915:249;;58002:6;;58026:8;;57830:33;58052:37;;;58107:43;;;;;57915:249;;;:::i;8615:540:20:-;8774:17;;:21;8770:379;;9002:10;8996:17;9058:15;9045:10;9041:2;9037:19;9030:44;8770:379;9125:12;9118:20;;-1:-1:-1;;;9118:20:20;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:250:98;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:98;420:16;;413:27;196:250::o;451:271::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;704:2;683:15;-1:-1:-1;;679:29:98;670:39;;;;711:4;666:50;;451:271;-1:-1:-1;;451:271:98:o;727:220::-;876:2;865:9;858:21;839:4;896:45;937:2;926:9;922:18;914:6;896:45;:::i;952:163::-;1019:20;;1079:10;1068:22;;1058:33;;1048:61;;1105:1;1102;1095:12;1048:61;952:163;;;:::o;1120:184::-;1178:6;1231:2;1219:9;1210:7;1206:23;1202:32;1199:52;;;1247:1;1244;1237:12;1199:52;1270:28;1288:9;1270:28;:::i;1309:180::-;1368:6;1421:2;1409:9;1400:7;1396:23;1392:32;1389:52;;;1437:1;1434;1427:12;1389:52;-1:-1:-1;1460:23:98;;1309:180;-1:-1:-1;1309:180:98:o;1494:468::-;1554:3;1592:5;1586:12;1619:6;1614:3;1607:19;1645:4;1674:2;1669:3;1665:12;1658:19;;1711:2;1704:5;1700:14;1732:1;1742:195;1756:6;1753:1;1750:13;1742:195;;;1821:13;;-1:-1:-1;;;;;1817:39:98;1805:52;;1877:12;;;;1912:15;;;;1853:1;1771:9;1742:195;;;-1:-1:-1;1953:3:98;;1494:468;-1:-1:-1;;;;;1494:468:98:o;1967:283::-;2161:2;2150:9;2143:21;2124:4;2181:63;2240:2;2229:9;2225:18;2217:6;2181:63;:::i;2255:131::-;-1:-1:-1;;;;;2330:31:98;;2320:42;;2310:70;;2376:1;2373;2366:12;2391:315;2459:6;2467;2520:2;2508:9;2499:7;2495:23;2491:32;2488:52;;;2536:1;2533;2526:12;2488:52;2575:9;2562:23;2594:31;2619:5;2594:31;:::i;:::-;2644:5;2696:2;2681:18;;;;2668:32;;-1:-1:-1;;;2391:315:98:o;2903:127::-;2964:10;2959:3;2955:20;2952:1;2945:31;2995:4;2992:1;2985:15;3019:4;3016:1;3009:15;3035:257;3107:4;3101:11;;;3139:17;;-1:-1:-1;;;;;3171:34:98;;3207:22;;;3168:62;3165:88;;;3233:18;;:::i;:::-;3269:4;3262:24;3035:257;:::o;3297:275::-;3368:2;3362:9;3433:2;3414:13;;-1:-1:-1;;3410:27:98;3398:40;;-1:-1:-1;;;;;3453:34:98;;3489:22;;;3450:62;3447:88;;;3515:18;;:::i;:::-;3551:2;3544:22;3297:275;;-1:-1:-1;3297:275:98:o;3577:186::-;3625:4;-1:-1:-1;;;;;3650:6:98;3647:30;3644:56;;;3680:18;;:::i;:::-;-1:-1:-1;3746:2:98;3725:15;-1:-1:-1;;3721:29:98;3752:4;3717:40;;3577:186::o;3768:462::-;3810:5;3863:3;3856:4;3848:6;3844:17;3840:27;3830:55;;3881:1;3878;3871:12;3830:55;3917:6;3904:20;3948:48;3964:31;3992:2;3964:31;:::i;:::-;3948:48;:::i;:::-;4021:2;4012:7;4005:19;4067:3;4060:4;4055:2;4047:6;4043:15;4039:26;4036:35;4033:55;;;4084:1;4081;4074:12;4033:55;4149:2;4142:4;4134:6;4130:17;4123:4;4114:7;4110:18;4097:55;4197:1;4172:16;;;4190:4;4168:27;4161:38;;;;4176:7;3768:462;-1:-1:-1;;;3768:462:98:o;4235:665::-;4330:6;4338;4346;4354;4407:3;4395:9;4386:7;4382:23;4378:33;4375:53;;;4424:1;4421;4414:12;4375:53;4463:9;4450:23;4482:31;4507:5;4482:31;:::i;:::-;4532:5;-1:-1:-1;4589:2:98;4574:18;;4561:32;4602:33;4561:32;4602:33;:::i;:::-;4654:7;-1:-1:-1;4708:2:98;4693:18;;4680:32;;-1:-1:-1;4763:2:98;4748:18;;4735:32;-1:-1:-1;;;;;4779:30:98;;4776:50;;;4822:1;4819;4812:12;4776:50;4845:49;4886:7;4877:6;4866:9;4862:22;4845:49;:::i;:::-;4835:59;;;4235:665;;;;;;;:::o;5112:247::-;5171:6;5224:2;5212:9;5203:7;5199:23;5195:32;5192:52;;;5240:1;5237;5230:12;5192:52;5279:9;5266:23;5298:31;5323:5;5298:31;:::i;5364:456::-;5441:6;5449;5457;5510:2;5498:9;5489:7;5485:23;5481:32;5478:52;;;5526:1;5523;5516:12;5478:52;5565:9;5552:23;5584:31;5609:5;5584:31;:::i;:::-;5634:5;-1:-1:-1;5691:2:98;5676:18;;5663:32;5704:33;5663:32;5704:33;:::i;:::-;5364:456;;5756:7;;-1:-1:-1;;;5810:2:98;5795:18;;;;5782:32;;5364:456::o;6014:118::-;6100:5;6093:13;6086:21;6079:5;6076:32;6066:60;;6122:1;6119;6112:12;6137:313;6201:6;6209;6262:2;6250:9;6241:7;6237:23;6233:32;6230:52;;;6278:1;6275;6268:12;6230:52;6301:28;6319:9;6301:28;:::i;:::-;6291:38;;6379:2;6368:9;6364:18;6351:32;6392:28;6414:5;6392:28;:::i;:::-;6439:5;6429:15;;;6137:313;;;;;:::o;6637:385::-;6709:6;6717;6725;6778:2;6766:9;6757:7;6753:23;6749:32;6746:52;;;6794:1;6791;6784:12;6746:52;6817:28;6835:9;6817:28;:::i;:::-;6807:38;;6864:37;6897:2;6886:9;6882:18;6864:37;:::i;:::-;6854:47;;6951:2;6940:9;6936:18;6923:32;6964:28;6986:5;6964:28;:::i;:::-;7011:5;7001:15;;;6637:385;;;;;:::o;7455:647::-;7624:2;7676:21;;;7746:13;;7649:18;;;7768:22;;;7595:4;;7624:2;7847:15;;;;7821:2;7806:18;;;7595:4;7890:186;7904:6;7901:1;7898:13;7890:186;;;7969:13;;7984:10;7965:30;7953:43;;8051:15;;;;8016:12;;;;7926:1;7919:9;7890:186;;;-1:-1:-1;8093:3:98;;7455:647;-1:-1:-1;;;;;;7455:647:98:o;8107:194::-;8178:4;-1:-1:-1;;;;;8203:6:98;8200:30;8197:56;;;8233:18;;:::i;:::-;-1:-1:-1;8278:1:98;8274:14;8290:4;8270:25;;8107:194::o;8306:2217::-;8420:6;8473:2;8461:9;8452:7;8448:23;8444:32;8441:52;;;8489:1;8486;8479:12;8441:52;-1:-1:-1;;;;;8570:2:98;8558:9;8545:23;8542:31;8539:51;;;8586:1;8583;8576:12;8539:51;8637:9;8624:23;8613:9;8609:39;8686:7;8679:4;8675:2;8671:13;8667:27;8657:55;;8708:1;8705;8698:12;8657:55;8732:85;8748:68;8812:2;8799:16;8748:68;:::i;8732:85::-;8863:16;;8851:29;;;8905:2;8896:12;;;;8839:3;8947:1;8943:24;8935:33;;8931:42;8985:19;;;8982:39;;;9017:1;9014;9007:12;8982:39;9049:2;9045;9041:11;9061:1432;9077:6;9072:3;9069:15;9061:1432;;;9156:2;9150:3;9137:17;9134:25;9131:45;;;9172:1;9169;9162:12;9131:45;9207:17;;9199:26;;9277:4;9249:16;;;-1:-1:-1;;9245:30:98;9241:41;9238:61;;;9295:1;9292;9285:12;9238:61;9325:22;;:::i;:::-;9396:2;9392;9388:11;9375:25;9413:33;9438:7;9413:33;:::i;:::-;9459:22;;9529:4;9521:13;;9508:27;9551:14;;;9548:34;;;9578:1;9575;9568:12;9548:34;9613:6;9609:2;9605:15;9595:25;;;9660:7;9655:2;9651;9647:11;9643:25;9633:53;;9682:1;9679;9672:12;9633:53;9730:2;9726;9722:11;9709:25;9760:71;9776:54;9827:2;9776:54;:::i;9760:71::-;9875:17;;;9973:1;9969:10;;;;9961:19;;9982:4;9957:30;;9925:2;9914:14;;;10003:21;;;10000:41;;;10037:1;10034;10027:12;10000:41;10075:4;10071:2;10067:13;10093:285;10111:8;10104:5;10101:19;10093:285;;;10206:2;10198:5;10185:19;10182:27;10179:47;;;10222:1;10219;10212:12;10179:47;10257:66;10315:7;10308:4;10299:5;10286:19;10282:2;10278:28;10274:39;10257:66;:::i;:::-;10243:81;;10361:2;10350:14;;;;10132;10093:285;;;10097:3;10414:5;10409:2;10402:5;10398:14;10391:29;;;;10445:5;10440:3;10433:18;;;10480:2;10475:3;10471:12;10464:19;;9103:2;9098:3;9094:12;9087:19;;9061:1432;;;-1:-1:-1;10512:5:98;;8306:2217;-1:-1:-1;;;;;;;8306:2217:98:o;10725:241::-;10781:6;10834:2;10822:9;10813:7;10809:23;10805:32;10802:52;;;10850:1;10847;10840:12;10802:52;10889:9;10876:23;10908:28;10930:5;10908:28;:::i;10971:315::-;11039:6;11047;11100:2;11088:9;11079:7;11075:23;11071:32;11068:52;;;11116:1;11113;11106:12;11068:52;11152:9;11139:23;11129:33;;11212:2;11201:9;11197:18;11184:32;11225:31;11250:5;11225:31;:::i;11291:559::-;-1:-1:-1;;;;;11534:32:98;;11516:51;;11610:14;;11603:22;11598:2;11583:18;;11576:50;11662:3;11657:2;11642:18;;11635:31;;;-1:-1:-1;;11689:46:98;;11715:19;;11707:6;11689:46;:::i;:::-;11783:9;11775:6;11771:22;11766:2;11755:9;11751:18;11744:50;11811:33;11837:6;11829;11811:33;:::i;:::-;11803:41;11291:559;-1:-1:-1;;;;;;;11291:559:98:o;11855:435::-;11908:3;11946:5;11940:12;11973:6;11968:3;11961:19;11999:4;12028:2;12023:3;12019:12;12012:19;;12065:2;12058:5;12054:14;12086:1;12096:169;12110:6;12107:1;12104:13;12096:169;;;12171:13;;12159:26;;12205:12;;;;12240:15;;;;12132:1;12125:9;12096:169;;12295:1040;12639:2;12628:9;12621:21;12602:4;12665:63;12724:2;12713:9;12709:18;12701:6;12665:63;:::i;:::-;12747:2;12797:9;12789:6;12785:22;12780:2;12769:9;12765:18;12758:50;12831:44;12868:6;12860;12831:44;:::i;:::-;12911:22;;;12906:2;12891:18;;12884:50;12983:13;;13005:22;;;13081:15;;;;-1:-1:-1;13043:15:98;;;;13114:1;13124:185;13138:6;13135:1;13132:13;13124:185;;;13213:13;;13206:21;13199:29;13187:42;;13284:15;;;;13249:12;;;;13160:1;13153:9;13124:185;;;-1:-1:-1;13326:3:98;;12295:1040;-1:-1:-1;;;;;;;;12295:1040:98:o;13774:367::-;13837:8;13847:6;13901:3;13894:4;13886:6;13882:17;13878:27;13868:55;;13919:1;13916;13909:12;13868:55;-1:-1:-1;13942:20:98;;-1:-1:-1;;;;;13974:30:98;;13971:50;;;14017:1;14014;14007:12;13971:50;14054:4;14046:6;14042:17;14030:29;;14114:3;14107:4;14097:6;14094:1;14090:14;14082:6;14078:27;14074:38;14071:47;14068:67;;;14131:1;14128;14121:12;14068:67;13774:367;;;;;:::o;14146:1673::-;14333:6;14341;14349;14357;14365;14373;14381;14389;14397;14450:3;14438:9;14429:7;14425:23;14421:33;14418:53;;;14467:1;14464;14457:12;14418:53;14507:9;14494:23;-1:-1:-1;;;;;14577:2:98;14569:6;14566:14;14563:34;;;14593:1;14590;14583:12;14563:34;14632:70;14694:7;14685:6;14674:9;14670:22;14632:70;:::i;:::-;14721:8;;-1:-1:-1;14606:96:98;-1:-1:-1;14809:2:98;14794:18;;14781:32;;-1:-1:-1;14825:16:98;;;14822:36;;;14854:1;14851;14844:12;14822:36;14893:72;14957:7;14946:8;14935:9;14931:24;14893:72;:::i;:::-;14984:8;;-1:-1:-1;14867:98:98;-1:-1:-1;15072:2:98;15057:18;;15044:32;;-1:-1:-1;15088:16:98;;;15085:36;;;15117:1;15114;15107:12;15085:36;15156:72;15220:7;15209:8;15198:9;15194:24;15156:72;:::i;:::-;15247:8;;-1:-1:-1;15130:98:98;-1:-1:-1;15332:2:98;15317:18;;15304:32;;-1:-1:-1;15345:31:98;15304:32;15345:31;:::i;:::-;15395:5;;-1:-1:-1;15453:3:98;15438:19;;15425:33;;15470:16;;;15467:36;;;15499:1;15496;15489:12;15467:36;15537:8;15526:9;15522:24;15512:34;;15584:7;15577:4;15573:2;15569:13;15565:27;15555:55;;15606:1;15603;15596:12;15555:55;15646:2;15633:16;15672:2;15664:6;15661:14;15658:34;;;15688:1;15685;15678:12;15658:34;15733:7;15728:2;15719:6;15715:2;15711:15;15707:24;15704:37;15701:57;;;15754:1;15751;15744:12;15701:57;15785:2;15781;15777:11;15767:21;;15807:6;15797:16;;;;;14146:1673;;;;;;;;;;;:::o;15824:594::-;15914:6;15922;15930;15938;15991:3;15979:9;15970:7;15966:23;15962:33;15959:53;;;16008:1;16005;15998:12;15959:53;16031:28;16049:9;16031:28;:::i;:::-;16021:38;;16078:37;16111:2;16100:9;16096:18;16078:37;:::i;:::-;16068:47;;16166:2;16155:9;16151:18;16138:32;-1:-1:-1;;;;;16185:6:98;16182:30;16179:50;;;16225:1;16222;16215:12;16179:50;16248:49;16289:7;16280:6;16269:9;16265:22;16248:49;:::i;:::-;16238:59;;;16347:2;16336:9;16332:18;16319:32;16360:28;16382:5;16360:28;:::i;:::-;15824:594;;;;-1:-1:-1;15824:594:98;;-1:-1:-1;;15824:594:98:o;16423:448::-;16520:6;16528;16581:2;16569:9;16560:7;16556:23;16552:32;16549:52;;;16597:1;16594;16587:12;16549:52;16637:9;16624:23;-1:-1:-1;;;;;16662:6:98;16659:30;16656:50;;;16702:1;16699;16692:12;16656:50;16741:70;16803:7;16794:6;16783:9;16779:22;16741:70;:::i;:::-;16830:8;;16715:96;;-1:-1:-1;16423:448:98;-1:-1:-1;;;;16423:448:98:o;16876:456::-;16953:6;16961;16969;17022:2;17010:9;17001:7;16997:23;16993:32;16990:52;;;17038:1;17035;17028:12;16990:52;17074:9;17061:23;17051:33;;17134:2;17123:9;17119:18;17106:32;17147:31;17172:5;17147:31;:::i;:::-;17197:5;-1:-1:-1;17254:2:98;17239:18;;17226:32;17267:33;17226:32;17267:33;:::i;17337:284::-;17395:6;17448:2;17436:9;17427:7;17423:23;17419:32;17416:52;;;17464:1;17461;17454:12;17416:52;17503:9;17490:23;-1:-1:-1;;;;;17546:5:98;17542:30;17535:5;17532:41;17522:69;;17587:1;17584;17577:12;17626:114;17710:4;17703:5;17699:16;17692:5;17689:27;17679:55;;17730:1;17727;17720:12;17745:801;17856:6;17864;17872;17880;17888;17896;17904;17957:3;17945:9;17936:7;17932:23;17928:33;17925:53;;;17974:1;17971;17964:12;17925:53;18013:9;18000:23;18032:31;18057:5;18032:31;:::i;:::-;18082:5;-1:-1:-1;18139:2:98;18124:18;;18111:32;18152:33;18111:32;18152:33;:::i;:::-;18204:7;-1:-1:-1;18258:2:98;18243:18;;18230:32;;-1:-1:-1;18309:2:98;18294:18;;18281:32;;-1:-1:-1;18365:3:98;18350:19;;18337:33;18379:31;18337:33;18379:31;:::i;:::-;17745:801;;;;-1:-1:-1;17745:801:98;;;;18429:7;18483:3;18468:19;;18455:33;;-1:-1:-1;18535:3:98;18520:19;;;18507:33;;17745:801;-1:-1:-1;;17745:801:98:o;18780:388::-;18848:6;18856;18909:2;18897:9;18888:7;18884:23;18880:32;18877:52;;;18925:1;18922;18915:12;18877:52;18964:9;18951:23;18983:31;19008:5;18983:31;:::i;:::-;19033:5;-1:-1:-1;19090:2:98;19075:18;;19062:32;19103:33;19062:32;19103:33;:::i;19653:334::-;19855:2;19837:21;;;19894:2;19874:18;;;19867:30;-1:-1:-1;;;19928:2:98;19913:18;;19906:40;19978:2;19963:18;;19653:334::o;19992:380::-;20071:1;20067:12;;;;20114;;;20135:61;;20189:4;20181:6;20177:17;20167:27;;20135:61;20242:2;20234:6;20231:14;20211:18;20208:38;20205:161;;20288:10;20283:3;20279:20;20276:1;20269:31;20323:4;20320:1;20313:15;20351:4;20348:1;20341:15;20205:161;;19992:380;;;:::o;20377:336::-;20579:2;20561:21;;;20618:2;20598:18;;;20591:30;-1:-1:-1;;;20652:2:98;20637:18;;20630:42;20704:2;20689:18;;20377:336::o;20718:127::-;20779:10;20774:3;20770:20;20767:1;20760:31;20810:4;20807:1;20800:15;20834:4;20831:1;20824:15;20850:127;20911:10;20906:3;20902:20;20899:1;20892:31;20942:4;20939:1;20932:15;20966:4;20963:1;20956:15;20982:135;21021:3;21042:17;;;21039:43;;21062:18;;:::i;:::-;-1:-1:-1;21109:1:98;21098:13;;20982:135::o;22134:128::-;22201:9;;;22222:11;;;22219:37;;;22236:18;;:::i;22267:125::-;22332:9;;;22353:10;;;22350:36;;;22366:18;;:::i;22397:315::-;-1:-1:-1;;;;;22572:32:98;;22554:51;;22641:2;22636;22621:18;;22614:30;;;-1:-1:-1;;22661:45:98;;22687:18;;22679:6;22661:45;:::i;22717:175::-;22754:3;22798:4;22791:5;22787:16;22827:4;22818:7;22815:17;22812:43;;22835:18;;:::i;:::-;22884:1;22871:15;;22717:175;-1:-1:-1;;22717:175:98:o;23751:251::-;23821:6;23874:2;23862:9;23853:7;23849:23;23845:32;23842:52;;;23890:1;23887;23880:12;23842:52;23922:9;23916:16;23941:31;23966:5;23941:31;:::i;24007:521::-;24084:4;24090:6;24150:11;24137:25;24244:2;24240:7;24229:8;24213:14;24209:29;24205:43;24185:18;24181:68;24171:96;;24263:1;24260;24253:12;24171:96;24290:33;;24342:20;;;-1:-1:-1;;;;;;24374:30:98;;24371:50;;;24417:1;24414;24407:12;24371:50;24450:4;24438:17;;-1:-1:-1;24481:14:98;24477:27;;;24467:38;;24464:58;;;24518:1;24515;24508:12;24842:245;24909:6;24962:2;24950:9;24941:7;24937:23;24933:32;24930:52;;;24978:1;24975;24968:12;24930:52;25010:9;25004:16;25029:28;25051:5;25029:28;:::i;27765:136::-;27804:3;27832:5;27822:39;;27841:18;;:::i;:::-;-1:-1:-1;;;27877:18:98;;27765:136::o;27906:599::-;28221:2;28210:9;28203:21;28184:4;28247:63;28306:2;28295:9;28291:18;28283:6;28247:63;:::i;:::-;28358:9;28350:6;28346:22;28341:2;28330:9;28326:18;28319:50;28386:44;28423:6;28415;28386:44;:::i;:::-;28378:52;;;28495:1;28491;28486:3;28482:11;28478:19;28470:6;28466:32;28461:2;28450:9;28446:18;28439:60;27906:599;;;;;;:::o;28510:184::-;28580:6;28633:2;28621:9;28612:7;28608:23;28604:32;28601:52;;;28649:1;28646;28639:12;28601:52;-1:-1:-1;28672:16:98;;28510:184;-1:-1:-1;28510:184:98:o;28699:1032::-;29185:3;29174:9;29167:22;29148:4;29212:64;29271:3;29260:9;29256:19;29248:6;29212:64;:::i;:::-;29324:9;29316:6;29312:22;29307:2;29296:9;29292:18;29285:50;29358:44;29395:6;29387;29358:44;:::i;:::-;29344:58;;29450:9;29442:6;29438:22;29433:2;29422:9;29418:18;29411:50;29484:51;29528:6;29520;29484:51;:::i;:::-;29470:65;;29583:9;29575:6;29571:22;29566:2;29555:9;29551:18;29544:50;29611:44;29648:6;29640;29611:44;:::i;:::-;29603:52;;;29721:1;29717;29712:3;29708:11;29704:19;29696:6;29692:32;29686:3;29675:9;29671:19;29664:61;28699:1032;;;;;;;;:::o;29736:247::-;29804:6;29857:2;29845:9;29836:7;29832:23;29828:32;29825:52;;;29873:1;29870;29863:12;29825:52;29905:9;29899:16;29924:29;29947:5;29924:29;:::i;30113:771::-;30162:3;30203:5;30197:12;30232:36;30258:9;30232:36;:::i;:::-;30277:19;;;30315:4;30338:1;30355:18;;;30382:146;;;;30542:1;30537:341;;;;30348:530;;30382:146;-1:-1:-1;;30424:24:98;;30410:12;;;30403:46;30496:14;;30489:22;30486:1;30482:30;30473:40;;30469:49;;;-1:-1:-1;30382:146:98;;30537:341;30568:5;30565:1;30558:16;30615:2;30612:1;30602:16;30640:1;30654:174;30668:6;30665:1;30662:13;30654:174;;;30755:14;;30737:11;;;30733:20;;30726:44;30798:16;;;;30683:10;;30654:174;;;30852:11;;30848:20;;;-1:-1:-1;;30348:530:98;;;;;;30113:771;;;;:::o;30889:222::-;31033:2;31022:9;31015:21;30996:4;31053:52;31101:2;31090:9;31086:18;31078:6;31053:52;:::i;31684:844::-;31814:3;31843:1;31876:6;31870:13;31906:36;31932:9;31906:36;:::i;:::-;31961:1;31978:18;;;32005:133;;;;32152:1;32147:356;;;;31971:532;;32005:133;-1:-1:-1;;32038:24:98;;32026:37;;32111:14;;32104:22;32092:35;;32083:45;;;-1:-1:-1;32005:133:98;;32147:356;32178:6;32175:1;32168:17;32208:4;32253:2;32250:1;32240:16;32278:1;32292:165;32306:6;32303:1;32300:13;32292:165;;;32384:14;;32371:11;;;32364:35;32427:16;;;;32321:10;;32292:165;;;32296:3;;;32486:6;32481:3;32477:16;32470:23;;31971:532;-1:-1:-1;32519:3:98;;31684:844;-1:-1:-1;;;;;;31684:844:98:o;33370:903::-;33464:6;33472;33480;33533:2;33521:9;33512:7;33508:23;33504:32;33501:52;;;33549:1;33546;33539:12;33501:52;33581:9;33575:16;33600:31;33625:5;33600:31;:::i;:::-;33700:2;33685:18;;33679:25;33650:5;;-1:-1:-1;33713:30:98;33679:25;33713:30;:::i;:::-;33813:2;33798:18;;33792:25;33762:7;;-1:-1:-1;;;;;;33829:30:98;;33826:50;;;33872:1;33869;33862:12;33826:50;33895:22;;33948:4;33940:13;;33936:27;-1:-1:-1;33926:55:98;;33977:1;33974;33967:12;33926:55;34006:2;34000:9;34031:48;34047:31;34075:2;34047:31;:::i;34031:48::-;34102:2;34095:5;34088:17;34142:7;34137:2;34132;34128;34124:11;34120:20;34117:33;34114:53;;;34163:1;34160;34153:12;34114:53;34176:67;34240:2;34235;34228:5;34224:14;34219:2;34215;34211:11;34176:67;:::i;:::-;34262:5;34252:15;;;;;33370:903;;;;;:::o;34278:544::-;34379:2;34374:3;34371:11;34368:448;;;34415:1;34440:5;34436:2;34429:17;34485:4;34481:2;34471:19;34555:2;34543:10;34539:19;34536:1;34532:27;34526:4;34522:38;34591:4;34579:10;34576:20;34573:47;;;-1:-1:-1;34614:4:98;34573:47;34669:2;34664:3;34660:12;34657:1;34653:20;34647:4;34643:31;34633:41;;34724:82;34742:2;34735:5;34732:13;34724:82;;;34787:17;;;34768:1;34757:13;34724:82;;;34728:3;;;34278:544;;;:::o;34998:1348::-;35122:3;35116:10;-1:-1:-1;;;;;35141:6:98;35138:30;35135:56;;;35171:18;;:::i;:::-;35200:96;35289:6;35249:38;35281:4;35275:11;35249:38;:::i;:::-;35243:4;35200:96;:::i;:::-;35351:4;;35415:2;35404:14;;35432:1;35427:662;;;;36133:1;36150:6;36147:89;;;-1:-1:-1;36202:19:98;;;36196:26;36147:89;-1:-1:-1;;34955:1:98;34951:11;;;34947:24;34943:29;34933:40;34979:1;34975:11;;;34930:57;36249:81;;35397:943;;35427:662;30060:1;30053:14;;;30097:4;30084:18;;-1:-1:-1;;35463:20:98;;;35580:236;35594:7;35591:1;35588:14;35580:236;;;35683:19;;;35677:26;35662:42;;35775:27;;;;35743:1;35731:14;;;;35610:19;;35580:236;;;35584:3;35844:6;35835:7;35832:19;35829:201;;;35905:19;;;35899:26;-1:-1:-1;;35988:1:98;35984:14;;;36000:3;35980:24;35976:37;35972:42;35957:58;35942:74;;35829:201;-1:-1:-1;;;;;36076:1:98;36060:14;;;36056:22;36043:36;;-1:-1:-1;34998:1348:98:o;36351:387::-;36538:2;36527:9;36520:21;36501:4;36564:52;36612:2;36601:9;36597:18;36589:6;36564:52;:::i;:::-;36664:9;36656:6;36652:22;36647:2;36636:9;36632:18;36625:50;36692:40;36725:6;36717;36692:40;:::i;:::-;36684:48;36351:387;-1:-1:-1;;;;;36351:387:98:o;36743:151::-;36833:4;36826:12;;;36812;;;36808:31;;36851:14;;36848:40;;;36868:18;;:::i;36899:422::-;36988:1;37031:5;36988:1;37045:270;37066:7;37056:8;37053:21;37045:270;;;37125:4;37121:1;37117:6;37113:17;37107:4;37104:27;37101:53;;;37134:18;;:::i;:::-;37184:7;37174:8;37170:22;37167:55;;;37204:16;;;;37167:55;37283:22;;;;37243:15;;;;37045:270;;;37049:3;36899:422;;;;;:::o;37326:806::-;37375:5;37405:8;37395:80;;-1:-1:-1;37446:1:98;37460:5;;37395:80;37494:4;37484:76;;-1:-1:-1;37531:1:98;37545:5;;37484:76;37576:4;37594:1;37589:59;;;;37662:1;37657:130;;;;37569:218;;37589:59;37619:1;37610:10;;37633:5;;;37657:130;37694:3;37684:8;37681:17;37678:43;;;37701:18;;:::i;:::-;-1:-1:-1;;37757:1:98;37743:16;;37772:5;;37569:218;;37871:2;37861:8;37858:16;37852:3;37846:4;37843:13;37839:36;37833:2;37823:8;37820:16;37815:2;37809:4;37806:12;37802:35;37799:77;37796:159;;;-1:-1:-1;37908:19:98;;;37940:5;;37796:159;37987:34;38012:8;38006:4;37987:34;:::i;:::-;38057:6;38053:1;38049:6;38045:19;38036:7;38033:32;38030:58;;;38068:18;;:::i;:::-;38106:20;;37326:806;-1:-1:-1;;;37326:806:98:o;38137:140::-;38195:5;38224:47;38265:4;38255:8;38251:19;38245:4;38224:47;:::i;38282:168::-;38322:7;38388:1;38384;38380:6;38376:14;38373:1;38370:21;38365:1;38358:9;38351:17;38347:45;38344:71;;;38395:18;;:::i;:::-;-1:-1:-1;38435:9:98;;38282:168::o;38455:217::-;38495:1;38521;38511:132;;38565:10;38560:3;38556:20;38553:1;38546:31;38600:4;38597:1;38590:15;38628:4;38625:1;38618:15;38511:132;-1:-1:-1;38657:9:98;;38455:217::o;39025:127::-;39086:10;39081:3;39077:20;39074:1;39067:31;39117:4;39114:1;39107:15;39141:4;39138:1;39131:15;39157:287;39286:3;39324:6;39318:13;39340:66;39399:6;39394:3;39387:4;39379:6;39375:17;39340:66;:::i;:::-;39422:16;;;;;39157:287;-1:-1:-1;;39157:287:98:o;40156:458::-;40371:6;40360:9;40353:25;40414:2;40409;40398:9;40394:18;40387:30;40334:4;40440:52;40488:2;40477:9;40473:18;40465:6;40440:52;:::i;:::-;40540:9;40532:6;40528:22;40523:2;40512:9;40508:18;40501:50;40568:40;40601:6;40593;40568:40;:::i;40619:557::-;40844:25;;;-1:-1:-1;;;;;40905:32:98;;40900:2;40885:18;;40878:60;40974:3;40969:2;40954:18;;40947:31;;;-1:-1:-1;;41001:53:98;;41034:19;;41026:6;41001:53;:::i;:::-;41102:9;41094:6;41090:22;41085:2;41074:9;41070:18;41063:50;41130:40;41163:6;41155;41130:40;:::i", - "linkReferences": {} - }, - "methodIdentifiers": { - "DOMAIN_SEPARATOR()": "3644e515", - "GRAVITY_BRIDGE_REGISTRY_SLOT()": "cd82f8b1", - "MAXIMUM_SHARE_LOCK_PERIOD()": "0402ab63", - "MAX_FEE_CUT()": "eef33eca", - "MAX_PLATFORM_FEE()": "3998a681", - "MAX_POSITIONS()": "f7b24e08", - "MAX_REBALANCE_DEVIATION()": "6ff1c02a", - "MINIMUM_SHARE_LOCK_PERIOD()": "0051a3b7", - "PRICE_ROUTER_REGISTRY_SLOT()": "5a400d25", - "aavePool()": "a03e4bc3", - "adaptorCatalogue(address)": "18d4c143", - "addAdaptorToCatalogue(address)": "3d8ab1e5", - "addPosition(uint32,uint32,bytes,bool)": "9955a9d4", - "addPositionToCatalogue(uint32)": "501eb4fe", - "allowance(address,address)": "dd62ed3e", - "allowedRebalanceDeviation()": "c244245a", - "approve(address,uint256)": "095ea7b3", - "asset()": "38d52e0f", - "balanceOf(address)": "70a08231", - "blockExternalReceiver()": "4c4602da", - "cachePriceRouter(bool)": "6925ba2c", - "callOnAdaptor((address,bytes[])[])": "4e84befe", - "convertToAssets(uint256)": "07a2d13a", - "convertToShares(uint256)": "c6e6f592", - "creditPositions(uint256)": "59d20b4e", - "debtPositions(uint256)": "e1b1acb7", - "decimals()": "313ce567", - "deposit(uint256,address)": "6e553f65", - "executeOperation(address[],uint256[],uint256[],address,bytes)": "920f5c84", - "feeData()": "e753e600", - "forcePositionOut(uint32,uint32,bool)": "a07bee0b", - "getCreditPositions()": "71e99dc2", - "getDebtPositions()": "3e3382ba", - "getPositionAssets()": "087ed837", - "getPositionData(uint32)": "7384504f", - "holdingPosition()": "9c5f00c2", - "ignorePause()": "9959af94", - "initiateShutdown()": "0a680e18", - "isPaused()": "b187bd26", - "isPositionUsed(uint256)": "93bbeac0", - "isShutdown()": "bf86d690", - "liftShutdown()": "5e2c576e", - "locked()": "cf309012", - "maxDeposit(address)": "402d267d", - "maxMint(address)": "c63d75b6", - "maxRedeem(address)": "d905777e", - "maxWithdraw(address)": "ce96cb77", - "mint(uint256,address)": "94bf804d", - "multicall(bytes[])": "ac9650d8", - "name()": "06fdde03", - "nonces(address)": "7ecebe00", - "onERC721Received(address,address,uint256,bytes)": "150b7a02", - "owner()": "8da5cb5b", - "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf", - "positionCatalogue(uint32)": "cbdf33d0", - "previewDeposit(uint256)": "ef8b30f7", - "previewMint(uint256)": "b3d7f6b9", - "previewRedeem(uint256)": "4cdad506", - "previewWithdraw(uint256)": "0a28a477", - "priceRouter()": "d7d4bf45", - "redeem(uint256,address,address)": "ba087652", - "registry()": "7b103999", - "removeAdaptorFromCatalogue(address)": "5f6b88a0", - "removePosition(uint32,bool)": "33e15be2", - "removePositionFromCatalogue(uint32)": "d1e88404", - "setHoldingPosition(uint32)": "0780fd3a", - "setRebalanceDeviation(uint256)": "530a3714", - "setShareLockPeriod(uint256)": "9c552ca8", - "setStrategistPayoutAddress(address)": "b0a75d36", - "setStrategistPlatformCut(uint64)": "b5292a99", - "shareLockPeriod()": "9fdb11b6", - "swapPositions(uint32,uint32,bool)": "379e0b13", - "symbol()": "95d89b41", - "toggleIgnorePause(bool)": "ebe3c328", - "totalAssets()": "01e1d114", - "totalAssetsWithdrawable()": "a8144e48", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "transferOwnership(address)": "f2fde38b", - "userShareLockStartTime(address)": "687c2b50", - "viewPositionBalances()": "78e0233e", - "withdraw(uint256,address,address)": "b460af94" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Registry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"contract ERC20\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedAsset\",\"type\":\"address\"}],\"name\":\"Cellar__AssetMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"}],\"name\":\"Cellar__CallToAdaptorNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__CallerNotAavePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__ContractNotShutdown\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__ContractShutdown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"}],\"name\":\"Cellar__DebtMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDeposit\",\"type\":\"uint256\"}],\"name\":\"Cellar__DepositRestricted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__ExternalInitiator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"illiquidPosition\",\"type\":\"address\"}],\"name\":\"Cellar__IlliquidWithdraw\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetsOwed\",\"type\":\"uint256\"}],\"name\":\"Cellar__IncompleteWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__InvalidFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__InvalidFeeCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"}],\"name\":\"Cellar__InvalidHoldingPosition\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"Cellar__InvalidRebalanceDeviation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__InvalidShareLockPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"Cellar__NotApprovedToDepositOnBehalf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__Paused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"}],\"name\":\"Cellar__PositionAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxPositions\",\"type\":\"uint256\"}],\"name\":\"Cellar__PositionArrayFull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"sharesRemaining\",\"type\":\"uint256\"}],\"name\":\"Cellar__PositionNotEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"}],\"name\":\"Cellar__PositionNotInCatalogue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"}],\"name\":\"Cellar__PositionNotUsed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__RemovingHoldingPosition\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timeSharesAreUnlocked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentBlock\",\"type\":\"uint256\"}],\"name\":\"Cellar__SharesAreLocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"Cellar__TotalAssetDeviatedOutsideRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"Cellar__TotalSharesMustRemainConstant\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__ZeroAssets\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Cellar__ZeroShares\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"AdaptorCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"inCatalogue\",\"type\":\"bool\"}],\"name\":\"AdaptorCatalogueAltered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"oldPlatformFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newPlatformFee\",\"type\":\"uint64\"}],\"name\":\"PlatformFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"PositionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"inCatalogue\",\"type\":\"bool\"}],\"name\":\"PositionCatalogueAltered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"position\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"PositionRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newPosition1\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newPosition2\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index2\",\"type\":\"uint256\"}],\"name\":\"PositionSwapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDeviation\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDeviation\",\"type\":\"uint256\"}],\"name\":\"RebalanceDeviationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"ShareLockingPeriodChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isShutdown\",\"type\":\"bool\"}],\"name\":\"ShutdownChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPayoutAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPayoutAddress\",\"type\":\"address\"}],\"name\":\"StrategistPayoutAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"oldPlatformCut\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newPlatformCut\",\"type\":\"uint64\"}],\"name\":\"StrategistPlatformCutChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GRAVITY_BRIDGE_REGISTRY_SLOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_SHARE_LOCK_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE_CUT\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PLATFORM_FEE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_POSITIONS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_REBALANCE_DEVIATION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_SHARE_LOCK_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRICE_ROUTER_REGISTRY_SLOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"aavePool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"adaptorCatalogue\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"}],\"name\":\"addAdaptorToCatalogue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"configurationData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"inDebtArray\",\"type\":\"bool\"}],\"name\":\"addPosition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"}],\"name\":\"addPositionToCatalogue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedRebalanceDeviation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockExternalReceiver\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTotalAssets\",\"type\":\"bool\"}],\"name\":\"cachePriceRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"callData\",\"type\":\"bytes[]\"}],\"internalType\":\"struct Cellar.AdaptorCall[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"callOnAdaptor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"creditPositions\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"debtPositions\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"premiums\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"executeOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeData\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"strategistPlatformCut\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"platformFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastAccrual\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"strategistPayoutAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"inDebtArray\",\"type\":\"bool\"}],\"name\":\"forcePositionOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCreditPositions\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDebtPositions\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPositionAssets\",\"outputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"assets\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"getPositionData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDebt\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"adaptorData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configurationData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"holdingPosition\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ignorePause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiateShutdown\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isPositionUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isShutdown\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liftShutdown\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"locked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"positionCatalogue\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceRouter\",\"outputs\":[{\"internalType\":\"contract PriceRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adaptor\",\"type\":\"address\"}],\"name\":\"removeAdaptorFromCatalogue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"inDebtArray\",\"type\":\"bool\"}],\"name\":\"removePosition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"}],\"name\":\"removePositionFromCatalogue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"positionId\",\"type\":\"uint32\"}],\"name\":\"setHoldingPosition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDeviation\",\"type\":\"uint256\"}],\"name\":\"setRebalanceDeviation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLock\",\"type\":\"uint256\"}],\"name\":\"setShareLockPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payout\",\"type\":\"address\"}],\"name\":\"setStrategistPayoutAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"cut\",\"type\":\"uint64\"}],\"name\":\"setStrategistPlatformCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shareLockPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index1\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"index2\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"inDebtArray\",\"type\":\"bool\"}],\"name\":\"swapPositions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"toggle\",\"type\":\"bool\"}],\"name\":\"toggleIgnorePause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssetsWithdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userShareLockStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"viewPositionBalances\",\"outputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"isDebt\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"crispymangoes\",\"errors\":{\"Cellar__AssetMismatch(address,address)\":[{\"params\":{\"asset\":\"address of the asset\",\"expectedAsset\":\"address of the expected asset\"}}],\"Cellar__CallToAdaptorNotAllowed(address)\":[{\"params\":{\"adaptor\":\"the adaptor address that is paused or not trusted.\"}}],\"Cellar__DebtMismatch(uint32)\":[{\"params\":{\"position\":\"the posiiton id that was mismatched\"}}],\"Cellar__DepositRestricted(uint256,uint256)\":[{\"params\":{\"assets\":\"the assets user attempted to deposit\",\"maxDeposit\":\"the max assets that can be deposited\"}}],\"Cellar__IlliquidWithdraw(address)\":[{\"params\":{\"illiquidPosition\":\"the illiquid position.\"}}],\"Cellar__IncompleteWithdraw(uint256)\":[{\"params\":{\"assetsOwed\":\"the remaining assets owed that were not withdrawn.\"}}],\"Cellar__InvalidHoldingPosition(uint32)\":[{\"params\":{\"positionId\":\"the id of the invalid position.\"}}],\"Cellar__InvalidRebalanceDeviation(uint256,uint256)\":[{\"params\":{\"max\":\"the max rebalance deviation.\",\"requested\":\"the requested rebalance deviation\"}}],\"Cellar__PositionAlreadyUsed(uint32)\":[{\"params\":{\"position\":\"id of the position\"}}],\"Cellar__PositionArrayFull(uint256)\":[{\"params\":{\"maxPositions\":\"maximum number of positions that can be used\"}}],\"Cellar__PositionNotEmpty(uint32,uint256)\":[{\"params\":{\"position\":\"address of the non-empty position\",\"sharesRemaining\":\"amount of shares remaining in the position\"}}],\"Cellar__PositionNotInCatalogue(uint32)\":[{\"params\":{\"position\":\"id of the position\"}}],\"Cellar__PositionNotUsed(uint32)\":[{\"params\":{\"position\":\"id of the position\"}}],\"Cellar__SharesAreLocked(uint256,uint256)\":[{\"params\":{\"currentBlock\":\"the current block number.\",\"timeSharesAreUnlocked\":\"time when caller can transfer/redeem shares\"}}],\"Cellar__TotalAssetDeviatedOutsideRange(uint256,uint256,uint256)\":[{\"params\":{\"assets\":\"the total assets in the cellar\",\"max\":\"the maximum allowed assets\",\"min\":\"the minimum allowed assets\"}}],\"Cellar__TotalSharesMustRemainConstant(uint256,uint256)\":[{\"params\":{\"current\":\"the current amount of total shares\",\"expected\":\"the expected amount of total shares\"}}]},\"events\":{\"PlatformFeeChanged(uint64,uint64)\":{\"params\":{\"newPlatformFee\":\"value platform fee was changed to\",\"oldPlatformFee\":\"value platform fee was changed from\"}},\"PositionAdded(uint32,uint256)\":{\"params\":{\"index\":\"index that position was added at\",\"position\":\"id of position that was added\"}},\"PositionRemoved(uint32,uint256)\":{\"params\":{\"index\":\"index that position was removed from\",\"position\":\"id of position that was removed\"}},\"PositionSwapped(uint32,uint32,uint256,uint256)\":{\"params\":{\"index1\":\"index of first position involved in the swap\",\"index2\":\"index of second position involved in the swap.\",\"newPosition1\":\"id of position (previously at index2) that replaced index1.\",\"newPosition2\":\"id of position (previously at index1) that replaced index2.\"}},\"RebalanceDeviationChanged(uint256,uint256)\":{\"params\":{\"newDeviation\":\"the new rebalance deviation\",\"oldDeviation\":\"the old rebalance deviation\"}},\"ShareLockingPeriodChanged(uint256,uint256)\":{\"params\":{\"newPeriod\":\"the new locking period\",\"oldPeriod\":\"the old locking period\"}},\"ShutdownChanged(bool)\":{\"params\":{\"isShutdown\":\"whether the cellar is shutdown\"}},\"StrategistPayoutAddressChanged(address,address)\":{\"params\":{\"newPayoutAddress\":\"value strategists payout address was changed to\",\"oldPayoutAddress\":\"value strategists payout address was changed from\"}},\"StrategistPlatformCutChanged(uint64,uint64)\":{\"params\":{\"newPlatformCut\":\"value strategist platform fee cut was changed to\",\"oldPlatformCut\":\"value strategist platform fee cut was changed from\"}}},\"kind\":\"dev\",\"methods\":{\"addPosition(uint32,uint32,bytes,bool)\":{\"params\":{\"configurationData\":\"data used to configure how the position behaves\",\"index\":\"index at which to insert the position\",\"positionId\":\"id of position to add\"}},\"cachePriceRouter(bool)\":{\"params\":{\"checkTotalAssets\":\"If true totalAssets is checked before and after updating the price router, and is verified to be withing a +- 5% envelope. If false totalAssets is only called after updating the price router.\"}},\"callOnAdaptor((address,bytes[])[])\":{\"details\":\"There are several safety checks in this function to prevent strategists from abusing it. - `blockExternalReceiver` - `totalAssets` must not change by much - `totalShares` must remain constant - adaptors must be set up to be used with this cellarSince `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending multiple `callOnAdaptor` calls rapidly, to gradually change the share price. To mitigate this, rate limiting will be put in place on the Sommelier side.\"},\"constructor\":{\"details\":\"Owner should be set to the Gravity Bridge, which relays instructions from the Steward module to the cellars. https://github.com/PeggyJV/steward https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol\",\"params\":{\"_asset\":\"address of underlying token used for the for accounting, depositing, and withdrawing\",\"_name\":\"name of this cellar's share token\",\"_registry\":\"address of the platform's registry contract\",\"_symbol\":\"symbol of this cellar's share token\",\"params\":\"abi encode values. - _creditPositions ids of the credit positions to initialize the cellar with - _debtPositions ids of the credit positions to initialize the cellar with - _creditConfigurationData configuration data for each position - _debtConfigurationData configuration data for each position - _holdingIndex the index in _creditPositions to use as the holding position. - _strategistPayout the address to send the strategists fee shares. - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to - _protocolRiskTolerance this cellars risk tolerance for protocols it will use\"}},\"convertToAssets(uint256)\":{\"params\":{\"shares\":\"amount of shares to convert\"},\"returns\":{\"assets\":\"the shares can be exchanged for\"}},\"convertToShares(uint256)\":{\"params\":{\"assets\":\"amount of assets to convert\"},\"returns\":{\"shares\":\"the assets can be exchanged for\"}},\"deposit(uint256,address)\":{\"params\":{\"assets\":\"amount of assets deposited by user.\",\"receiver\":\"address to receive the shares.\"},\"returns\":{\"shares\":\"amount of shares given for deposit.\"}},\"initiateShutdown()\":{\"details\":\"In the case where\"},\"maxDeposit(address)\":{\"returns\":{\"_0\":\"assets maximum amount of assets that can be deposited\"}},\"maxMint(address)\":{\"returns\":{\"_0\":\"shares maximum amount of shares that can be minted\"}},\"maxRedeem(address)\":{\"details\":\"EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\",\"params\":{\"owner\":\"address to check maxRedeem of.\"},\"returns\":{\"_0\":\"the max amount of shares redeemable by `owner`.\"}},\"maxWithdraw(address)\":{\"details\":\"EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\",\"params\":{\"owner\":\"address to check maxWithdraw of.\"},\"returns\":{\"_0\":\"the max amount of assets withdrawable by `owner`.\"}},\"mint(uint256,address)\":{\"params\":{\"receiver\":\"address to receive the shares.\",\"shares\":\"amount of shares requested by user.\"},\"returns\":{\"assets\":\"amount of assets deposited into the cellar.\"}},\"multicall(bytes[])\":{\"details\":\"Does NOT return the function return values.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"previewDeposit(uint256)\":{\"params\":{\"assets\":\"amount of assets to deposit\"},\"returns\":{\"shares\":\"that will be minted\"}},\"previewMint(uint256)\":{\"params\":{\"shares\":\"amount of shares to mint\"},\"returns\":{\"assets\":\"that will be deposited\"}},\"previewRedeem(uint256)\":{\"params\":{\"shares\":\"amount of shares to redeem\"},\"returns\":{\"assets\":\"that will be returned\"}},\"previewWithdraw(uint256)\":{\"params\":{\"assets\":\"amount of assets to withdraw\"},\"returns\":{\"shares\":\"that will be redeemed\"}},\"redeem(uint256,address,address)\":{\"details\":\"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\",\"params\":{\"owner\":\"address that owns the shares being redeemed\",\"receiver\":\"address that will receive withdrawn assets\",\"shares\":\"amount of shares to redeem\"},\"returns\":{\"assets\":\"equivalent value of the assets withdrawn, denominated in the cellar's asset\"}},\"removePosition(uint32,bool)\":{\"details\":\"Called by strategist.\",\"params\":{\"index\":\"index at which to remove the position\"}},\"setRebalanceDeviation(uint256)\":{\"params\":{\"newDeviation\":\"the new rebalance deviation value.\"}},\"setShareLockPeriod(uint256)\":{\"params\":{\"newLock\":\"the new lock period\"}},\"setStrategistPayoutAddress(address)\":{\"params\":{\"payout\":\"the new strategist payout address\"}},\"setStrategistPlatformCut(uint64)\":{\"params\":{\"cut\":\"the platform cut for the strategist\"}},\"swapPositions(uint32,uint32,bool)\":{\"params\":{\"inDebtArray\":\"bool indicating to switch positions in the debt array, or the credit array.\",\"index1\":\"index of first position to swap\",\"index2\":\"index of second position to swap\"}},\"totalAssets()\":{\"details\":\"EIP4626 states totalAssets needs to be inclusive of fees. Since performance fees mint shares, total assets remains unchanged, so this implementation is inclusive of fees even though it does not explicitly show it.EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws.\"},\"totalAssetsWithdrawable()\":{\"details\":\"Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws.\"},\"withdraw(uint256,address,address)\":{\"details\":\"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\",\"params\":{\"assets\":\"equivalent value of the assets withdrawn, denominated in the cellar's asset\",\"owner\":\"address that owns the shares being redeemed\",\"receiver\":\"address that will receive withdrawn assets\"},\"returns\":{\"shares\":\"amount of shares redeemed\"}}},\"stateVariables\":{\"priceRouter\":{\"details\":\"This way cellar has to \\\"opt in\\\" to price router changes.\"}},\"title\":\"Sommelier Cellar\",\"version\":1},\"userdoc\":{\"errors\":{\"Cellar__AssetMismatch(address,address)\":[{\"notice\":\"Attempted an operation with an asset that was different then the one expected.\"}],\"Cellar__CallToAdaptorNotAllowed(address)\":[{\"notice\":\"Strategist attempted to use an adaptor that is either paused or is not trusted by governance.\"}],\"Cellar__CallerNotAavePool()\":[{\"notice\":\"executeOperation was not called by the Aave Pool.\"}],\"Cellar__ContractNotShutdown()\":[{\"notice\":\"Attempted action was prevented due to contract not being shutdown.\"}],\"Cellar__ContractShutdown()\":[{\"notice\":\"Attempted action was prevented due to contract being shutdown.\"}],\"Cellar__DebtMismatch(uint32)\":[{\"notice\":\"Attempted to add a position, with mismatched debt.\"}],\"Cellar__DepositRestricted(uint256,uint256)\":[{\"notice\":\"Attempted deposit more than the max deposit.\"}],\"Cellar__ExternalInitiator()\":[{\"notice\":\"External contract attempted to initiate a flash loan.\"}],\"Cellar__IlliquidWithdraw(address)\":[{\"notice\":\"Attempted to withdraw an illiquid position.\"}],\"Cellar__IncompleteWithdraw(uint256)\":[{\"notice\":\"Withdraw did not withdraw all assets.\"}],\"Cellar__InvalidFee()\":[{\"notice\":\"Attempted to change platform fee with invalid value.\"}],\"Cellar__InvalidFeeCut()\":[{\"notice\":\"Attempted to change strategist fee cut with invalid value.\"}],\"Cellar__InvalidHoldingPosition(uint32)\":[{\"notice\":\"Attempted to add an invalid holding position.\"}],\"Cellar__InvalidRebalanceDeviation(uint256,uint256)\":[{\"notice\":\"Total shares in a cellar changed when they should stay constant.\"}],\"Cellar__InvalidShareLockPeriod()\":[{\"notice\":\"Attempted to set `shareLockPeriod` to an invalid number.\"}],\"Cellar__NotApprovedToDepositOnBehalf(address)\":[{\"notice\":\"Attempted deposit on behalf of a user without being approved.\"}],\"Cellar__Paused()\":[{\"notice\":\"Attempted to interact with the cellar when it is paused.\"}],\"Cellar__PositionAlreadyUsed(uint32)\":[{\"notice\":\"Attempted to add a position that is already being used.\"}],\"Cellar__PositionArrayFull(uint256)\":[{\"notice\":\"Attempted to add a position when the position array is full.\"}],\"Cellar__PositionNotEmpty(uint32,uint256)\":[{\"notice\":\"Attempted an action on a position that is required to be empty before the action can be performed.\"}],\"Cellar__PositionNotInCatalogue(uint32)\":[{\"notice\":\"Attempted to add a position that is not in the catalogue.\"}],\"Cellar__PositionNotUsed(uint32)\":[{\"notice\":\"Attempted to make an unused position the holding position.\"}],\"Cellar__RemovingHoldingPosition()\":[{\"notice\":\"Attempted to remove the Cellars holding position.\"}],\"Cellar__SharesAreLocked(uint256,uint256)\":[{\"notice\":\"Attempted to burn shares when they are locked.\"}],\"Cellar__TotalAssetDeviatedOutsideRange(uint256,uint256,uint256)\":[{\"notice\":\"totalAssets deviated outside the range set by `allowedRebalanceDeviation`.\"}],\"Cellar__TotalSharesMustRemainConstant(uint256,uint256)\":[{\"notice\":\"Total shares in a cellar changed when they should stay constant.\"}],\"Cellar__ZeroAssets()\":[{\"notice\":\"Attempted an action with zero assets.\"}],\"Cellar__ZeroShares()\":[{\"notice\":\"Attempted an action with zero shares.\"}]},\"events\":{\"AdaptorCatalogueAltered(address,bool)\":{\"notice\":\"Emitted when Governance adds/removes an adaptor to/from the cellars catalogue.\"},\"PlatformFeeChanged(uint64,uint64)\":{\"notice\":\"Emitted when platform fees is changed.\"},\"PositionAdded(uint32,uint256)\":{\"notice\":\"Emitted when a position is added.\"},\"PositionCatalogueAltered(uint32,bool)\":{\"notice\":\"Emitted when Governance adds/removes a position to/from the cellars catalogue.\"},\"PositionRemoved(uint32,uint256)\":{\"notice\":\"Emitted when a position is removed.\"},\"PositionSwapped(uint32,uint32,uint256,uint256)\":{\"notice\":\"Emitted when the positions at two indexes are swapped.\"},\"RebalanceDeviationChanged(uint256,uint256)\":{\"notice\":\"Emitted on when the rebalance deviation is changed.\"},\"ShareLockingPeriodChanged(uint256,uint256)\":{\"notice\":\"Emitted when share locking period is changed.\"},\"ShutdownChanged(bool)\":{\"notice\":\"Emitted when cellar emergency state is changed.\"},\"StrategistPayoutAddressChanged(address,address)\":{\"notice\":\"Emitted when strategists payout address is changed.\"},\"StrategistPlatformCutChanged(uint64,uint64)\":{\"notice\":\"Emitted when strategist platform fee cut is changed.\"}},\"kind\":\"user\",\"methods\":{\"GRAVITY_BRIDGE_REGISTRY_SLOT()\":{\"notice\":\"Id to get the gravity bridge from the registry.\"},\"MAXIMUM_SHARE_LOCK_PERIOD()\":{\"notice\":\"Shares can be locked for at most 2 days after minting.\"},\"MAX_FEE_CUT()\":{\"notice\":\"Sets the max possible fee cut for this cellar.\"},\"MAX_PLATFORM_FEE()\":{\"notice\":\"Sets the max possible performance fee for this cellar.\"},\"MAX_POSITIONS()\":{\"notice\":\"Maximum amount of positions a cellar can have in it's credit/debt arrays.\"},\"MAX_REBALANCE_DEVIATION()\":{\"notice\":\"Stores the max possible rebalance deviation for this cellar.\"},\"MINIMUM_SHARE_LOCK_PERIOD()\":{\"notice\":\"Shares must be locked for at least 5 minutes after minting.\"},\"PRICE_ROUTER_REGISTRY_SLOT()\":{\"notice\":\"Id to get the price router from the registry.\"},\"aavePool()\":{\"notice\":\"The Aave V2 Pool contract on Ethereum Mainnet.\"},\"adaptorCatalogue(address)\":{\"notice\":\"Adaptors the strategist is approved to use without any governance intervention.\"},\"addAdaptorToCatalogue(address)\":{\"notice\":\"Allows Governance to add adaptors to this cellar's catalogue.\"},\"addPosition(uint32,uint32,bytes,bool)\":{\"notice\":\"Insert a trusted position to the list of positions used by the cellar at a given index.\"},\"addPositionToCatalogue(uint32)\":{\"notice\":\"Allows Governance to add positions to this cellar's catalogue.\"},\"allowedRebalanceDeviation()\":{\"notice\":\"The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.\"},\"blockExternalReceiver()\":{\"notice\":\"This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw).\"},\"cachePriceRouter(bool)\":{\"notice\":\"Updates the cellar to use the lastest price router in the registry.\"},\"callOnAdaptor((address,bytes[])[])\":{\"notice\":\"Allows strategists to manage their Cellar using arbitrary logic calls to adaptors.\"},\"convertToAssets(uint256)\":{\"notice\":\"The amount of assets that the cellar would exchange for the amount of shares provided.\"},\"convertToShares(uint256)\":{\"notice\":\"The amount of shares that the cellar would exchange for the amount of assets provided.\"},\"creditPositions(uint256)\":{\"notice\":\"Array of uint32s made up of cellars credit positions Ids.\"},\"debtPositions(uint256)\":{\"notice\":\"Array of uint32s made up of cellars debt positions Ids.\"},\"deposit(uint256,address)\":{\"notice\":\"Deposits assets into the cellar, and returns shares to receiver.\"},\"executeOperation(address[],uint256[],uint256[],address,bytes)\":{\"notice\":\"Allows strategist to utilize Aave flashloans while rebalancing the cellar.\"},\"feeData()\":{\"notice\":\"Stores all fee data for cellar.\"},\"forcePositionOut(uint32,uint32,bool)\":{\"notice\":\"Allows Governance to force a cellar out of a position without making ANY external calls.\"},\"getCreditPositions()\":{\"notice\":\"Get the ids of the credit positions currently used by the cellar.\"},\"getDebtPositions()\":{\"notice\":\"Get the ids of the debt positions currently used by the cellar.\"},\"getPositionAssets()\":{\"notice\":\"Get all the credit positions underlying assets.\"},\"getPositionData(uint32)\":{\"notice\":\"Get position data given position id.\"},\"holdingPosition()\":{\"notice\":\"Stores the index of the holding position in the creditPositions array.\"},\"ignorePause()\":{\"notice\":\"Pauses all user entry/exits, and strategist rebalances.\"},\"initiateShutdown()\":{\"notice\":\"Shutdown the cellar. Used in an emergency or if the cellar has been deprecated.\"},\"isPaused()\":{\"notice\":\"View function external contracts can use to see if the cellar is paused.\"},\"isPositionUsed(uint256)\":{\"notice\":\"Tell whether a position is currently used.\"},\"isShutdown()\":{\"notice\":\"Whether or not the contract is shutdown in case of an emergency.\"},\"liftShutdown()\":{\"notice\":\"Restart the cellar.\"},\"locked()\":{\"notice\":\"`locked` is public, so that the state can be checked even during view function calls.\"},\"maxDeposit(address)\":{\"notice\":\"Total amount of assets that can be deposited for a user.\"},\"maxMint(address)\":{\"notice\":\"Total amount of shares that can be minted for a user.\"},\"maxRedeem(address)\":{\"notice\":\"Returns the max amount shares redeemable by a user\"},\"maxWithdraw(address)\":{\"notice\":\"Returns the max amount withdrawable by a user inclusive of performance fees\"},\"mint(uint256,address)\":{\"notice\":\"Mints shares from the cellar, and returns shares to receiver.\"},\"multicall(bytes[])\":{\"notice\":\"Allows caller to call multiple functions in a single TX.\"},\"positionCatalogue(uint32)\":{\"notice\":\"Positions the strategist is approved to use without any governance intervention.\"},\"previewDeposit(uint256)\":{\"notice\":\"Simulate the effects of depositing assets at the current block, given current on-chain conditions.\"},\"previewMint(uint256)\":{\"notice\":\"Simulate the effects of minting shares at the current block, given current on-chain conditions.\"},\"previewRedeem(uint256)\":{\"notice\":\"Simulate the effects of redeeming shares at the current block, given current on-chain conditions.\"},\"previewWithdraw(uint256)\":{\"notice\":\"Simulate the effects of withdrawing assets at the current block, given current on-chain conditions.\"},\"priceRouter()\":{\"notice\":\"Cached price router contract.\"},\"redeem(uint256,address,address)\":{\"notice\":\"Redeem shares to withdraw assets from the cellar.\"},\"registry()\":{\"notice\":\"Address of the platform's registry contract. Used to get the latest address of modules.\"},\"removeAdaptorFromCatalogue(address)\":{\"notice\":\"Allows Governance to remove adaptors from this cellar's catalogue.\"},\"removePosition(uint32,bool)\":{\"notice\":\"Remove the position at a given index from the list of positions used by the cellar.\"},\"removePositionFromCatalogue(uint32)\":{\"notice\":\"Allows Governance to remove positions from this cellar's catalogue.\"},\"setHoldingPosition(uint32)\":{\"notice\":\"Allows owner to change the holding position.\"},\"setRebalanceDeviation(uint256)\":{\"notice\":\"Allows governance to change this cellars rebalance deviation.\"},\"setShareLockPeriod(uint256)\":{\"notice\":\"Allows share lock period to be updated.\"},\"setStrategistPayoutAddress(address)\":{\"notice\":\"Sets the Strategists payout address\"},\"setStrategistPlatformCut(uint64)\":{\"notice\":\"Sets the Strategists cut of platform fees\"},\"shareLockPeriod()\":{\"notice\":\"After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares.\"},\"swapPositions(uint32,uint32,bool)\":{\"notice\":\"Swap the positions at two given indexes.\"},\"toggleIgnorePause(bool)\":{\"notice\":\"Allows governance to choose whether or not to respect a pause.\"},\"totalAssets()\":{\"notice\":\"The total amount of assets in the cellar.\"},\"totalAssetsWithdrawable()\":{\"notice\":\"The total amount of withdrawable assets in the cellar.\"},\"transfer(address,uint256)\":{\"notice\":\"Override `transfer` to add share lock check.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Override `transferFrom` to add share lock check.\"},\"userShareLockStartTime(address)\":{\"notice\":\"mapping that stores every users last time stamp they minted shares.\"},\"withdraw(uint256,address,address)\":{\"notice\":\"Withdraw assets from the cellar by redeeming shares.\"}},\"notice\":\"A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/base/Cellar.sol\":\"Cellar\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ds-test/=lib/forge-std/lib/ds-test/src/\",\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@solmate/=lib/solmate/src/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":@uniswapV3C/=lib/v3-core.git/contracts/\",\":@uniswapV3P/=lib/v3-periphery.git/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\",\":v3-core.git/=lib/v3-core.git/contracts/\",\":v3-periphery.git/=lib/v3-periphery.git/contracts/\"]},\"sources\":{\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\":{\"keccak256\":\"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39ad60071af2c115e064ebeb1686097efa83b26da0e2c814c635538538b7465\",\"dweb:/ipfs/QmYRARVDA1XZUqZNKNnArYHWbffNeeSVZQjt67ZXKGm85a\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\":{\"keccak256\":\"0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c3f481f69f3ee07d6bb91b38d1cd61f9fa72de29c63d778c98956db70ecd57b\",\"dweb:/ipfs/QmPeJrNHTZF8CrXk3BgLJCamwf1dUEzHyQsMYrdd4v1NEG\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7\",\"dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol\":{\"keccak256\":\"0x67076747c6f66d8d43472a56e72879c350056bff82e069addaf9064922863340\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b738dba680a6fbc4afc85819743f13f5b7f4790ec8634c9894e1160327b11b6e\",\"dweb:/ipfs/Qmbv3euvQppeBm2g61khcJSRMZWi78xUWzbnjKAvDBnka4\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x0108bf6a6ebd5f96678bed33a35947537263f96766131ee91461fb6485805028\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae2d274bf3d56a6d49a9bbd0a4871c54997a82551eb3eb1c0c39dc98698ff8bf\",\"dweb:/ipfs/QmTT7ty5DPGAmRnx94Xu3TUDYGSPDVLN2bppJAjjedrg1e\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de\",\"dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x182ad835742e188a50bc98b938287d28bf74ad87d01e2bbc1d207c2ba36e1adb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2ba26b6252bb52b39ffb18b2de027544619e3f71b78e5476eba52becfaae929\",\"dweb:/ipfs/Qmb7NqEzs7aWkrzpskxXCRb799XmPenZMDtpzRvNUph1Bg\"]},\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4\",\"dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx\"]},\"src/Registry.sol\":{\"keccak256\":\"0x72690631323f459be3da7dd7c4644a7678a509ff6fd9a76fc6f77124ba96bcb3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://237231d6746fbf8d95ec0fc07ee1ddc0978ae77ef12fe00f445e9f22232d1108\",\"dweb:/ipfs/QmbSKScTxX8nxNnjogci32r3fRexDfFG4sH4myE85AewQp\"]},\"src/base/Cellar.sol\":{\"keccak256\":\"0x851d6f03d13fcd1e4e55d40ab04908677ef1ec92dbcaf3c02ee492602c368d67\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0eff90da37039eb4fb743024373d46ce6ccc198b5cb5c61c628f7a160d94fd0b\",\"dweb:/ipfs/QmUoLuGxVU5UqKNUB75BxMvYnpTxxcq8ZiUskrTTx8WbJA\"]},\"src/base/ERC20.sol\":{\"keccak256\":\"0x6aeb5d5df72734774379b54cf7fdce21206275047f4fcaa536448fefb1bd7b02\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://e9d380b96bb23fe5e04a4a1f97e047c43dab65c9bbb69c9e0bf0def04fa042e4\",\"dweb:/ipfs/QmdNwDQXnNxbvxaAhiNDjvEdLC8qtom43H2d68NMAyrtyf\"]},\"src/base/ERC4626.sol\":{\"keccak256\":\"0x13989d2c6e0dcda91407ffb7c28a52ab627db289a4d75dd5f3e4deb219dca9e7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d493aa7fdcb779cd22f6b89089964ece46ea6d4fa0f99858cf181efb4cbee469\",\"dweb:/ipfs/QmZ2zHAHNmGi3iGcynGcPSppW97xYPh3yHDnxW7Ev7RasE\"]},\"src/base/Multicall.sol\":{\"keccak256\":\"0xcbb4381e9a730f94f98b2712167a6b369c27088d56dc1c1c45dff3b9f67626b9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b44d36d06c372cd871596a1147f69cc4a5fee42a0619517797db1c4426cc7b8c\",\"dweb:/ipfs/QmYeevkoTG2RmUPNzjikoJwp4SQkdSs9iPj7hjQh2Y9e5K\"]},\"src/base/SafeTransferLib.sol\":{\"keccak256\":\"0xb57fc6788a996b929a66b113fc47e5819778ce05e9f29beb9dd9ab2e26b22324\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://5dbce65cf972cbb4ea1173b4590ccbbdd134c24ad144484d2b9eb3006fdb860a\",\"dweb:/ipfs/QmeRkh21aTiZ9kiFr8grzFDzJvbydWeowZEBkG5kxtfQN3\"]},\"src/interfaces/IMulticall.sol\":{\"keccak256\":\"0xd10f58af0778cfc7f3758154066fc0ebbd3e360b1a6959c283ccf7c2a9e9634e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b218fd6c1571e3a16e8dc75f0237f797905b9a449d523e48d9dcb99473ed6ba0\",\"dweb:/ipfs/Qmet1GzEJ3Fq1FbKhr3MNFb8LpUkx37ynFCvoFKjkmBCU5\"]},\"src/interfaces/external/IAaveToken.sol\":{\"keccak256\":\"0x77cd64637e4c0fd379b2d4d826bcd9f64fc706a291ce77d023f693d1eb8e45d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e87630603401ff3374cb610b765e46a3a235ef294fab212cf3116a35db7c4d58\",\"dweb:/ipfs/Qma8awSuYptmpBsWUMz9NZBogVRtVQwXF5cvfsVWpNKhc3\"]},\"src/interfaces/external/IChainlinkAggregator.sol\":{\"keccak256\":\"0x5fc642cff679c1cc6e93b5eadd2089b6adb85a1a8c46106388c836a1447e228d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f6a5dc12a8d3c06463eb6ed638349fd0502d7fedb75da873f888416755ea3b2\",\"dweb:/ipfs/QmdDnsLaaGvKKxuvdGTiroKrXMP3eW75GjSW3HK7GySfVs\"]},\"src/interfaces/external/ICurvePool.sol\":{\"keccak256\":\"0x9ae71865252aeca89fd6c74013eded1d8029eccc46e3604291be16e97b89a5da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f504248ab846844bcd771226f7b2984455ddcc746357924fce50a41b65eec9e2\",\"dweb:/ipfs/QmQVe1VZUgxUab9ocsbrX42Ust3hs83BU3bpA1j6Cx1xo6\"]},\"src/interfaces/external/IGravity.sol\":{\"keccak256\":\"0xb862f0644274b9c268f508e9dc880770962b9095f340695a97a1cb2eb9789a11\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://533a9626cafd2260be6aa9cd9fbe305eb60e4208e43119c17ac0d33d41d07c51\",\"dweb:/ipfs/QmdmsXd9oozXdmCP4Fyt59VtKqm1spMgtU21LeuS85nG4c\"]},\"src/interfaces/external/IUniswapV2Router02.sol\":{\"keccak256\":\"0xee672165cfe63278b41b7e9c0ae34ad18d75f432c6c5583e9940c207a1a2464f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://10443d195fd79197bb27b110345d5cef5b49fc1acff5e82164abd8cd04cbf47a\",\"dweb:/ipfs/QmNnVhv7YNuMWUS7S1kDpZLAcoKdmSm9ADwGoxL5wgzTGo\"]},\"src/interfaces/external/IUniswapV3Router.sol\":{\"keccak256\":\"0x2c8578bd46f2de289ca1eb8c7a5c4412f3abdc6d61acbb07ec565ff1e5e80355\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f2b82a6d1fc71e09611d80dce96286f0546d1629bdee4e3686d6d528473187fd\",\"dweb:/ipfs/QmciPSKvHDjnFHRtjDwmdoiihwtDCFRZu1wfjnxuhYivMK\"]},\"src/modules/adaptors/BaseAdaptor.sol\":{\"keccak256\":\"0xb45700da63110e41cbb1879c3d261763644bc851effa798721cf7eca3e039f9a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7810084abb53310d5d50f5ca55557e9dcdc8fef6c987e55d82a7748aad467e27\",\"dweb:/ipfs/QmaieqMfgwWJvFy8q3jVrx8Fifo6M9UZM8cBjpmyNFPc5j\"]},\"src/modules/price-router/PriceRouter.sol\":{\"keccak256\":\"0x3d0fb1c107cfbd5b72660b548a9749dfd0d07d9a0b5abdf554d593ee00569550\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f90a60a3097007a1dcd2871db79b0df74cf2a18de5126fc2bd2896f2715e93af\",\"dweb:/ipfs/QmTDqnNN9Rv29MYHCAzZsKzsDbTBMYYQi17VEwhmbE6KYC\"]},\"src/modules/swap-router/SwapRouter.sol\":{\"keccak256\":\"0x2cc9c40333f0cb43d937124d8db088334e48280c8af2b9ebef7675daf167eb80\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87efec51915ae91561e3ee7ea97f3a0daff4826c0f5974ba404f4fa25aa46818\",\"dweb:/ipfs/QmSig68SbFz12nvm3MkLVvtyKQMFX8W1tMNqn6RCNhAVGr\"]},\"src/utils/Math.sol\":{\"keccak256\":\"0xdec791a31325162117ed7856d7042f3f58885d29044a5ab7fa266a68551c485f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87be5c0da99226925af33c0121802fc009ddee39becdcce2e60db01813bc8312\",\"dweb:/ipfs/QmXxgS5tfWBQF5pYHoX5HMbcRMW27iTALZGKyyVuAi7A8r\"]},\"src/utils/Uint32Array.sol\":{\"keccak256\":\"0x418cd655203ebf671b76cbae3a1594c44356b5ca91c9f9e7eb5de07013e300d9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b31b9db2d85bd7c41949307ef37903ff347f57b21f4b8d81a637dbfc1deed944\",\"dweb:/ipfs/QmScY9Jm2rsihu7QToNYuxLWADjmRjwxbScEGRwvXK29p3\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ + "inputs": [ { - "internalType": "contract Registry", - "name": "_registry", - "type": "address" + "internalType": "address", + "name": "owner", + "type": "address" }, { - "internalType": "contract ERC20", - "name": "_asset", - "type": "address" + "internalType": "address", + "name": "spender", + "type": "address" }, { - "internalType": "string", - "name": "_name", - "type": "string" + "internalType": "uint256", + "name": "value", + "type": "uint256" }, { - "internalType": "string", - "name": "_symbol", - "type": "string" + "internalType": "uint256", + "name": "deadline", + "type": "uint256" }, { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { - "internalType": "address", - "name": "asset", - "type": "address" + "internalType": "bytes32", + "name": "r", + "type": "bytes32" }, { - "internalType": "address", - "name": "expectedAsset", - "type": "address" + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } - ], - "type": "error", - "name": "Cellar__AssetMismatch" - }, - { - "inputs": [ + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "adaptor", - "type": "address" + "internalType": "uint32", + "name": "", + "type": "uint32" } - ], - "type": "error", - "name": "Cellar__CallToAdaptorNotAllowed" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__CallerNotAavePool" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__ContractNotShutdown" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__ContractShutdown" - }, - { - "inputs": [ + ], + "name": "positionCatalogue", + "outputs": [ { - "internalType": "uint32", - "name": "position", - "type": "uint32" + "internalType": "bool", + "name": "", + "type": "bool" } - ], - "type": "error", - "name": "Cellar__DebtMismatch" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "maxDeposit", - "type": "uint256" + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__DepositRestricted" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__ExternalInitiator" - }, - { - "inputs": [ + ], + "name": "previewDeposit", + "outputs": [ { - "internalType": "address", - "name": "illiquidPosition", - "type": "address" + "internalType": "uint256", + "name": "shares", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__IlliquidWithdraw" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assetsOwed", - "type": "uint256" - } - ], - "type": "error", - "name": "Cellar__IncompleteWithdraw" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__InvalidFee" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__InvalidFeeCut" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "type": "error", - "name": "Cellar__InvalidHoldingPosition" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requested", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "type": "error", - "name": "Cellar__InvalidRebalanceDeviation" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__InvalidShareLockPeriod" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "depositor", - "type": "address" - } - ], - "type": "error", - "name": "Cellar__NotApprovedToDepositOnBehalf" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__Paused" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "type": "error", - "name": "Cellar__PositionAlreadyUsed" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPositions", - "type": "uint256" - } - ], - "type": "error", - "name": "Cellar__PositionArrayFull" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "sharesRemaining", - "type": "uint256" - } - ], - "type": "error", - "name": "Cellar__PositionNotEmpty" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32" - } - ], - "type": "error", - "name": "Cellar__PositionNotInCatalogue" - }, - { - "inputs": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint32", - "name": "position", - "type": "uint32" + "internalType": "uint256", + "name": "shares", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__PositionNotUsed" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__RemovingHoldingPosition" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "timeSharesAreUnlocked", - "type": "uint256" - }, + ], + "name": "previewMint", + "outputs": [ { - "internalType": "uint256", - "name": "currentBlock", - "type": "uint256" + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__SharesAreLocked" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "max", - "type": "uint256" + "internalType": "uint256", + "name": "shares", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__TotalAssetDeviatedOutsideRange" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "current", - "type": "uint256" - }, + ], + "name": "previewRedeem", + "outputs": [ { - "internalType": "uint256", - "name": "expected", - "type": "uint256" + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "type": "error", - "name": "Cellar__TotalSharesMustRemainConstant" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__ZeroAssets" - }, - { - "inputs": [], - "type": "error", - "name": "Cellar__ZeroShares" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address", - "indexed": false - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes", - "name": "data", - "type": "bytes", - "indexed": false + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "type": "event", - "name": "AdaptorCalled", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address", - "indexed": false - }, + ], + "name": "previewWithdraw", + "outputs": [ { - "internalType": "bool", - "name": "inCatalogue", - "type": "bool", - "indexed": false + "internalType": "uint256", + "name": "shares", + "type": "uint256" } - ], - "type": "event", - "name": "AdaptorCatalogueAltered", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "spender", - "type": "address", - "indexed": true - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "priceRouter", + "outputs": [ { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false + "internalType": "contract PriceRouter", + "name": "", + "type": "address" } - ], - "type": "event", - "name": "Approval", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "assets", - "type": "uint256", - "indexed": false + "internalType": "uint256", + "name": "shares", + "type": "uint256" }, { - "internalType": "uint256", - "name": "shares", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Deposit", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address", - "indexed": true + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "internalType": "address", - "name": "newOwner", - "type": "address", - "indexed": true + "internalType": "address", + "name": "owner", + "type": "address" } - ], - "type": "event", - "name": "OwnershipTransferred", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "oldPlatformFee", - "type": "uint64", - "indexed": false - }, + ], + "name": "redeem", + "outputs": [ { - "internalType": "uint64", - "name": "newPlatformFee", - "type": "uint64", - "indexed": false + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "type": "event", - "name": "PlatformFeeChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "position", - "type": "uint32", - "indexed": false - }, + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ { - "internalType": "uint256", - "name": "index", - "type": "uint256", - "indexed": false + "internalType": "contract Registry", + "name": "", + "type": "address" } - ], - "type": "event", - "name": "PositionAdded", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32", - "indexed": false - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "inCatalogue", - "type": "bool", - "indexed": false + "internalType": "address", + "name": "adaptor", + "type": "address" } - ], - "type": "event", - "name": "PositionCatalogueAltered", - "anonymous": false - }, - { - "inputs": [ + ], + "name": "removeAdaptorFromCatalogue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint32", - "name": "position", - "type": "uint32", - "indexed": false + "internalType": "uint32", + "name": "index", + "type": "uint32" }, { - "internalType": "uint256", - "name": "index", - "type": "uint256", - "indexed": false + "internalType": "bool", + "name": "inDebtArray", + "type": "bool" } - ], - "type": "event", - "name": "PositionRemoved", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "newPosition1", - "type": "uint32", - "indexed": false - }, - { - "internalType": "uint32", - "name": "newPosition2", - "type": "uint32", - "indexed": false - }, - { - "internalType": "uint256", - "name": "index1", - "type": "uint256", - "indexed": false - }, + ], + "name": "removePosition", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "index2", - "type": "uint256", - "indexed": false + "internalType": "uint32", + "name": "positionId", + "type": "uint32" } - ], - "type": "event", - "name": "PositionSwapped", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oldDeviation", - "type": "uint256", - "indexed": false - }, + ], + "name": "removePositionFromCatalogue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "newDeviation", - "type": "uint256", - "indexed": false + "internalType": "uint32", + "name": "positionId", + "type": "uint32" } - ], - "type": "event", - "name": "RebalanceDeviationChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "oldPeriod", - "type": "uint256", - "indexed": false - }, + ], + "name": "setHoldingPosition", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "newPeriod", - "type": "uint256", - "indexed": false + "internalType": "uint256", + "name": "newDeviation", + "type": "uint256" } - ], - "type": "event", - "name": "ShareLockingPeriodChanged", - "anonymous": false - }, - { - "inputs": [ + ], + "name": "setRebalanceDeviation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "isShutdown", - "type": "bool", - "indexed": false + "internalType": "uint256", + "name": "newLock", + "type": "uint256" } - ], - "type": "event", - "name": "ShutdownChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oldPayoutAddress", - "type": "address", - "indexed": false - }, + ], + "name": "setShareLockPeriod", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "newPayoutAddress", - "type": "address", - "indexed": false + "internalType": "address", + "name": "payout", + "type": "address" } - ], - "type": "event", - "name": "StrategistPayoutAddressChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "oldPlatformCut", - "type": "uint64", - "indexed": false - }, + ], + "name": "setStrategistPayoutAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint64", - "name": "newPlatformCut", - "type": "uint64", - "indexed": false + "internalType": "uint64", + "name": "cut", + "type": "uint64" } - ], - "type": "event", - "name": "StrategistPlatformCutChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, + ], + "name": "setStrategistPlatformCut", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "shareLockPeriod", + "outputs": [ { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false + "internalType": "uint256", + "name": "", + "type": "uint256" } - ], - "type": "event", - "name": "Transfer", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "receiver", - "type": "address", - "indexed": true - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true + "internalType": "uint32", + "name": "index1", + "type": "uint32" }, { - "internalType": "uint256", - "name": "assets", - "type": "uint256", - "indexed": false + "internalType": "uint32", + "name": "index2", + "type": "uint32" }, { - "internalType": "uint256", - "name": "shares", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Withdraw", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "GRAVITY_BRIDGE_REGISTRY_SLOT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAXIMUM_SHARE_LOCK_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_FEE_CUT", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_PLATFORM_FEE", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_POSITIONS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MAX_REBALANCE_DEVIATION", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MINIMUM_SHARE_LOCK_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "PRICE_ROUTER_REGISTRY_SLOT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "aavePool", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "bool", + "name": "inDebtArray", + "type": "bool" } - ] - }, - { - "inputs": [ + ], + "name": "swapPositions", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "string", + "name": "", + "type": "string" } - ], - "stateMutability": "view", - "type": "function", - "name": "adaptorCatalogue", - "outputs": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "bool", + "name": "toggle", + "type": "bool" } - ] - }, - { - "inputs": [ + ], + "name": "toggleIgnorePause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalAssets", + "outputs": [ { - "internalType": "address", - "name": "adaptor", - "type": "address" + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "addAdaptorToCatalogue" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "index", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "configurationData", - "type": "bytes" - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalAssetsWithdrawable", + "outputs": [ { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" + "internalType": "uint256", + "name": "assets", + "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "addPosition" - }, - { - "inputs": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" + "internalType": "uint256", + "name": "", + "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "addPositionToCatalogue" - }, - { - "inputs": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "address", + "name": "to", + "type": "address" }, { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "allowedRebalanceDeviation", - "outputs": [ + ], + "name": "transfer", + "outputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } - ] - }, - { - "inputs": [ + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "spender", - "type": "address" + "internalType": "address", + "name": "from", + "type": "address" }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "asset", - "outputs": [ - { - "internalType": "contract ERC20", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "blockExternalReceiver", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "checkTotalAssets", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "cachePriceRouter" - }, - { - "inputs": [ - { - "internalType": "struct Cellar.AdaptorCall[]", - "name": "data", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - }, - { - "internalType": "bytes[]", - "name": "callData", - "type": "bytes[]" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "callOnAdaptor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "convertToAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "convertToShares", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "creditPositions", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "debtPositions", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" + "internalType": "address", + "name": "to", + "type": "address" }, { - "internalType": "address", - "name": "receiver", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit", - "outputs": [ + ], + "name": "transferFrom", + "outputs": [ { - "internalType": "uint256", - "name": "shares", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } - ] - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "assets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "premiums", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "initiator", - "type": "address" - }, + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes", - "name": "params", - "type": "bytes" + "internalType": "address", + "name": "newOwner", + "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "executeOperation", - "outputs": [ + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "address", + "name": "", + "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "feeData", - "outputs": [ - { - "internalType": "uint64", - "name": "strategistPlatformCut", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "platformFee", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastAccrual", - "type": "uint64" - }, + ], + "name": "userShareLockStartTime", + "outputs": [ { - "internalType": "address", - "name": "strategistPayoutAddress", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } - ] - }, - { - "inputs": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "viewPositionBalances", + "outputs": [ { - "internalType": "uint32", - "name": "index", - "type": "uint32" + "internalType": "contract ERC20[]", + "name": "assets", + "type": "address[]" }, { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" + "internalType": "uint256[]", + "name": "balances", + "type": "uint256[]" }, { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "forcePositionOut" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getCreditPositions", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getDebtPositions", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getPositionAssets", - "outputs": [ - { - "internalType": "contract ERC20[]", - "name": "assets", - "type": "address[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "bool[]", + "name": "isDebt", + "type": "bool[]" } - ], - "stateMutability": "view", - "type": "function", - "name": "getPositionData", - "outputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - }, + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "isDebt", - "type": "bool" + "internalType": "uint256", + "name": "assets", + "type": "uint256" }, { - "internalType": "bytes", - "name": "adaptorData", - "type": "bytes" + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "internalType": "bytes", - "name": "configurationData", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "holdingPosition", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "ignorePause", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "initiateShutdown" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isPaused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isPositionUsed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "address", + "name": "owner", + "type": "address" } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isShutdown", - "outputs": [ + ], + "name": "withdraw", + "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "shares", + "type": "uint256" } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "liftShutdown" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "locked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "maxDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "maxMint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "maxRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "maxWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "multicall" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "permit" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "positionCatalogue", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "previewDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "previewMint", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "previewRedeem", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "previewWithdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "priceRouter", - "outputs": [ - { - "internalType": "contract PriceRouter", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "redeem", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "registry", - "outputs": [ - { - "internalType": "contract Registry", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "adaptor", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "removeAdaptorFromCatalogue" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "index", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "removePosition" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "removePositionFromCatalogue" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "positionId", - "type": "uint32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setHoldingPosition" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newDeviation", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setRebalanceDeviation" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newLock", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setShareLockPeriod" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payout", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setStrategistPayoutAddress" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "cut", - "type": "uint64" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setStrategistPlatformCut" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "shareLockPeriod", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "index1", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "index2", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "inDebtArray", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "swapPositions" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "toggle", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "toggleIgnorePause" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalAssets", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalAssetsWithdrawable", - "outputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferOwnership" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "userShareLockStartTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "viewPositionBalances", - "outputs": [ - { - "internalType": "contract ERC20[]", - "name": "assets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "balances", - "type": "uint256[]" - }, - { - "internalType": "bool[]", - "name": "isDebt", - "type": "bool[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "assets", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw", - "outputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "addPosition(uint32,uint32,bytes,bool)": { - "params": { - "configurationData": "data used to configure how the position behaves", - "index": "index at which to insert the position", - "positionId": "id of position to add" - } - }, - "cachePriceRouter(bool)": { - "params": { - "checkTotalAssets": "If true totalAssets is checked before and after updating the price router, and is verified to be withing a +- 5% envelope. If false totalAssets is only called after updating the price router." - } - }, - "callOnAdaptor((address,bytes[])[])": { - "details": "There are several safety checks in this function to prevent strategists from abusing it. - `blockExternalReceiver` - `totalAssets` must not change by much - `totalShares` must remain constant - adaptors must be set up to be used with this cellarSince `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending multiple `callOnAdaptor` calls rapidly, to gradually change the share price. To mitigate this, rate limiting will be put in place on the Sommelier side." - }, - "constructor": { - "details": "Owner should be set to the Gravity Bridge, which relays instructions from the Steward module to the cellars. https://github.com/PeggyJV/steward https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol", - "params": { - "_asset": "address of underlying token used for the for accounting, depositing, and withdrawing", - "_name": "name of this cellar's share token", - "_registry": "address of the platform's registry contract", - "_symbol": "symbol of this cellar's share token", - "params": "abi encode values. - _creditPositions ids of the credit positions to initialize the cellar with - _debtPositions ids of the credit positions to initialize the cellar with - _creditConfigurationData configuration data for each position - _debtConfigurationData configuration data for each position - _holdingIndex the index in _creditPositions to use as the holding position. - _strategistPayout the address to send the strategists fee shares. - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to - _protocolRiskTolerance this cellars risk tolerance for protocols it will use" - } - }, - "convertToAssets(uint256)": { - "params": { - "shares": "amount of shares to convert" - }, - "returns": { - "assets": "the shares can be exchanged for" - } - }, - "convertToShares(uint256)": { - "params": { - "assets": "amount of assets to convert" - }, - "returns": { - "shares": "the assets can be exchanged for" - } - }, - "deposit(uint256,address)": { - "params": { - "assets": "amount of assets deposited by user.", - "receiver": "address to receive the shares." - }, - "returns": { - "shares": "amount of shares given for deposit." - } - }, - "initiateShutdown()": { - "details": "In the case where" - }, - "maxDeposit(address)": { - "returns": { - "_0": "assets maximum amount of assets that can be deposited" - } - }, - "maxMint(address)": { - "returns": { - "_0": "shares maximum amount of shares that can be minted" - } - }, - "maxRedeem(address)": { - "details": "EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.", - "params": { - "owner": "address to check maxRedeem of." - }, - "returns": { - "_0": "the max amount of shares redeemable by `owner`." - } - }, - "maxWithdraw(address)": { - "details": "EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.", - "params": { - "owner": "address to check maxWithdraw of." - }, - "returns": { - "_0": "the max amount of assets withdrawable by `owner`." - } - }, - "mint(uint256,address)": { - "params": { - "receiver": "address to receive the shares.", - "shares": "amount of shares requested by user." - }, - "returns": { - "assets": "amount of assets deposited into the cellar." - } - }, - "multicall(bytes[])": { - "details": "Does NOT return the function return values." - }, - "onERC721Received(address,address,uint256,bytes)": { - "details": "See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`." - }, - "previewDeposit(uint256)": { - "params": { - "assets": "amount of assets to deposit" - }, - "returns": { - "shares": "that will be minted" - } - }, - "previewMint(uint256)": { - "params": { - "shares": "amount of shares to mint" - }, - "returns": { - "assets": "that will be deposited" - } - }, - "previewRedeem(uint256)": { - "params": { - "shares": "amount of shares to redeem" - }, - "returns": { - "assets": "that will be returned" - } - }, - "previewWithdraw(uint256)": { - "params": { - "assets": "amount of assets to withdraw" - }, - "returns": { - "shares": "that will be redeemed" - } - }, - "redeem(uint256,address,address)": { - "details": "Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).", - "params": { - "owner": "address that owns the shares being redeemed", - "receiver": "address that will receive withdrawn assets", - "shares": "amount of shares to redeem" - }, - "returns": { - "assets": "equivalent value of the assets withdrawn, denominated in the cellar's asset" - } - }, - "removePosition(uint32,bool)": { - "details": "Called by strategist.", - "params": { - "index": "index at which to remove the position" - } - }, - "setRebalanceDeviation(uint256)": { - "params": { - "newDeviation": "the new rebalance deviation value." - } - }, - "setShareLockPeriod(uint256)": { - "params": { - "newLock": "the new lock period" - } - }, - "setStrategistPayoutAddress(address)": { - "params": { - "payout": "the new strategist payout address" - } - }, - "setStrategistPlatformCut(uint64)": { - "params": { - "cut": "the platform cut for the strategist" - } - }, - "swapPositions(uint32,uint32,bool)": { - "params": { - "inDebtArray": "bool indicating to switch positions in the debt array, or the credit array.", - "index1": "index of first position to swap", - "index2": "index of second position to swap" - } - }, - "totalAssets()": { - "details": "EIP4626 states totalAssets needs to be inclusive of fees. Since performance fees mint shares, total assets remains unchanged, so this implementation is inclusive of fees even though it does not explicitly show it.EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws." - }, - "totalAssetsWithdrawable()": { - "details": "Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws." - }, - "withdraw(uint256,address,address)": { - "details": "Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).", - "params": { - "assets": "equivalent value of the assets withdrawn, denominated in the cellar's asset", - "owner": "address that owns the shares being redeemed", - "receiver": "address that will receive withdrawn assets" - }, - "returns": { - "shares": "amount of shares redeemed" - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "GRAVITY_BRIDGE_REGISTRY_SLOT()": { - "notice": "Id to get the gravity bridge from the registry." - }, - "MAXIMUM_SHARE_LOCK_PERIOD()": { - "notice": "Shares can be locked for at most 2 days after minting." - }, - "MAX_FEE_CUT()": { - "notice": "Sets the max possible fee cut for this cellar." - }, - "MAX_PLATFORM_FEE()": { - "notice": "Sets the max possible performance fee for this cellar." - }, - "MAX_POSITIONS()": { - "notice": "Maximum amount of positions a cellar can have in it's credit/debt arrays." - }, - "MAX_REBALANCE_DEVIATION()": { - "notice": "Stores the max possible rebalance deviation for this cellar." - }, - "MINIMUM_SHARE_LOCK_PERIOD()": { - "notice": "Shares must be locked for at least 5 minutes after minting." - }, - "PRICE_ROUTER_REGISTRY_SLOT()": { - "notice": "Id to get the price router from the registry." - }, - "aavePool()": { - "notice": "The Aave V2 Pool contract on Ethereum Mainnet." - }, - "adaptorCatalogue(address)": { - "notice": "Adaptors the strategist is approved to use without any governance intervention." - }, - "addAdaptorToCatalogue(address)": { - "notice": "Allows Governance to add adaptors to this cellar's catalogue." - }, - "addPosition(uint32,uint32,bytes,bool)": { - "notice": "Insert a trusted position to the list of positions used by the cellar at a given index." - }, - "addPositionToCatalogue(uint32)": { - "notice": "Allows Governance to add positions to this cellar's catalogue." - }, - "allowedRebalanceDeviation()": { - "notice": "The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call." - }, - "blockExternalReceiver()": { - "notice": "This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw)." - }, - "cachePriceRouter(bool)": { - "notice": "Updates the cellar to use the lastest price router in the registry." - }, - "callOnAdaptor((address,bytes[])[])": { - "notice": "Allows strategists to manage their Cellar using arbitrary logic calls to adaptors." - }, - "convertToAssets(uint256)": { - "notice": "The amount of assets that the cellar would exchange for the amount of shares provided." - }, - "convertToShares(uint256)": { - "notice": "The amount of shares that the cellar would exchange for the amount of assets provided." - }, - "creditPositions(uint256)": { - "notice": "Array of uint32s made up of cellars credit positions Ids." - }, - "debtPositions(uint256)": { - "notice": "Array of uint32s made up of cellars debt positions Ids." - }, - "deposit(uint256,address)": { - "notice": "Deposits assets into the cellar, and returns shares to receiver." - }, - "executeOperation(address[],uint256[],uint256[],address,bytes)": { - "notice": "Allows strategist to utilize Aave flashloans while rebalancing the cellar." - }, - "feeData()": { - "notice": "Stores all fee data for cellar." - }, - "forcePositionOut(uint32,uint32,bool)": { - "notice": "Allows Governance to force a cellar out of a position without making ANY external calls." - }, - "getCreditPositions()": { - "notice": "Get the ids of the credit positions currently used by the cellar." - }, - "getDebtPositions()": { - "notice": "Get the ids of the debt positions currently used by the cellar." - }, - "getPositionAssets()": { - "notice": "Get all the credit positions underlying assets." - }, - "getPositionData(uint32)": { - "notice": "Get position data given position id." - }, - "holdingPosition()": { - "notice": "Stores the index of the holding position in the creditPositions array." - }, - "ignorePause()": { - "notice": "Pauses all user entry/exits, and strategist rebalances." - }, - "initiateShutdown()": { - "notice": "Shutdown the cellar. Used in an emergency or if the cellar has been deprecated." - }, - "isPaused()": { - "notice": "View function external contracts can use to see if the cellar is paused." - }, - "isPositionUsed(uint256)": { - "notice": "Tell whether a position is currently used." - }, - "isShutdown()": { - "notice": "Whether or not the contract is shutdown in case of an emergency." - }, - "liftShutdown()": { - "notice": "Restart the cellar." - }, - "locked()": { - "notice": "`locked` is public, so that the state can be checked even during view function calls." - }, - "maxDeposit(address)": { - "notice": "Total amount of assets that can be deposited for a user." - }, - "maxMint(address)": { - "notice": "Total amount of shares that can be minted for a user." - }, - "maxRedeem(address)": { - "notice": "Returns the max amount shares redeemable by a user" - }, - "maxWithdraw(address)": { - "notice": "Returns the max amount withdrawable by a user inclusive of performance fees" - }, - "mint(uint256,address)": { - "notice": "Mints shares from the cellar, and returns shares to receiver." - }, - "multicall(bytes[])": { - "notice": "Allows caller to call multiple functions in a single TX." - }, - "positionCatalogue(uint32)": { - "notice": "Positions the strategist is approved to use without any governance intervention." - }, - "previewDeposit(uint256)": { - "notice": "Simulate the effects of depositing assets at the current block, given current on-chain conditions." - }, - "previewMint(uint256)": { - "notice": "Simulate the effects of minting shares at the current block, given current on-chain conditions." - }, - "previewRedeem(uint256)": { - "notice": "Simulate the effects of redeeming shares at the current block, given current on-chain conditions." - }, - "previewWithdraw(uint256)": { - "notice": "Simulate the effects of withdrawing assets at the current block, given current on-chain conditions." - }, - "priceRouter()": { - "notice": "Cached price router contract." - }, - "redeem(uint256,address,address)": { - "notice": "Redeem shares to withdraw assets from the cellar." - }, - "registry()": { - "notice": "Address of the platform's registry contract. Used to get the latest address of modules." - }, - "removeAdaptorFromCatalogue(address)": { - "notice": "Allows Governance to remove adaptors from this cellar's catalogue." - }, - "removePosition(uint32,bool)": { - "notice": "Remove the position at a given index from the list of positions used by the cellar." - }, - "removePositionFromCatalogue(uint32)": { - "notice": "Allows Governance to remove positions from this cellar's catalogue." - }, - "setHoldingPosition(uint32)": { - "notice": "Allows owner to change the holding position." - }, - "setRebalanceDeviation(uint256)": { - "notice": "Allows governance to change this cellars rebalance deviation." - }, - "setShareLockPeriod(uint256)": { - "notice": "Allows share lock period to be updated." - }, - "setStrategistPayoutAddress(address)": { - "notice": "Sets the Strategists payout address" - }, - "setStrategistPlatformCut(uint64)": { - "notice": "Sets the Strategists cut of platform fees" - }, - "shareLockPeriod()": { - "notice": "After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares." - }, - "swapPositions(uint32,uint32,bool)": { - "notice": "Swap the positions at two given indexes." - }, - "toggleIgnorePause(bool)": { - "notice": "Allows governance to choose whether or not to respect a pause." - }, - "totalAssets()": { - "notice": "The total amount of assets in the cellar." - }, - "totalAssetsWithdrawable()": { - "notice": "The total amount of withdrawable assets in the cellar." - }, - "transfer(address,uint256)": { - "notice": "Override `transfer` to add share lock check." - }, - "transferFrom(address,address,uint256)": { - "notice": "Override `transferFrom` to add share lock check." - }, - "userShareLockStartTime(address)": { - "notice": "mapping that stores every users last time stamp they minted shares." - }, - "withdraw(uint256,address,address)": { - "notice": "Withdraw assets from the cellar by redeeming shares." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@chainlink/=lib/chainlink/", - ":@ds-test/=lib/forge-std/lib/ds-test/src/", - ":@forge-std/=lib/forge-std/src/", - ":@openzeppelin/=lib/openzeppelin-contracts/", - ":@solmate/=lib/solmate/src/", - ":@uniswap/v3-core/=lib/v3-core/", - ":@uniswap/v3-periphery/=lib/v3-periphery/", - ":@uniswapV3C/=lib/v3-core.git/contracts/", - ":@uniswapV3P/=lib/v3-periphery.git/contracts/", - ":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/", - ":solmate/=lib/solmate/src/", - ":v3-core.git/=lib/v3-core.git/contracts/", - ":v3-periphery.git/=lib/v3-periphery.git/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/base/Cellar.sol": "Cellar" - }, - "libraries": {} - }, - "sources": { - "lib/chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol": { - "keccak256": "0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7", - "urls": [ - "bzz-raw://f39ad60071af2c115e064ebeb1686097efa83b26da0e2c814c635538538b7465", - "dweb:/ipfs/QmYRARVDA1XZUqZNKNnArYHWbffNeeSVZQjt67ZXKGm85a" - ], - "license": "MIT" - }, - "lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol": { - "keccak256": "0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2", - "urls": [ - "bzz-raw://7c3f481f69f3ee07d6bb91b38d1cd61f9fa72de29c63d778c98956db70ecd57b", - "dweb:/ipfs/QmPeJrNHTZF8CrXk3BgLJCamwf1dUEzHyQsMYrdd4v1NEG" - ], - "license": "MIT" - }, - "lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol": { - "keccak256": "0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846", - "urls": [ - "bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7", - "dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c" - ], - "license": "MIT" - }, - "lib/chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol": { - "keccak256": "0x67076747c6f66d8d43472a56e72879c350056bff82e069addaf9064922863340", - "urls": [ - "bzz-raw://b738dba680a6fbc4afc85819743f13f5b7f4790ec8634c9894e1160327b11b6e", - "dweb:/ipfs/Qmbv3euvQppeBm2g61khcJSRMZWi78xUWzbnjKAvDBnka4" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { - "keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673", - "urls": [ - "bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2", - "dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", - "urls": [ - "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", - "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": { - "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da", - "urls": [ - "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708", - "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol": { - "keccak256": "0x0108bf6a6ebd5f96678bed33a35947537263f96766131ee91461fb6485805028", - "urls": [ - "bzz-raw://ae2d274bf3d56a6d49a9bbd0a4871c54997a82551eb3eb1c0c39dc98698ff8bf", - "dweb:/ipfs/QmTT7ty5DPGAmRnx94Xu3TUDYGSPDVLN2bppJAjjedrg1e" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700", - "urls": [ - "bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de", - "dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Context.sol": { - "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - "urls": [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { - "keccak256": "0x182ad835742e188a50bc98b938287d28bf74ad87d01e2bbc1d207c2ba36e1adb", - "urls": [ - "bzz-raw://c2ba26b6252bb52b39ffb18b2de027544619e3f71b78e5476eba52becfaae929", - "dweb:/ipfs/Qmb7NqEzs7aWkrzpskxXCRb799XmPenZMDtpzRvNUph1Bg" - ], - "license": "MIT" - }, - "lib/solmate/src/auth/Owned.sol": { - "keccak256": "0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea", - "urls": [ - "bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4", - "dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx" - ], - "license": "AGPL-3.0-only" - }, - "src/Registry.sol": { - "keccak256": "0x72690631323f459be3da7dd7c4644a7678a509ff6fd9a76fc6f77124ba96bcb3", - "urls": [ - "bzz-raw://237231d6746fbf8d95ec0fc07ee1ddc0978ae77ef12fe00f445e9f22232d1108", - "dweb:/ipfs/QmbSKScTxX8nxNnjogci32r3fRexDfFG4sH4myE85AewQp" - ], - "license": "Apache-2.0" - }, - "src/base/Cellar.sol": { - "keccak256": "0x851d6f03d13fcd1e4e55d40ab04908677ef1ec92dbcaf3c02ee492602c368d67", - "urls": [ - "bzz-raw://0eff90da37039eb4fb743024373d46ce6ccc198b5cb5c61c628f7a160d94fd0b", - "dweb:/ipfs/QmUoLuGxVU5UqKNUB75BxMvYnpTxxcq8ZiUskrTTx8WbJA" - ], - "license": "Apache-2.0" - }, - "src/base/ERC20.sol": { - "keccak256": "0x6aeb5d5df72734774379b54cf7fdce21206275047f4fcaa536448fefb1bd7b02", - "urls": [ - "bzz-raw://e9d380b96bb23fe5e04a4a1f97e047c43dab65c9bbb69c9e0bf0def04fa042e4", - "dweb:/ipfs/QmdNwDQXnNxbvxaAhiNDjvEdLC8qtom43H2d68NMAyrtyf" - ], - "license": "AGPL-3.0-only" - }, - "src/base/ERC4626.sol": { - "keccak256": "0x13989d2c6e0dcda91407ffb7c28a52ab627db289a4d75dd5f3e4deb219dca9e7", - "urls": [ - "bzz-raw://d493aa7fdcb779cd22f6b89089964ece46ea6d4fa0f99858cf181efb4cbee469", - "dweb:/ipfs/QmZ2zHAHNmGi3iGcynGcPSppW97xYPh3yHDnxW7Ev7RasE" - ], - "license": "AGPL-3.0-only" - }, - "src/base/Multicall.sol": { - "keccak256": "0xcbb4381e9a730f94f98b2712167a6b369c27088d56dc1c1c45dff3b9f67626b9", - "urls": [ - "bzz-raw://b44d36d06c372cd871596a1147f69cc4a5fee42a0619517797db1c4426cc7b8c", - "dweb:/ipfs/QmYeevkoTG2RmUPNzjikoJwp4SQkdSs9iPj7hjQh2Y9e5K" - ], - "license": "GPL-2.0-or-later" - }, - "src/base/SafeTransferLib.sol": { - "keccak256": "0xb57fc6788a996b929a66b113fc47e5819778ce05e9f29beb9dd9ab2e26b22324", - "urls": [ - "bzz-raw://5dbce65cf972cbb4ea1173b4590ccbbdd134c24ad144484d2b9eb3006fdb860a", - "dweb:/ipfs/QmeRkh21aTiZ9kiFr8grzFDzJvbydWeowZEBkG5kxtfQN3" - ], - "license": "AGPL-3.0-only" - }, - "src/interfaces/IMulticall.sol": { - "keccak256": "0xd10f58af0778cfc7f3758154066fc0ebbd3e360b1a6959c283ccf7c2a9e9634e", - "urls": [ - "bzz-raw://b218fd6c1571e3a16e8dc75f0237f797905b9a449d523e48d9dcb99473ed6ba0", - "dweb:/ipfs/Qmet1GzEJ3Fq1FbKhr3MNFb8LpUkx37ynFCvoFKjkmBCU5" - ], - "license": "GPL-2.0-or-later" - }, - "src/interfaces/external/IAaveToken.sol": { - "keccak256": "0x77cd64637e4c0fd379b2d4d826bcd9f64fc706a291ce77d023f693d1eb8e45d8", - "urls": [ - "bzz-raw://e87630603401ff3374cb610b765e46a3a235ef294fab212cf3116a35db7c4d58", - "dweb:/ipfs/Qma8awSuYptmpBsWUMz9NZBogVRtVQwXF5cvfsVWpNKhc3" - ], - "license": "MIT" - }, - "src/interfaces/external/IChainlinkAggregator.sol": { - "keccak256": "0x5fc642cff679c1cc6e93b5eadd2089b6adb85a1a8c46106388c836a1447e228d", - "urls": [ - "bzz-raw://9f6a5dc12a8d3c06463eb6ed638349fd0502d7fedb75da873f888416755ea3b2", - "dweb:/ipfs/QmdDnsLaaGvKKxuvdGTiroKrXMP3eW75GjSW3HK7GySfVs" - ], - "license": "Apache-2.0" - }, - "src/interfaces/external/ICurvePool.sol": { - "keccak256": "0x9ae71865252aeca89fd6c74013eded1d8029eccc46e3604291be16e97b89a5da", - "urls": [ - "bzz-raw://f504248ab846844bcd771226f7b2984455ddcc746357924fce50a41b65eec9e2", - "dweb:/ipfs/QmQVe1VZUgxUab9ocsbrX42Ust3hs83BU3bpA1j6Cx1xo6" - ], - "license": "Apache-2.0" - }, - "src/interfaces/external/IGravity.sol": { - "keccak256": "0xb862f0644274b9c268f508e9dc880770962b9095f340695a97a1cb2eb9789a11", - "urls": [ - "bzz-raw://533a9626cafd2260be6aa9cd9fbe305eb60e4208e43119c17ac0d33d41d07c51", - "dweb:/ipfs/QmdmsXd9oozXdmCP4Fyt59VtKqm1spMgtU21LeuS85nG4c" - ], - "license": "Apache-2.0" - }, - "src/interfaces/external/IUniswapV2Router02.sol": { - "keccak256": "0xee672165cfe63278b41b7e9c0ae34ad18d75f432c6c5583e9940c207a1a2464f", - "urls": [ - "bzz-raw://10443d195fd79197bb27b110345d5cef5b49fc1acff5e82164abd8cd04cbf47a", - "dweb:/ipfs/QmNnVhv7YNuMWUS7S1kDpZLAcoKdmSm9ADwGoxL5wgzTGo" - ], - "license": "Apache-2.0" - }, - "src/interfaces/external/IUniswapV3Router.sol": { - "keccak256": "0x2c8578bd46f2de289ca1eb8c7a5c4412f3abdc6d61acbb07ec565ff1e5e80355", - "urls": [ - "bzz-raw://f2b82a6d1fc71e09611d80dce96286f0546d1629bdee4e3686d6d528473187fd", - "dweb:/ipfs/QmciPSKvHDjnFHRtjDwmdoiihwtDCFRZu1wfjnxuhYivMK" - ], - "license": "GPL-2.0-or-later" - }, - "src/modules/adaptors/BaseAdaptor.sol": { - "keccak256": "0xb45700da63110e41cbb1879c3d261763644bc851effa798721cf7eca3e039f9a", - "urls": [ - "bzz-raw://7810084abb53310d5d50f5ca55557e9dcdc8fef6c987e55d82a7748aad467e27", - "dweb:/ipfs/QmaieqMfgwWJvFy8q3jVrx8Fifo6M9UZM8cBjpmyNFPc5j" - ], - "license": "Apache-2.0" - }, - "src/modules/price-router/PriceRouter.sol": { - "keccak256": "0x3d0fb1c107cfbd5b72660b548a9749dfd0d07d9a0b5abdf554d593ee00569550", - "urls": [ - "bzz-raw://f90a60a3097007a1dcd2871db79b0df74cf2a18de5126fc2bd2896f2715e93af", - "dweb:/ipfs/QmTDqnNN9Rv29MYHCAzZsKzsDbTBMYYQi17VEwhmbE6KYC" - ], - "license": "Apache-2.0" - }, - "src/modules/swap-router/SwapRouter.sol": { - "keccak256": "0x2cc9c40333f0cb43d937124d8db088334e48280c8af2b9ebef7675daf167eb80", - "urls": [ - "bzz-raw://87efec51915ae91561e3ee7ea97f3a0daff4826c0f5974ba404f4fa25aa46818", - "dweb:/ipfs/QmSig68SbFz12nvm3MkLVvtyKQMFX8W1tMNqn6RCNhAVGr" - ], - "license": "Apache-2.0" - }, - "src/utils/Math.sol": { - "keccak256": "0xdec791a31325162117ed7856d7042f3f58885d29044a5ab7fa266a68551c485f", - "urls": [ - "bzz-raw://87be5c0da99226925af33c0121802fc009ddee39becdcce2e60db01813bc8312", - "dweb:/ipfs/QmXxgS5tfWBQF5pYHoX5HMbcRMW27iTALZGKyyVuAi7A8r" - ], - "license": "Apache-2.0" - }, - "src/utils/Uint32Array.sol": { - "keccak256": "0x418cd655203ebf671b76cbae3a1594c44356b5ca91c9f9e7eb5de07013e300d9", - "urls": [ - "bzz-raw://b31b9db2d85bd7c41949307ef37903ff347f57b21f4b8d81a637dbfc1deed944", - "dweb:/ipfs/QmScY9Jm2rsihu7QToNYuxLWADjmRjwxbScEGRwvXK29p3" - ], - "license": "Apache-2.0" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/base/Cellar.sol", - "id": 33438, - "exportedSymbols": { - "Address": [ - 24337 - ], - "BaseAdaptor": [ - 43962 - ], - "Cellar": [ - 33437 - ], - "ERC20": [ - 34556 - ], - "ERC4626": [ - 35137 - ], - "ERC721Holder": [ - 24007 - ], - "IGravity": [ - 37138 - ], - "Math": [ - 54508 - ], - "Owned": [ - 26585 - ], - "PriceRouter": [ - 52732 - ], - "Registry": [ - 30033 - ], - "SafeTransferLib": [ - 35307 - ], - "Uint32Array": [ - 54663 - ] - }, - "nodeType": "SourceUnit", - "src": "39:60904:41", - "nodes": [ - { - "id": 30035, - "nodeType": "PragmaDirective", - "src": "39:23:41", - "nodes": [], - "literals": [ - "solidity", - "0.8", - ".16" - ] - }, - { - "id": 30040, - "nodeType": "ImportDirective", - "src": "64:70:41", - "nodes": [], - "absolutePath": "src/base/ERC4626.sol", - "file": "./ERC4626.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 35138, - "symbolAliases": [ - { - "foreign": { - "id": 30036, - "name": "ERC4626", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35137, - "src": "73:7:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 30037, - "name": "SafeTransferLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35307, - "src": "82:15:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 30038, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54508, - "src": "99:4:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 30039, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34556, - "src": "105:5:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30042, - "nodeType": "ImportDirective", - "src": "135:44:41", - "nodes": [], - "absolutePath": "src/Registry.sol", - "file": "src/Registry.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 30034, - "symbolAliases": [ - { - "foreign": { - "id": 30041, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30033, - "src": "144:8:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30044, - "nodeType": "ImportDirective", - "src": "180:71:41", - "nodes": [], - "absolutePath": "src/modules/price-router/PriceRouter.sol", - "file": "src/modules/price-router/PriceRouter.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 52733, - "symbolAliases": [ - { - "foreign": { - "id": 30043, - "name": "PriceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52732, - "src": "189:11:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30046, - "nodeType": "ImportDirective", - "src": "252:64:41", - "nodes": [], - "absolutePath": "src/interfaces/external/IGravity.sol", - "file": "src/interfaces/external/IGravity.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 37139, - "symbolAliases": [ - { - "foreign": { - "id": 30045, - "name": "IGravity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37138, - "src": "261:8:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30048, - "nodeType": "ImportDirective", - "src": "317:56:41", - "nodes": [], - "absolutePath": "src/utils/Uint32Array.sol", - "file": "src/utils/Uint32Array.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 54664, - "symbolAliases": [ - { - "foreign": { - "id": 30047, - "name": "Uint32Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54663, - "src": "326:11:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30050, - "nodeType": "ImportDirective", - "src": "374:67:41", - "nodes": [], - "absolutePath": "src/modules/adaptors/BaseAdaptor.sol", - "file": "src/modules/adaptors/BaseAdaptor.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 43963, - "symbolAliases": [ - { - "foreign": { - "id": 30049, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "383:11:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30052, - "nodeType": "ImportDirective", - "src": "442:68:41", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", - "file": "@openzeppelin/contracts/utils/Address.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 24338, - "symbolAliases": [ - { - "foreign": { - "id": 30051, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24337, - "src": "451:7:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30054, - "nodeType": "ImportDirective", - "src": "511:91:41", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol", - "file": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 24008, - "symbolAliases": [ - { - "foreign": { - "id": 30053, - "name": "ERC721Holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24007, - "src": "520:12:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 30056, - "nodeType": "ImportDirective", - "src": "603:48:41", - "nodes": [], - "absolutePath": "lib/solmate/src/auth/Owned.sol", - "file": "@solmate/auth/Owned.sol", - "nameLocation": "-1:-1:-1", - "scope": 33438, - "sourceUnit": 26586, - "symbolAliases": [ - { - "foreign": { - "id": 30055, - "name": "Owned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 26585, - "src": "612:5:41", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 33437, - "nodeType": "ContractDefinition", - "src": "806:60136:41", - "nodes": [ - { - "id": 30067, - "nodeType": "UsingForDirective", - "src": "860:31:41", - "nodes": [], - "global": false, - "libraryName": { - "id": 30064, - "name": "Uint32Array", - "nameLocations": [ - "866:11:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54663, - "src": "866:11:41" - }, - "typeName": { - "baseType": { - "id": 30065, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "882:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30066, - "nodeType": "ArrayTypeName", - "src": "882:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - } - }, - { - "id": 30071, - "nodeType": "UsingForDirective", - "src": "896:32:41", - "nodes": [], - "global": false, - "libraryName": { - "id": 30068, - "name": "SafeTransferLib", - "nameLocations": [ - "902:15:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35307, - "src": "902:15:41" - }, - "typeName": { - "id": 30070, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 30069, - "name": "ERC20", - "nameLocations": [ - "922:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "922:5:41" - }, - "referencedDeclaration": 34556, - "src": "922:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - }, - { - "id": 30074, - "nodeType": "UsingForDirective", - "src": "933:23:41", - "nodes": [], - "global": false, - "libraryName": { - "id": 30072, - "name": "Math", - "nameLocations": [ - "939:4:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54508, - "src": "939:4:41" - }, - "typeName": { - "id": 30073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "948:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 30077, - "nodeType": "UsingForDirective", - "src": "961:26:41", - "nodes": [], - "global": false, - "libraryName": { - "id": 30075, - "name": "Address", - "nameLocations": [ - "967:7:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24337, - "src": "967:7:41" - }, - "typeName": { - "id": 30076, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "979:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 30107, - "nodeType": "FunctionDefinition", - "src": "1239:153:41", - "nodes": [], - "body": { - "id": 30106, - "nodeType": "Block", - "src": "1290:102:41", - "nodes": [], - "statements": [ - { - "body": { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 30100, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30081, - "src": "1377:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 30102, - "indexExpression": { - "id": 30101, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30085, - "src": "1382:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1377:7:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "arguments": [ - { - "id": 30097, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1350:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - ], - "id": 30096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1342:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1342:7:41", - "typeDescriptions": {} - } - }, - "id": 30098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1342:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 30099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1356:20:41", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 24224, - "src": "1342:34:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 30103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1342:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 30104, - "nodeType": "ExpressionStatement", - "src": "1342:43:41" - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30088, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30085, - "src": "1320:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 30089, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30081, - "src": "1324:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 30090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1329:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1324:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1320:15:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30105, - "initializationExpression": { - "assignments": [ - 30085 - ], - "declarations": [ - { - "constant": false, - "id": 30085, - "mutability": "mutable", - "name": "i", - "nameLocation": "1313:1:41", - "nodeType": "VariableDeclaration", - "scope": 30105, - "src": "1305:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30084, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1305:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30087, - "initialValue": { - "hexValue": "30", - "id": 30086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1317:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1305:13:41" - }, - "loopExpression": { - "expression": { - "id": 30093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1337:3:41", - "subExpression": { - "id": 30092, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30085, - "src": "1337:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30094, - "nodeType": "ExpressionStatement", - "src": "1337:3:41" - }, - "nodeType": "ForStatement", - "src": "1300:85:41" - } - ] - }, - "documentation": { - "id": 30078, - "nodeType": "StructuredDocumentation", - "src": "1095:139:41", - "text": " @notice Allows caller to call multiple functions in a single TX.\n @dev Does NOT return the function return values." - }, - "functionSelector": "ac9650d8", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "multicall", - "nameLocation": "1248:9:41", - "parameters": { - "id": 30082, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30081, - "mutability": "mutable", - "name": "data", - "nameLocation": "1275:4:41", - "nodeType": "VariableDeclaration", - "scope": 30107, - "src": "1258:21:41", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 30079, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1258:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 30080, - "nodeType": "ArrayTypeName", - "src": "1258:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "1257:23:41" - }, - "returnParameters": { - "id": 30083, - "nodeType": "ParameterList", - "parameters": [], - "src": "1290:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30111, - "nodeType": "VariableDeclaration", - "src": "1624:25:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30108, - "nodeType": "StructuredDocumentation", - "src": "1507:112:41", - "text": " @notice `locked` is public, so that the state can be checked even during view function calls." - }, - "functionSelector": "cf309012", - "mutability": "mutable", - "name": "locked", - "nameLocation": "1639:6:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30109, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1624:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 30110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 30130, - "nodeType": "ModifierDefinition", - "src": "1656:129:41", - "nodes": [], - "body": { - "id": 30129, - "nodeType": "Block", - "src": "1680:105:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30114, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "1698:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 30115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1708:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1698:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5245454e5452414e4359", - "id": 30117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:12:41", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - }, - "value": "REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - } - ], - "id": 30113, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1690:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 30118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1690:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30119, - "nodeType": "ExpressionStatement", - "src": "1690:34:41" - }, - { - "expression": { - "id": 30122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30120, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "1735:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "32", - "id": 30121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1744:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1735:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30123, - "nodeType": "ExpressionStatement", - "src": "1735:10:41" - }, - { - "id": 30124, - "nodeType": "PlaceholderStatement", - "src": "1756:1:41" - }, - { - "expression": { - "id": 30127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30125, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "1768:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "31", - "id": 30126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1777:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1768:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30128, - "nodeType": "ExpressionStatement", - "src": "1768:10:41" - } - ] - }, - "name": "nonReentrant", - "nameLocation": "1665:12:41", - "parameters": { - "id": 30112, - "nodeType": "ParameterList", - "parameters": [], - "src": "1677:2:41" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 30134, - "nodeType": "VariableDeclaration", - "src": "2032:30:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30131, - "nodeType": "StructuredDocumentation", - "src": "1902:125:41", - "text": " @notice Cached price router contract.\n @dev This way cellar has to \"opt in\" to price router changes." - }, - "functionSelector": "d7d4bf45", - "mutability": "mutable", - "name": "priceRouter", - "nameLocation": "2051:11:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - }, - "typeName": { - "id": 30133, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 30132, - "name": "PriceRouter", - "nameLocations": [ - "2032:11:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52732, - "src": "2032:11:41" - }, - "referencedDeclaration": 52732, - "src": "2032:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "visibility": "public" - }, - { - "id": 30204, - "nodeType": "FunctionDefinition", - "src": "2419:739:41", - "nodes": [], - "body": { - "id": 30203, - "nodeType": "Block", - "src": "2487:671:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 30143 - ], - "declarations": [ - { - "constant": false, - "id": 30143, - "mutability": "mutable", - "name": "minAssets", - "nameLocation": "2505:9:41", - "nodeType": "VariableDeclaration", - "scope": 30203, - "src": "2497:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2497:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30144, - "nodeType": "VariableDeclarationStatement", - "src": "2497:17:41" - }, - { - "assignments": [ - 30146 - ], - "declarations": [ - { - "constant": false, - "id": 30146, - "mutability": "mutable", - "name": "maxAssets", - "nameLocation": "2532:9:41", - "nodeType": "VariableDeclaration", - "scope": 30203, - "src": "2524:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2524:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30147, - "nodeType": "VariableDeclarationStatement", - "src": "2524:17:41" - }, - { - "condition": { - "id": 30148, - "name": "checkTotalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30137, - "src": "2556:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30171, - "nodeType": "IfStatement", - "src": "2552:261:41", - "trueBody": { - "id": 30170, - "nodeType": "Block", - "src": "2574:239:41", - "statements": [ - { - "assignments": [ - 30150 - ], - "declarations": [ - { - "constant": false, - "id": 30150, - "mutability": "mutable", - "name": "assetsBefore", - "nameLocation": "2596:12:41", - "nodeType": "VariableDeclaration", - "scope": 30170, - "src": "2588:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2588:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30153, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30151, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "2611:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 30152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2611:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2588:36:41" - }, - { - "expression": { - "id": 30160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30154, - "name": "minAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30143, - "src": "2692:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "302e39356534", - "id": 30157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2728:6:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_9500_by_1", - "typeString": "int_const 9500" - }, - "value": "0.95e4" - }, - { - "hexValue": "316534", - "id": 30158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:3:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "1e4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_9500_by_1", - "typeString": "int_const 9500" - }, - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "id": 30155, - "name": "assetsBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30150, - "src": "2704:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2717:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "2704:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 30159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2704:36:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2692:48:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30161, - "nodeType": "ExpressionStatement", - "src": "2692:48:41" - }, - { - "expression": { - "id": 30168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30162, - "name": "maxAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30146, - "src": "2754:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "312e30356534", - "id": 30165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2790:6:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10500_by_1", - "typeString": "int_const 10500" - }, - "value": "1.05e4" - }, - { - "hexValue": "316534", - "id": 30166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2798:3:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "1e4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10500_by_1", - "typeString": "int_const 10500" - }, - { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - ], - "expression": { - "id": 30163, - "name": "assetsBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30150, - "src": "2766:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2779:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "2766:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 30167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2766:36:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2754:48:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 30169, - "nodeType": "ExpressionStatement", - "src": "2754:48:41" - } - ] - } - }, - { - "expression": { - "id": 30179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30172, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "2823:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 30176, - "name": "PRICE_ROUTER_REGISTRY_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31069, - "src": "2869:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 30174, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "2849:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2858:10:41", - "memberName": "getAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 29189, - "src": "2849:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 30177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2849:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 30173, - "name": "PriceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52732, - "src": "2837:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PriceRouter_$52732_$", - "typeString": "type(contract PriceRouter)" - } - }, - "id": 30178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2837:60:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "src": "2823:74:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 30180, - "nodeType": "ExpressionStatement", - "src": "2823:74:41" - }, - { - "assignments": [ - 30182 - ], - "declarations": [ - { - "constant": false, - "id": 30182, - "mutability": "mutable", - "name": "assetsAfter", - "nameLocation": "2915:11:41", - "nodeType": "VariableDeclaration", - "scope": 30203, - "src": "2907:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2907:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30185, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30183, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "2929:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 30184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2929:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2907:35:41" - }, - { - "condition": { - "id": 30186, - "name": "checkTotalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30137, - "src": "2957:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30202, - "nodeType": "IfStatement", - "src": "2953:199:41", - "trueBody": { - "id": 30201, - "nodeType": "Block", - "src": "2975:177:41", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 30193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30187, - "name": "assetsAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30182, - "src": "2993:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 30188, - "name": "minAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30143, - "src": "3007:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2993:23:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30190, - "name": "assetsAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30182, - "src": "3020:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 30191, - "name": "maxAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30146, - "src": "3034:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3020:23:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2993:50:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30200, - "nodeType": "IfStatement", - "src": "2989:152:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30195, - "name": "assetsAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30182, - "src": "3107:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 30196, - "name": "minAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30143, - "src": "3120:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 30197, - "name": "maxAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30146, - "src": "3131:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 30194, - "name": "Cellar__TotalAssetDeviatedOutsideRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32666, - "src": "3068:38:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256) pure" - } - }, - "id": 30198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3068:73:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30199, - "nodeType": "RevertStatement", - "src": "3061:80:41" - } - } - ] - } - } - ] - }, - "documentation": { - "id": 30135, - "nodeType": "StructuredDocumentation", - "src": "2069:345:41", - "text": " @notice Updates the cellar to use the lastest price router in the registry.\n @param checkTotalAssets If true totalAssets is checked before and after updating the price router,\n and is verified to be withing a +- 5% envelope.\n If false totalAssets is only called after updating the price router." - }, - "functionSelector": "6925ba2c", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30140, - "kind": "modifierInvocation", - "modifierName": { - "id": 30139, - "name": "onlyOwner", - "nameLocations": [ - "2477:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "2477:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "2477:9:41" - } - ], - "name": "cachePriceRouter", - "nameLocation": "2428:16:41", - "parameters": { - "id": 30138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30137, - "mutability": "mutable", - "name": "checkTotalAssets", - "nameLocation": "2450:16:41", - "nodeType": "VariableDeclaration", - "scope": 30204, - "src": "2445:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30136, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2445:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2444:23:41" - }, - "returnParameters": { - "id": 30141, - "nodeType": "ParameterList", - "parameters": [], - "src": "2487:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30211, - "nodeType": "EventDefinition", - "src": "3444:52:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30205, - "nodeType": "StructuredDocumentation", - "src": "3273:166:41", - "text": " @notice Emitted when a position is added.\n @param position id of position that was added\n @param index index that position was added at" - }, - "eventSelector": "c4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb", - "name": "PositionAdded", - "nameLocation": "3450:13:41", - "parameters": { - "id": 30210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30207, - "indexed": false, - "mutability": "mutable", - "name": "position", - "nameLocation": "3471:8:41", - "nodeType": "VariableDeclaration", - "scope": 30211, - "src": "3464:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30206, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3464:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30209, - "indexed": false, - "mutability": "mutable", - "name": "index", - "nameLocation": "3489:5:41", - "nodeType": "VariableDeclaration", - "scope": 30211, - "src": "3481:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3481:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3463:32:41" - } - }, - { - "id": 30218, - "nodeType": "EventDefinition", - "src": "3681:54:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30212, - "nodeType": "StructuredDocumentation", - "src": "3502:174:41", - "text": " @notice Emitted when a position is removed.\n @param position id of position that was removed\n @param index index that position was removed from" - }, - "eventSelector": "a5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51", - "name": "PositionRemoved", - "nameLocation": "3687:15:41", - "parameters": { - "id": 30217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30214, - "indexed": false, - "mutability": "mutable", - "name": "position", - "nameLocation": "3710:8:41", - "nodeType": "VariableDeclaration", - "scope": 30218, - "src": "3703:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30213, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3703:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30216, - "indexed": false, - "mutability": "mutable", - "name": "index", - "nameLocation": "3728:5:41", - "nodeType": "VariableDeclaration", - "scope": 30218, - "src": "3720:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30215, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3720:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3702:32:41" - } - }, - { - "id": 30229, - "nodeType": "EventDefinition", - "src": "4135:96:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30219, - "nodeType": "StructuredDocumentation", - "src": "3741:389:41", - "text": " @notice Emitted when the positions at two indexes are swapped.\n @param newPosition1 id of position (previously at index2) that replaced index1.\n @param newPosition2 id of position (previously at index1) that replaced index2.\n @param index1 index of first position involved in the swap\n @param index2 index of second position involved in the swap." - }, - "eventSelector": "b7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a", - "name": "PositionSwapped", - "nameLocation": "4141:15:41", - "parameters": { - "id": 30228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30221, - "indexed": false, - "mutability": "mutable", - "name": "newPosition1", - "nameLocation": "4164:12:41", - "nodeType": "VariableDeclaration", - "scope": 30229, - "src": "4157:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30220, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4157:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30223, - "indexed": false, - "mutability": "mutable", - "name": "newPosition2", - "nameLocation": "4185:12:41", - "nodeType": "VariableDeclaration", - "scope": 30229, - "src": "4178:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30222, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4178:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30225, - "indexed": false, - "mutability": "mutable", - "name": "index1", - "nameLocation": "4207:6:41", - "nodeType": "VariableDeclaration", - "scope": 30229, - "src": "4199:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30224, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4199:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30227, - "indexed": false, - "mutability": "mutable", - "name": "index2", - "nameLocation": "4223:6:41", - "nodeType": "VariableDeclaration", - "scope": 30229, - "src": "4215:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4215:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4156:74:41" - } - }, - { - "id": 30236, - "nodeType": "EventDefinition", - "src": "4347:68:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30230, - "nodeType": "StructuredDocumentation", - "src": "4237:105:41", - "text": " @notice Emitted when Governance adds/removes a position to/from the cellars catalogue." - }, - "eventSelector": "ea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f", - "name": "PositionCatalogueAltered", - "nameLocation": "4353:24:41", - "parameters": { - "id": 30235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30232, - "indexed": false, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "4385:10:41", - "nodeType": "VariableDeclaration", - "scope": 30236, - "src": "4378:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30231, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4378:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30234, - "indexed": false, - "mutability": "mutable", - "name": "inCatalogue", - "nameLocation": "4402:11:41", - "nodeType": "VariableDeclaration", - "scope": 30236, - "src": "4397:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30233, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4397:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4377:37:41" - } - }, - { - "id": 30243, - "nodeType": "EventDefinition", - "src": "4531:65:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30237, - "nodeType": "StructuredDocumentation", - "src": "4421:105:41", - "text": " @notice Emitted when Governance adds/removes an adaptor to/from the cellars catalogue." - }, - "eventSelector": "572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a", - "name": "AdaptorCatalogueAltered", - "nameLocation": "4537:23:41", - "parameters": { - "id": 30242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30239, - "indexed": false, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "4569:7:41", - "nodeType": "VariableDeclaration", - "scope": 30243, - "src": "4561:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4561:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30241, - "indexed": false, - "mutability": "mutable", - "name": "inCatalogue", - "nameLocation": "4583:11:41", - "nodeType": "VariableDeclaration", - "scope": 30243, - "src": "4578:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30240, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4578:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4560:35:41" - } - }, - { - "id": 30248, - "nodeType": "ErrorDefinition", - "src": "4731:51:41", - "nodes": [], - "documentation": { - "id": 30244, - "nodeType": "StructuredDocumentation", - "src": "4602:124:41", - "text": " @notice Attempted to add a position that is already being used.\n @param position id of the position" - }, - "errorSelector": "66b129f6", - "name": "Cellar__PositionAlreadyUsed", - "nameLocation": "4737:27:41", - "parameters": { - "id": 30247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30246, - "mutability": "mutable", - "name": "position", - "nameLocation": "4772:8:41", - "nodeType": "VariableDeclaration", - "scope": 30248, - "src": "4765:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30245, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4765:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "4764:17:41" - } - }, - { - "id": 30253, - "nodeType": "ErrorDefinition", - "src": "4920:47:41", - "nodes": [], - "documentation": { - "id": 30249, - "nodeType": "StructuredDocumentation", - "src": "4788:127:41", - "text": " @notice Attempted to make an unused position the holding position.\n @param position id of the position" - }, - "errorSelector": "70abe859", - "name": "Cellar__PositionNotUsed", - "nameLocation": "4926:23:41", - "parameters": { - "id": 30252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30251, - "mutability": "mutable", - "name": "position", - "nameLocation": "4957:8:41", - "nodeType": "VariableDeclaration", - "scope": 30253, - "src": "4950:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30250, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4950:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "4949:17:41" - } - }, - { - "id": 30258, - "nodeType": "ErrorDefinition", - "src": "5104:54:41", - "nodes": [], - "documentation": { - "id": 30254, - "nodeType": "StructuredDocumentation", - "src": "4973:126:41", - "text": " @notice Attempted to add a position that is not in the catalogue.\n @param position id of the position" - }, - "errorSelector": "fced80e8", - "name": "Cellar__PositionNotInCatalogue", - "nameLocation": "5110:30:41", - "parameters": { - "id": 30257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30256, - "mutability": "mutable", - "name": "position", - "nameLocation": "5148:8:41", - "nodeType": "VariableDeclaration", - "scope": 30258, - "src": "5141:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30255, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5141:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "5140:17:41" - } - }, - { - "id": 30265, - "nodeType": "ErrorDefinition", - "src": "5424:73:41", - "nodes": [], - "documentation": { - "id": 30259, - "nodeType": "StructuredDocumentation", - "src": "5164:255:41", - "text": " @notice Attempted an action on a position that is required to be empty before the action can be performed.\n @param position address of the non-empty position\n @param sharesRemaining amount of shares remaining in the position" - }, - "errorSelector": "e3dca368", - "name": "Cellar__PositionNotEmpty", - "nameLocation": "5430:24:41", - "parameters": { - "id": 30264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30261, - "mutability": "mutable", - "name": "position", - "nameLocation": "5462:8:41", - "nodeType": "VariableDeclaration", - "scope": 30265, - "src": "5455:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30260, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5455:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30263, - "mutability": "mutable", - "name": "sharesRemaining", - "nameLocation": "5480:15:41", - "nodeType": "VariableDeclaration", - "scope": 30265, - "src": "5472:23:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5472:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5454:42:41" - } - }, - { - "id": 30272, - "nodeType": "ErrorDefinition", - "src": "5712:66:41", - "nodes": [], - "documentation": { - "id": 30266, - "nodeType": "StructuredDocumentation", - "src": "5503:204:41", - "text": " @notice Attempted an operation with an asset that was different then the one expected.\n @param asset address of the asset\n @param expectedAsset address of the expected asset" - }, - "errorSelector": "5308e78e", - "name": "Cellar__AssetMismatch", - "nameLocation": "5718:21:41", - "parameters": { - "id": 30271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30268, - "mutability": "mutable", - "name": "asset", - "nameLocation": "5748:5:41", - "nodeType": "VariableDeclaration", - "scope": 30272, - "src": "5740:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5740:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30270, - "mutability": "mutable", - "name": "expectedAsset", - "nameLocation": "5763:13:41", - "nodeType": "VariableDeclaration", - "scope": 30272, - "src": "5755:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30269, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5755:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5739:38:41" - } - }, - { - "id": 30277, - "nodeType": "ErrorDefinition", - "src": "5948:54:41", - "nodes": [], - "documentation": { - "id": 30273, - "nodeType": "StructuredDocumentation", - "src": "5784:159:41", - "text": " @notice Attempted to add a position when the position array is full.\n @param maxPositions maximum number of positions that can be used" - }, - "errorSelector": "f025236d", - "name": "Cellar__PositionArrayFull", - "nameLocation": "5954:25:41", - "parameters": { - "id": 30276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30275, - "mutability": "mutable", - "name": "maxPositions", - "nameLocation": "5988:12:41", - "nodeType": "VariableDeclaration", - "scope": 30277, - "src": "5980:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5980:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5979:22:41" - } - }, - { - "id": 30282, - "nodeType": "ErrorDefinition", - "src": "6149:44:41", - "nodes": [], - "documentation": { - "id": 30278, - "nodeType": "StructuredDocumentation", - "src": "6008:136:41", - "text": " @notice Attempted to add a position, with mismatched debt.\n @param position the posiiton id that was mismatched" - }, - "errorSelector": "563a17a6", - "name": "Cellar__DebtMismatch", - "nameLocation": "6155:20:41", - "parameters": { - "id": 30281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30280, - "mutability": "mutable", - "name": "position", - "nameLocation": "6183:8:41", - "nodeType": "VariableDeclaration", - "scope": 30282, - "src": "6176:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30279, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6176:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "6175:17:41" - } - }, - { - "id": 30285, - "nodeType": "ErrorDefinition", - "src": "6280:40:41", - "nodes": [], - "documentation": { - "id": 30283, - "nodeType": "StructuredDocumentation", - "src": "6199:76:41", - "text": " @notice Attempted to remove the Cellars holding position." - }, - "errorSelector": "677b5cc4", - "name": "Cellar__RemovingHoldingPosition", - "nameLocation": "6286:31:41", - "parameters": { - "id": 30284, - "nodeType": "ParameterList", - "parameters": [], - "src": "6317:2:41" - } - }, - { - "id": 30290, - "nodeType": "ErrorDefinition", - "src": "6460:56:41", - "nodes": [], - "documentation": { - "id": 30286, - "nodeType": "StructuredDocumentation", - "src": "6326:129:41", - "text": " @notice Attempted to add an invalid holding position.\n @param positionId the id of the invalid position." - }, - "errorSelector": "a42c0f90", - "name": "Cellar__InvalidHoldingPosition", - "nameLocation": "6466:30:41", - "parameters": { - "id": 30289, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30288, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "6504:10:41", - "nodeType": "VariableDeclaration", - "scope": 30290, - "src": "6497:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30287, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6497:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "6496:19:41" - } - }, - { - "id": 30294, - "nodeType": "VariableDeclaration", - "src": "6611:31:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30291, - "nodeType": "StructuredDocumentation", - "src": "6522:84:41", - "text": " @notice Array of uint32s made up of cellars credit positions Ids." - }, - "functionSelector": "59d20b4e", - "mutability": "mutable", - "name": "creditPositions", - "nameLocation": "6627:15:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 30292, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6611:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30293, - "nodeType": "ArrayTypeName", - "src": "6611:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "public" - }, - { - "id": 30298, - "nodeType": "VariableDeclaration", - "src": "6736:29:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30295, - "nodeType": "StructuredDocumentation", - "src": "6649:82:41", - "text": " @notice Array of uint32s made up of cellars debt positions Ids." - }, - "functionSelector": "e1b1acb7", - "mutability": "mutable", - "name": "debtPositions", - "nameLocation": "6752:13:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 30296, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6736:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30297, - "nodeType": "ArrayTypeName", - "src": "6736:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "public" - }, - { - "id": 30303, - "nodeType": "VariableDeclaration", - "src": "6846:46:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30299, - "nodeType": "StructuredDocumentation", - "src": "6772:69:41", - "text": " @notice Tell whether a position is currently used." - }, - "functionSelector": "93bbeac0", - "mutability": "mutable", - "name": "isPositionUsed", - "nameLocation": "6878:14:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "typeName": { - "id": 30302, - "keyType": { - "id": 30300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6854:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "6846:24:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 30301, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6865:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "public" - }, - { - "id": 30309, - "nodeType": "VariableDeclaration", - "src": "6967:63:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30304, - "nodeType": "StructuredDocumentation", - "src": "6899:63:41", - "text": " @notice Get position data given position id." - }, - "functionSelector": "7384504f", - "mutability": "mutable", - "name": "getPositionData", - "nameLocation": "7015:15:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData)" - }, - "typeName": { - "id": 30308, - "keyType": { - "id": 30305, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6975:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Mapping", - "src": "6967:40:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData)" - }, - "valueType": { - "id": 30307, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 30306, - "name": "Registry.PositionData", - "nameLocations": [ - "6985:8:41", - "6994:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29741, - "src": "6985:21:41" - }, - "referencedDeclaration": 29741, - "src": "6985:21:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage_ptr", - "typeString": "struct Registry.PositionData" - } - } - }, - "visibility": "public" - }, - { - "id": 30319, - "nodeType": "FunctionDefinition", - "src": "7134:109:41", - "nodes": [], - "body": { - "id": 30318, - "nodeType": "Block", - "src": "7204:39:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 30316, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "7221:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "functionReturnParameters": 30315, - "id": 30317, - "nodeType": "Return", - "src": "7214:22:41" - } - ] - }, - "documentation": { - "id": 30310, - "nodeType": "StructuredDocumentation", - "src": "7037:92:41", - "text": " @notice Get the ids of the credit positions currently used by the cellar." - }, - "functionSelector": "71e99dc2", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCreditPositions", - "nameLocation": "7143:18:41", - "parameters": { - "id": 30311, - "nodeType": "ParameterList", - "parameters": [], - "src": "7161:2:41" - }, - "returnParameters": { - "id": 30315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30314, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 30319, - "src": "7187:15:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 30312, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7187:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30313, - "nodeType": "ArrayTypeName", - "src": "7187:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - } - ], - "src": "7186:17:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 30329, - "nodeType": "FunctionDefinition", - "src": "7344:105:41", - "nodes": [], - "body": { - "id": 30328, - "nodeType": "Block", - "src": "7412:37:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 30326, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "7429:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "functionReturnParameters": 30325, - "id": 30327, - "nodeType": "Return", - "src": "7422:20:41" - } - ] - }, - "documentation": { - "id": 30320, - "nodeType": "StructuredDocumentation", - "src": "7249:90:41", - "text": " @notice Get the ids of the debt positions currently used by the cellar." - }, - "functionSelector": "3e3382ba", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDebtPositions", - "nameLocation": "7353:16:41", - "parameters": { - "id": 30321, - "nodeType": "ParameterList", - "parameters": [], - "src": "7369:2:41" - }, - "returnParameters": { - "id": 30325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30324, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 30329, - "src": "7395:15:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 30322, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7395:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30323, - "nodeType": "ArrayTypeName", - "src": "7395:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - } - ], - "src": "7394:17:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 30333, - "nodeType": "VariableDeclaration", - "src": "7560:42:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 30330, - "nodeType": "StructuredDocumentation", - "src": "7455:100:41", - "text": " @notice Maximum amount of positions a cellar can have in it's credit/debt arrays." - }, - "functionSelector": "f7b24e08", - "mutability": "constant", - "name": "MAX_POSITIONS", - "nameLocation": "7584:13:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7560:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "3136", - "id": 30332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7600:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "visibility": "public" - }, - { - "id": 30336, - "nodeType": "VariableDeclaration", - "src": "7711:29:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30334, - "nodeType": "StructuredDocumentation", - "src": "7609:97:41", - "text": " @notice Stores the index of the holding position in the creditPositions array." - }, - "functionSelector": "9c5f00c2", - "mutability": "mutable", - "name": "holdingPosition", - "nameLocation": "7725:15:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30335, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7711:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "id": 30349, - "nodeType": "FunctionDefinition", - "src": "7823:114:41", - "nodes": [], - "body": { - "id": 30348, - "nodeType": "Block", - "src": "7889:48:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30345, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30339, - "src": "7919:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30344, - "name": "_setHoldingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30396, - "src": "7899:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 30346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7899:31:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30347, - "nodeType": "ExpressionStatement", - "src": "7899:31:41" - } - ] - }, - "documentation": { - "id": 30337, - "nodeType": "StructuredDocumentation", - "src": "7747:71:41", - "text": " @notice Allows owner to change the holding position." - }, - "functionSelector": "0780fd3a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30342, - "kind": "modifierInvocation", - "modifierName": { - "id": 30341, - "name": "onlyOwner", - "nameLocations": [ - "7879:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "7879:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "7879:9:41" - } - ], - "name": "setHoldingPosition", - "nameLocation": "7832:18:41", - "parameters": { - "id": 30340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30339, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "7858:10:41", - "nodeType": "VariableDeclaration", - "scope": 30349, - "src": "7851:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30338, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7851:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "7850:19:41" - }, - "returnParameters": { - "id": 30343, - "nodeType": "ParameterList", - "parameters": [], - "src": "7889:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30396, - "nodeType": "FunctionDefinition", - "src": "7943:406:41", - "nodes": [], - "body": { - "id": 30395, - "nodeType": "Block", - "src": "8000:349:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 30357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8014:27:41", - "subExpression": { - "baseExpression": { - "id": 30354, - "name": "isPositionUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30303, - "src": "8015:14:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 30356, - "indexExpression": { - "id": 30355, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8030:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8015:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30362, - "nodeType": "IfStatement", - "src": "8010:75:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30359, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8074:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30358, - "name": "Cellar__PositionNotUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30253, - "src": "8050:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 30360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8050:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30361, - "nodeType": "RevertStatement", - "src": "8043:42:41" - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - }, - "id": 30367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 30364, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8108:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30363, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "8099:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 30365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8099:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 30366, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "8123:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "8099:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30381, - "nodeType": "IfStatement", - "src": "8095:110:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "id": 30371, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "8167:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "id": 30370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8159:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30369, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:41", - "typeDescriptions": {} - } - }, - "id": 30372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8159:14:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 30376, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8192:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30375, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "8183:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 30377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8183:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "id": 30374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8175:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8175:7:41", - "typeDescriptions": {} - } - }, - "id": 30378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8175:29:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 30368, - "name": "Cellar__AssetMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30272, - "src": "8137:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 30379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8137:68:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30380, - "nodeType": "RevertStatement", - "src": "8130:75:41" - } - }, - { - "condition": { - "expression": { - "baseExpression": { - "id": 30382, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "8219:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 30384, - "indexExpression": { - "id": 30383, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8235:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8219:27:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 30385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8247:6:41", - "memberName": "isDebt", - "nodeType": "MemberAccess", - "referencedDeclaration": 29736, - "src": "8219:34:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30390, - "nodeType": "IfStatement", - "src": "8215:89:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30387, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8293:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30386, - "name": "Cellar__InvalidHoldingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30290, - "src": "8262:30:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 30388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8262:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30389, - "nodeType": "RevertStatement", - "src": "8255:49:41" - } - }, - { - "expression": { - "id": 30393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30391, - "name": "holdingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30336, - "src": "8314:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 30392, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30351, - "src": "8332:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "8314:28:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30394, - "nodeType": "ExpressionStatement", - "src": "8314:28:41" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setHoldingPosition", - "nameLocation": "7952:19:41", - "parameters": { - "id": 30352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30351, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "7979:10:41", - "nodeType": "VariableDeclaration", - "scope": 30396, - "src": "7972:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30350, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7972:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "7971:19:41" - }, - "returnParameters": { - "id": 30353, - "nodeType": "ParameterList", - "parameters": [], - "src": "8000:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 30401, - "nodeType": "VariableDeclaration", - "src": "8467:48:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30397, - "nodeType": "StructuredDocumentation", - "src": "8355:107:41", - "text": " @notice Positions the strategist is approved to use without any governance intervention." - }, - "functionSelector": "cbdf33d0", - "mutability": "mutable", - "name": "positionCatalogue", - "nameLocation": "8498:17:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_bool_$", - "typeString": "mapping(uint32 => bool)" - }, - "typeName": { - "id": 30400, - "keyType": { - "id": 30398, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8475:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Mapping", - "src": "8467:23:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_bool_$", - "typeString": "mapping(uint32 => bool)" - }, - "valueType": { - "id": 30399, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8485:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "public" - }, - { - "id": 30406, - "nodeType": "VariableDeclaration", - "src": "8633:48:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30402, - "nodeType": "StructuredDocumentation", - "src": "8522:106:41", - "text": " @notice Adaptors the strategist is approved to use without any governance intervention." - }, - "functionSelector": "18d4c143", - "mutability": "mutable", - "name": "adaptorCatalogue", - "nameLocation": "8665:16:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 30405, - "keyType": { - "id": 30403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8641:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8633:24:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 30404, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8652:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "public" - }, - { - "id": 30419, - "nodeType": "FunctionDefinition", - "src": "8782:122:41", - "nodes": [], - "body": { - "id": 30418, - "nodeType": "Block", - "src": "8852:52:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30415, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30409, - "src": "8886:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30414, - "name": "_addPositionToCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30443, - "src": "8862:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 30416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8862:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30417, - "nodeType": "ExpressionStatement", - "src": "8862:35:41" - } - ] - }, - "documentation": { - "id": 30407, - "nodeType": "StructuredDocumentation", - "src": "8688:89:41", - "text": " @notice Allows Governance to add positions to this cellar's catalogue." - }, - "functionSelector": "501eb4fe", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30412, - "kind": "modifierInvocation", - "modifierName": { - "id": 30411, - "name": "onlyOwner", - "nameLocations": [ - "8842:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "8842:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "8842:9:41" - } - ], - "name": "addPositionToCatalogue", - "nameLocation": "8791:22:41", - "parameters": { - "id": 30410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30409, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "8821:10:41", - "nodeType": "VariableDeclaration", - "scope": 30419, - "src": "8814:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30408, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8814:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "8813:19:41" - }, - "returnParameters": { - "id": 30413, - "nodeType": "ParameterList", - "parameters": [], - "src": "8852:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30443, - "nodeType": "FunctionDefinition", - "src": "8994:290:41", - "nodes": [], - "body": { - "id": 30442, - "nodeType": "Block", - "src": "9055:229:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30428, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30422, - "src": "9163:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30425, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "9125:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9134:28:41", - "memberName": "revertIfPositionIsNotTrusted", - "nodeType": "MemberAccess", - "referencedDeclaration": 30032, - "src": "9125:37:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint32_$returns$__$", - "typeString": "function (uint32) view external" - } - }, - "id": 30429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9125:49:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30430, - "nodeType": "ExpressionStatement", - "src": "9125:49:41" - }, - { - "expression": { - "id": 30435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30431, - "name": "positionCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30401, - "src": "9184:17:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_bool_$", - "typeString": "mapping(uint32 => bool)" - } - }, - "id": 30433, - "indexExpression": { - "id": 30432, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30422, - "src": "9202:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9184:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9216:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9184:36:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30436, - "nodeType": "ExpressionStatement", - "src": "9184:36:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30438, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30422, - "src": "9260:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "hexValue": "74727565", - "id": 30439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9272:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30437, - "name": "PositionCatalogueAltered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30236, - "src": "9235:24:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_bool_$returns$__$", - "typeString": "function (uint32,bool)" - } - }, - "id": 30440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9235:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30441, - "nodeType": "EmitStatement", - "src": "9230:47:41" - } - ] - }, - "documentation": { - "id": 30420, - "nodeType": "StructuredDocumentation", - "src": "8910:79:41", - "text": " @notice Helper function that checks the position is trusted." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addPositionToCatalogue", - "nameLocation": "9003:23:41", - "parameters": { - "id": 30423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30422, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "9034:10:41", - "nodeType": "VariableDeclaration", - "scope": 30443, - "src": "9027:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30421, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9027:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "9026:19:41" - }, - "returnParameters": { - "id": 30424, - "nodeType": "ParameterList", - "parameters": [], - "src": "9055:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 30463, - "nodeType": "FunctionDefinition", - "src": "9389:187:41", - "nodes": [], - "body": { - "id": 30462, - "nodeType": "Block", - "src": "9464:112:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 30455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30451, - "name": "positionCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30401, - "src": "9474:17:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_bool_$", - "typeString": "mapping(uint32 => bool)" - } - }, - "id": 30453, - "indexExpression": { - "id": 30452, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30446, - "src": "9492:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9474:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 30454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9506:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "9474:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30456, - "nodeType": "ExpressionStatement", - "src": "9474:37:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30458, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30446, - "src": "9551:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "hexValue": "66616c7365", - "id": 30459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9563:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30457, - "name": "PositionCatalogueAltered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30236, - "src": "9526:24:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_bool_$returns$__$", - "typeString": "function (uint32,bool)" - } - }, - "id": 30460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9526:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30461, - "nodeType": "EmitStatement", - "src": "9521:48:41" - } - ] - }, - "documentation": { - "id": 30444, - "nodeType": "StructuredDocumentation", - "src": "9290:94:41", - "text": " @notice Allows Governance to remove positions from this cellar's catalogue." - }, - "functionSelector": "d1e88404", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30449, - "kind": "modifierInvocation", - "modifierName": { - "id": 30448, - "name": "onlyOwner", - "nameLocations": [ - "9454:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "9454:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "9454:9:41" - } - ], - "name": "removePositionFromCatalogue", - "nameLocation": "9398:27:41", - "parameters": { - "id": 30447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30446, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "9433:10:41", - "nodeType": "VariableDeclaration", - "scope": 30463, - "src": "9426:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30445, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9426:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "9425:19:41" - }, - "returnParameters": { - "id": 30450, - "nodeType": "ParameterList", - "parameters": [], - "src": "9464:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30489, - "nodeType": "FunctionDefinition", - "src": "9675:283:41", - "nodes": [], - "body": { - "id": 30488, - "nodeType": "Block", - "src": "9742:216:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30474, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30466, - "src": "9848:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 30471, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "9811:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9820:27:41", - "memberName": "revertIfAdaptorIsNotTrusted", - "nodeType": "MemberAccess", - "referencedDeclaration": 29732, - "src": "9811:36:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$__$", - "typeString": "function (address) view external" - } - }, - "id": 30475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9811:45:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30476, - "nodeType": "ExpressionStatement", - "src": "9811:45:41" - }, - { - "expression": { - "id": 30481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30477, - "name": "adaptorCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30406, - "src": "9866:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 30479, - "indexExpression": { - "id": 30478, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30466, - "src": "9883:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9866:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9894:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9866:32:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30482, - "nodeType": "ExpressionStatement", - "src": "9866:32:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30484, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30466, - "src": "9937:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "74727565", - "id": 30485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9946:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30483, - "name": "AdaptorCatalogueAltered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30243, - "src": "9913:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,bool)" - } - }, - "id": 30486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9913:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30487, - "nodeType": "EmitStatement", - "src": "9908:43:41" - } - ] - }, - "documentation": { - "id": 30464, - "nodeType": "StructuredDocumentation", - "src": "9582:88:41", - "text": " @notice Allows Governance to add adaptors to this cellar's catalogue." - }, - "functionSelector": "3d8ab1e5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30469, - "kind": "modifierInvocation", - "modifierName": { - "id": 30468, - "name": "onlyOwner", - "nameLocations": [ - "9732:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "9732:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "9732:9:41" - } - ], - "name": "addAdaptorToCatalogue", - "nameLocation": "9684:21:41", - "parameters": { - "id": 30467, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30466, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "9714:7:41", - "nodeType": "VariableDeclaration", - "scope": 30489, - "src": "9706:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9706:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "9705:17:41" - }, - "returnParameters": { - "id": 30470, - "nodeType": "ParameterList", - "parameters": [], - "src": "9742:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30509, - "nodeType": "FunctionDefinition", - "src": "10062:176:41", - "nodes": [], - "body": { - "id": 30508, - "nodeType": "Block", - "src": "10134:104:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 30501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30497, - "name": "adaptorCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30406, - "src": "10144:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 30499, - "indexExpression": { - "id": 30498, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30492, - "src": "10161:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10144:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 30500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10172:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "10144:33:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30502, - "nodeType": "ExpressionStatement", - "src": "10144:33:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30504, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30492, - "src": "10216:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "66616c7365", - "id": 30505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10225:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30503, - "name": "AdaptorCatalogueAltered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30243, - "src": "10192:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,bool)" - } - }, - "id": 30506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10192:39:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30507, - "nodeType": "EmitStatement", - "src": "10187:44:41" - } - ] - }, - "documentation": { - "id": 30490, - "nodeType": "StructuredDocumentation", - "src": "9964:93:41", - "text": " @notice Allows Governance to remove adaptors from this cellar's catalogue." - }, - "functionSelector": "5f6b88a0", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30495, - "kind": "modifierInvocation", - "modifierName": { - "id": 30494, - "name": "onlyOwner", - "nameLocations": [ - "10124:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "10124:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "10124:9:41" - } - ], - "name": "removeAdaptorFromCatalogue", - "nameLocation": "10071:26:41", - "parameters": { - "id": 30493, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30492, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "10106:7:41", - "nodeType": "VariableDeclaration", - "scope": 30509, - "src": "10098:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10098:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "10097:17:41" - }, - "returnParameters": { - "id": 30496, - "nodeType": "ParameterList", - "parameters": [], - "src": "10134:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30534, - "nodeType": "FunctionDefinition", - "src": "10548:269:41", - "nodes": [], - "body": { - "id": 30533, - "nodeType": "Block", - "src": "10709:108:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30523, - "name": "_whenNotShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31022, - "src": "10719:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 30524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10719:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30525, - "nodeType": "ExpressionStatement", - "src": "10719:18:41" - }, - { - "expression": { - "arguments": [ - { - "id": 30527, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30512, - "src": "10760:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30528, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30514, - "src": "10767:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30529, - "name": "configurationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30516, - "src": "10779:17:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 30530, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30518, - "src": "10798:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30526, - "name": "_addPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30642, - "src": "10747:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (uint32,uint32,bytes memory,bool)" - } - }, - "id": 30531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10747:63:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30532, - "nodeType": "ExpressionStatement", - "src": "10747:63:41" - } - ] - }, - "documentation": { - "id": 30510, - "nodeType": "StructuredDocumentation", - "src": "10244:299:41", - "text": " @notice Insert a trusted position to the list of positions used by the cellar at a given index.\n @param index index at which to insert the position\n @param positionId id of position to add\n @param configurationData data used to configure how the position behaves" - }, - "functionSelector": "9955a9d4", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30521, - "kind": "modifierInvocation", - "modifierName": { - "id": 30520, - "name": "onlyOwner", - "nameLocations": [ - "10699:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "10699:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "10699:9:41" - } - ], - "name": "addPosition", - "nameLocation": "10557:11:41", - "parameters": { - "id": 30519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30512, - "mutability": "mutable", - "name": "index", - "nameLocation": "10585:5:41", - "nodeType": "VariableDeclaration", - "scope": 30534, - "src": "10578:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30511, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10578:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30514, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "10607:10:41", - "nodeType": "VariableDeclaration", - "scope": 30534, - "src": "10600:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30513, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10600:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30516, - "mutability": "mutable", - "name": "configurationData", - "nameLocation": "10640:17:41", - "nodeType": "VariableDeclaration", - "scope": 30534, - "src": "10627:30:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 30515, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10627:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30518, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "10672:11:41", - "nodeType": "VariableDeclaration", - "scope": 30534, - "src": "10667:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30517, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10667:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "10568:121:41" - }, - "returnParameters": { - "id": 30522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10709:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30642, - "nodeType": "FunctionDefinition", - "src": "10922:1552:41", - "nodes": [], - "body": { - "id": 30641, - "nodeType": "Block", - "src": "11036:1438:41", - "nodes": [], - "statements": [ - { - "condition": { - "baseExpression": { - "id": 30546, - "name": "isPositionUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30303, - "src": "11102:14:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 30548, - "indexExpression": { - "id": 30547, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11117:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11102:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30553, - "nodeType": "IfStatement", - "src": "11098:78:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30550, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11165:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30549, - "name": "Cellar__PositionAlreadyUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30248, - "src": "11137:27:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 30551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11137:39:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30552, - "nodeType": "RevertStatement", - "src": "11130:46:41" - } - }, - { - "condition": { - "id": 30557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11250:30:41", - "subExpression": { - "baseExpression": { - "id": 30554, - "name": "positionCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30401, - "src": "11251:17:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_bool_$", - "typeString": "mapping(uint32 => bool)" - } - }, - "id": 30556, - "indexExpression": { - "id": 30555, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11269:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11251:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30562, - "nodeType": "IfStatement", - "src": "11246:85:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30559, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11320:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30558, - "name": "Cellar__PositionNotInCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30258, - "src": "11289:30:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 30560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11289:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30561, - "nodeType": "RevertStatement", - "src": "11282:49:41" - } - }, - { - "assignments": [ - 30564, - 30566, - 30568 - ], - "declarations": [ - { - "constant": false, - "id": 30564, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "11465:7:41", - "nodeType": "VariableDeclaration", - "scope": 30641, - "src": "11457:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11457:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30566, - "mutability": "mutable", - "name": "isDebt", - "nameLocation": "11479:6:41", - "nodeType": "VariableDeclaration", - "scope": 30641, - "src": "11474:11:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30565, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11474:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30568, - "mutability": "mutable", - "name": "adaptorData", - "nameLocation": "11500:11:41", - "nodeType": "VariableDeclaration", - "scope": 30641, - "src": "11487:24:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 30567, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11487:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 30573, - "initialValue": { - "arguments": [ - { - "id": 30571, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11544:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30569, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "11515:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11524:19:41", - "memberName": "addPositionToCellar", - "nodeType": "MemberAccess", - "referencedDeclaration": 30016, - "src": "11515:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint32_$returns$_t_address_$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (uint32) view external returns (address,bool,bytes memory)" - } - }, - "id": 30572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11515:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(address,bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11456:99:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 30576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30574, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30566, - "src": "11570:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 30575, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30543, - "src": "11580:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11570:21:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30581, - "nodeType": "IfStatement", - "src": "11566:66:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30578, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11621:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30577, - "name": "Cellar__DebtMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30282, - "src": "11600:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$__$", - "typeString": "function (uint32) pure" - } - }, - "id": 30579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11600:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30580, - "nodeType": "RevertStatement", - "src": "11593:39:41" - } - }, - { - "expression": { - "id": 30592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30582, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "11696:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 30584, - "indexExpression": { - "id": 30583, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "11712:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11696:27:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 30587, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30564, - "src": "11771:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 30588, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30566, - "src": "11800:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 30589, - "name": "adaptorData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30568, - "src": "11833:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 30590, - "name": "configurationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30541, - "src": "11877:17:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 30585, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30033, - "src": "11726:8:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Registry_$30033_$", - "typeString": "type(contract Registry)" - } - }, - "id": 30586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11735:12:41", - "memberName": "PositionData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29741, - "src": "11726:21:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PositionData_$29741_storage_ptr_$", - "typeString": "type(struct Registry.PositionData storage pointer)" - } - }, - "id": 30591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "11762:7:41", - "11792:6:41", - "11820:11:41", - "11858:17:41" - ], - "names": [ - "adaptor", - "isDebt", - "adaptorData", - "configurationData" - ], - "nodeType": "FunctionCall", - "src": "11726:179:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_memory_ptr", - "typeString": "struct Registry.PositionData memory" - } - }, - "src": "11696:209:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 30593, - "nodeType": "ExpressionStatement", - "src": "11696:209:41" - }, - { - "condition": { - "id": 30594, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30566, - "src": "11920:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 30628, - "nodeType": "Block", - "src": "12153:223:41", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 30612, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "12171:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12187:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "12171:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 30614, - "name": "MAX_POSITIONS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30333, - "src": "12197:13:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12171:39:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30620, - "nodeType": "IfStatement", - "src": "12167:92:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30617, - "name": "MAX_POSITIONS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30333, - "src": "12245:13:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 30616, - "name": "Cellar__PositionArrayFull", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30277, - "src": "12219:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 30618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12219:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30619, - "nodeType": "RevertStatement", - "src": "12212:47:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 30624, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30537, - "src": "12347:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30625, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "12354:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30621, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "12327:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12343:3:41", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 54579, - "src": "12327:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", - "typeString": "function (uint32[] storage pointer,uint32,uint32)" - } - }, - "id": 30626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12327:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30627, - "nodeType": "ExpressionStatement", - "src": "12327:38:41" - } - ] - }, - "id": 30629, - "nodeType": "IfStatement", - "src": "11916:460:41", - "trueBody": { - "id": 30611, - "nodeType": "Block", - "src": "11928:219:41", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 30595, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "11946:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11960:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "11946:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 30597, - "name": "MAX_POSITIONS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30333, - "src": "11970:13:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11946:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30603, - "nodeType": "IfStatement", - "src": "11942:90:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30600, - "name": "MAX_POSITIONS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30333, - "src": "12018:13:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 30599, - "name": "Cellar__PositionArrayFull", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30277, - "src": "11992:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 30601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11992:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30602, - "nodeType": "RevertStatement", - "src": "11985:47:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 30607, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30537, - "src": "12118:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30608, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "12125:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30604, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "12100:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12114:3:41", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 54579, - "src": "12100:17:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", - "typeString": "function (uint32[] storage pointer,uint32,uint32)" - } - }, - "id": 30609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12100:36:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30610, - "nodeType": "ExpressionStatement", - "src": "12100:36:41" - } - ] - } - }, - { - "expression": { - "id": 30634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30630, - "name": "isPositionUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30303, - "src": "12386:14:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 30632, - "indexExpression": { - "id": 30631, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "12401:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12386:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 30633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12415:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "12386:33:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30635, - "nodeType": "ExpressionStatement", - "src": "12386:33:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30637, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30539, - "src": "12449:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30638, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30537, - "src": "12461:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30636, - "name": "PositionAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30211, - "src": "12435:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint256_$returns$__$", - "typeString": "function (uint32,uint256)" - } - }, - "id": 30639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12435:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30640, - "nodeType": "EmitStatement", - "src": "12430:37:41" - } - ] - }, - "documentation": { - "id": 30535, - "nodeType": "StructuredDocumentation", - "src": "10823:94:41", - "text": " @notice Internal function is used by `addPosition` and initialize function." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addPosition", - "nameLocation": "10931:12:41", - "parameters": { - "id": 30544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30537, - "mutability": "mutable", - "name": "index", - "nameLocation": "10951:5:41", - "nodeType": "VariableDeclaration", - "scope": 30642, - "src": "10944:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30536, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10944:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30539, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "10965:10:41", - "nodeType": "VariableDeclaration", - "scope": 30642, - "src": "10958:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30538, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10958:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30541, - "mutability": "mutable", - "name": "configurationData", - "nameLocation": "10990:17:41", - "nodeType": "VariableDeclaration", - "scope": 30642, - "src": "10977:30:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 30540, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10977:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30543, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "11014:11:41", - "nodeType": "VariableDeclaration", - "scope": 30642, - "src": "11009:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30542, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11009:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "10943:83:41" - }, - "returnParameters": { - "id": 30545, - "nodeType": "ParameterList", - "parameters": [], - "src": "11036:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 30685, - "nodeType": "FunctionDefinition", - "src": "12687:508:41", - "nodes": [], - "body": { - "id": 30684, - "nodeType": "Block", - "src": "12762:433:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 30653 - ], - "declarations": [ - { - "constant": false, - "id": 30653, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "12818:10:41", - "nodeType": "VariableDeclaration", - "scope": 30684, - "src": "12811:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30652, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12811:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 30662, - "initialValue": { - "condition": { - "id": 30654, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30647, - "src": "12831:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "baseExpression": { - "id": 30658, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "12868:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30660, - "indexExpression": { - "id": 30659, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30645, - "src": "12884:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12868:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12831:59:41", - "trueExpression": { - "baseExpression": { - "id": 30655, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "12845:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30657, - "indexExpression": { - "id": 30656, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30645, - "src": "12859:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12845:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12811:79:41" - }, - { - "assignments": [ - 30664 - ], - "declarations": [ - { - "constant": false, - "id": 30664, - "mutability": "mutable", - "name": "positionBalance", - "nameLocation": "12995:15:41", - "nodeType": "VariableDeclaration", - "scope": 30684, - "src": "12987:23:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12987:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 30668, - "initialValue": { - "arguments": [ - { - "id": 30666, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30653, - "src": "13024:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30665, - "name": "_balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "13013:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 30667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13013:22:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12987:48:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 30671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30669, - "name": "positionBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30664, - "src": "13049:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 30670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13067:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13049:19:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30677, - "nodeType": "IfStatement", - "src": "13045:85:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 30673, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30653, - "src": "13102:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30674, - "name": "positionBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30664, - "src": "13114:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 30672, - "name": "Cellar__PositionNotEmpty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30265, - "src": "13077:24:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$_t_uint256_$returns$__$", - "typeString": "function (uint32,uint256) pure" - } - }, - "id": 30675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13077:53:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30676, - "nodeType": "RevertStatement", - "src": "13070:60:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 30679, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30645, - "src": "13157:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30680, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30653, - "src": "13164:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30681, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30647, - "src": "13176:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30678, - "name": "_removePosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30754, - "src": "13141:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bool_$returns$__$", - "typeString": "function (uint32,uint32,bool)" - } - }, - "id": 30682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13141:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30683, - "nodeType": "ExpressionStatement", - "src": "13141:47:41" - } - ] - }, - "documentation": { - "id": 30643, - "nodeType": "StructuredDocumentation", - "src": "12480:202:41", - "text": " @notice Remove the position at a given index from the list of positions used by the cellar.\n @dev Called by strategist.\n @param index index at which to remove the position" - }, - "functionSelector": "33e15be2", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30650, - "kind": "modifierInvocation", - "modifierName": { - "id": 30649, - "name": "onlyOwner", - "nameLocations": [ - "12752:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "12752:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "12752:9:41" - } - ], - "name": "removePosition", - "nameLocation": "12696:14:41", - "parameters": { - "id": 30648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30645, - "mutability": "mutable", - "name": "index", - "nameLocation": "12718:5:41", - "nodeType": "VariableDeclaration", - "scope": 30685, - "src": "12711:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30644, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12711:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30647, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "12730:11:41", - "nodeType": "VariableDeclaration", - "scope": 30685, - "src": "12725:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30646, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12725:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "12710:32:41" - }, - "returnParameters": { - "id": 30651, - "nodeType": "ParameterList", - "parameters": [], - "src": "12762:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30704, - "nodeType": "FunctionDefinition", - "src": "13321:160:41", - "nodes": [], - "body": { - "id": 30703, - "nodeType": "Block", - "src": "13417:64:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30698, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30688, - "src": "13443:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30699, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30690, - "src": "13450:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30700, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30692, - "src": "13462:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 30697, - "name": "_removePosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30754, - "src": "13427:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bool_$returns$__$", - "typeString": "function (uint32,uint32,bool)" - } - }, - "id": 30701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13427:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30702, - "nodeType": "ExpressionStatement", - "src": "13427:47:41" - } - ] - }, - "documentation": { - "id": 30686, - "nodeType": "StructuredDocumentation", - "src": "13201:115:41", - "text": " @notice Allows Governance to force a cellar out of a position without making ANY external calls." - }, - "functionSelector": "a07bee0b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30695, - "kind": "modifierInvocation", - "modifierName": { - "id": 30694, - "name": "onlyOwner", - "nameLocations": [ - "13407:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "13407:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "13407:9:41" - } - ], - "name": "forcePositionOut", - "nameLocation": "13330:16:41", - "parameters": { - "id": 30693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30688, - "mutability": "mutable", - "name": "index", - "nameLocation": "13354:5:41", - "nodeType": "VariableDeclaration", - "scope": 30704, - "src": "13347:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30687, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13347:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30690, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "13368:10:41", - "nodeType": "VariableDeclaration", - "scope": 30704, - "src": "13361:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30689, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13361:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30692, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "13385:11:41", - "nodeType": "VariableDeclaration", - "scope": 30704, - "src": "13380:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30691, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13380:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "13346:51:41" - }, - "returnParameters": { - "id": 30696, - "nodeType": "ParameterList", - "parameters": [], - "src": "13417:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30754, - "nodeType": "FunctionDefinition", - "src": "13592:506:41", - "nodes": [], - "body": { - "id": 30753, - "nodeType": "Block", - "src": "13677:421:41", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 30716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30714, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30709, - "src": "13691:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 30715, - "name": "holdingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30336, - "src": "13705:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "13691:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30720, - "nodeType": "IfStatement", - "src": "13687:75:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30717, - "name": "Cellar__RemovingHoldingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30285, - "src": "13729:31:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 30718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13729:33:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30719, - "nodeType": "RevertStatement", - "src": "13722:40:41" - } - }, - { - "condition": { - "id": 30721, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30711, - "src": "13777:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 30735, - "nodeType": "Block", - "src": "13899:54:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30732, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30707, - "src": "13936:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30729, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "13913:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13929:6:41", - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 54629, - "src": "13913:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", - "typeString": "function (uint32[] storage pointer,uint32)" - } - }, - "id": 30733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13913:29:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30734, - "nodeType": "ExpressionStatement", - "src": "13913:29:41" - } - ] - }, - "id": 30736, - "nodeType": "IfStatement", - "src": "13773:180:41", - "trueBody": { - "id": 30728, - "nodeType": "Block", - "src": "13790:103:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 30725, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30707, - "src": "13876:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 30722, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "13855:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13869:6:41", - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 54629, - "src": "13855:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", - "typeString": "function (uint32[] storage pointer,uint32)" - } - }, - "id": 30726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13855:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30727, - "nodeType": "ExpressionStatement", - "src": "13855:27:41" - } - ] - } - }, - { - "expression": { - "id": 30741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 30737, - "name": "isPositionUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30303, - "src": "13963:14:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 30739, - "indexExpression": { - "id": 30738, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30709, - "src": "13978:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13963:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 30740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13992:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "13963:34:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30742, - "nodeType": "ExpressionStatement", - "src": "13963:34:41" - }, - { - "expression": { - "id": 30746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "14007:34:41", - "subExpression": { - "baseExpression": { - "id": 30743, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "14014:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 30745, - "indexExpression": { - "id": 30744, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30709, - "src": "14030:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14014:27:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30747, - "nodeType": "ExpressionStatement", - "src": "14007:34:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 30749, - "name": "positionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30709, - "src": "14073:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30750, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30707, - "src": "14085:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30748, - "name": "PositionRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30218, - "src": "14057:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint256_$returns$__$", - "typeString": "function (uint32,uint256)" - } - }, - "id": 30751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14057:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30752, - "nodeType": "EmitStatement", - "src": "14052:39:41" - } - ] - }, - "documentation": { - "id": 30705, - "nodeType": "StructuredDocumentation", - "src": "13487:100:41", - "text": " @notice Internal helper function to remove positions from cellars tracked arrays." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removePosition", - "nameLocation": "13601:15:41", - "parameters": { - "id": 30712, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30707, - "mutability": "mutable", - "name": "index", - "nameLocation": "13624:5:41", - "nodeType": "VariableDeclaration", - "scope": 30754, - "src": "13617:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30706, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13617:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30709, - "mutability": "mutable", - "name": "positionId", - "nameLocation": "13638:10:41", - "nodeType": "VariableDeclaration", - "scope": 30754, - "src": "13631:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30708, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13631:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30711, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "13655:11:41", - "nodeType": "VariableDeclaration", - "scope": 30754, - "src": "13650:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30710, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13650:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "13616:51:41" - }, - "returnParameters": { - "id": 30713, - "nodeType": "ParameterList", - "parameters": [], - "src": "13677:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 30832, - "nodeType": "FunctionDefinition", - "src": "14385:798:41", - "nodes": [], - "body": { - "id": 30831, - "nodeType": "Block", - "src": "14475:708:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 30767 - ], - "declarations": [ - { - "constant": false, - "id": 30767, - "mutability": "mutable", - "name": "newPosition1", - "nameLocation": "14553:12:41", - "nodeType": "VariableDeclaration", - "scope": 30831, - "src": "14546:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30766, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14546:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 30768, - "nodeType": "VariableDeclarationStatement", - "src": "14546:19:41" - }, - { - "assignments": [ - 30770 - ], - "declarations": [ - { - "constant": false, - "id": 30770, - "mutability": "mutable", - "name": "newPosition2", - "nameLocation": "14582:12:41", - "nodeType": "VariableDeclaration", - "scope": 30831, - "src": "14575:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30769, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14575:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 30771, - "nodeType": "VariableDeclarationStatement", - "src": "14575:19:41" - }, - { - "condition": { - "id": 30772, - "name": "inDebtArray", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30761, - "src": "14609:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 30822, - "nodeType": "Block", - "src": "14861:241:41", - "statements": [ - { - "expression": { - "id": 30802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30798, - "name": "newPosition1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30767, - "src": "14875:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 30799, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "14890:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30801, - "indexExpression": { - "id": 30800, - "name": "index2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30759, - "src": "14906:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14890:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14875:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30803, - "nodeType": "ExpressionStatement", - "src": "14875:38:41" - }, - { - "expression": { - "id": 30808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30804, - "name": "newPosition2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30770, - "src": "14927:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 30805, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "14942:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30807, - "indexExpression": { - "id": 30806, - "name": "index1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30757, - "src": "14958:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14942:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14927:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30809, - "nodeType": "ExpressionStatement", - "src": "14927:38:41" - }, - { - "expression": { - "id": 30820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "baseExpression": { - "id": 30810, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "15011:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30812, - "indexExpression": { - "id": 30811, - "name": "index1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30757, - "src": "15027:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15011:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 30813, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "15036:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30815, - "indexExpression": { - "id": 30814, - "name": "index2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30759, - "src": "15052:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15036:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 30816, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "15010:50:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 30817, - "name": "newPosition1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30767, - "src": "15064:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30818, - "name": "newPosition2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30770, - "src": "15078:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 30819, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15063:28:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "src": "15010:81:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30821, - "nodeType": "ExpressionStatement", - "src": "15010:81:41" - } - ] - }, - "id": 30823, - "nodeType": "IfStatement", - "src": "14605:497:41", - "trueBody": { - "id": 30797, - "nodeType": "Block", - "src": "14622:233:41", - "statements": [ - { - "expression": { - "id": 30777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30773, - "name": "newPosition1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30767, - "src": "14636:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 30774, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "14651:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30776, - "indexExpression": { - "id": 30775, - "name": "index2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30759, - "src": "14665:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14651:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14636:36:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30778, - "nodeType": "ExpressionStatement", - "src": "14636:36:41" - }, - { - "expression": { - "id": 30783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 30779, - "name": "newPosition2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30770, - "src": "14686:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 30780, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "14701:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30782, - "indexExpression": { - "id": 30781, - "name": "index1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30757, - "src": "14715:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14701:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "14686:36:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 30784, - "nodeType": "ExpressionStatement", - "src": "14686:36:41" - }, - { - "expression": { - "id": 30795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "baseExpression": { - "id": 30785, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "14768:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30787, - "indexExpression": { - "id": 30786, - "name": "index1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30757, - "src": "14782:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14768:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 30788, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "14791:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 30790, - "indexExpression": { - "id": 30789, - "name": "index2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30759, - "src": "14805:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14791:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 30791, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "14767:46:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 30792, - "name": "newPosition1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30767, - "src": "14817:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30793, - "name": "newPosition2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30770, - "src": "14831:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 30794, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14816:28:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "src": "14767:77:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30796, - "nodeType": "ExpressionStatement", - "src": "14767:77:41" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 30825, - "name": "newPosition1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30767, - "src": "15133:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30826, - "name": "newPosition2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30770, - "src": "15147:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30827, - "name": "index1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30757, - "src": "15161:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 30828, - "name": "index2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30759, - "src": "15169:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 30824, - "name": "PositionSwapped", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30229, - "src": "15117:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint32,uint32,uint256,uint256)" - } - }, - "id": 30829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15117:59:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30830, - "nodeType": "EmitStatement", - "src": "15112:64:41" - } - ] - }, - "documentation": { - "id": 30755, - "nodeType": "StructuredDocumentation", - "src": "14104:276:41", - "text": " @notice Swap the positions at two given indexes.\n @param index1 index of first position to swap\n @param index2 index of second position to swap\n @param inDebtArray bool indicating to switch positions in the debt array, or the credit array." - }, - "functionSelector": "379e0b13", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30764, - "kind": "modifierInvocation", - "modifierName": { - "id": 30763, - "name": "onlyOwner", - "nameLocations": [ - "14465:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "14465:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "14465:9:41" - } - ], - "name": "swapPositions", - "nameLocation": "14394:13:41", - "parameters": { - "id": 30762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30757, - "mutability": "mutable", - "name": "index1", - "nameLocation": "14415:6:41", - "nodeType": "VariableDeclaration", - "scope": 30832, - "src": "14408:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30756, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14408:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30759, - "mutability": "mutable", - "name": "index2", - "nameLocation": "14430:6:41", - "nodeType": "VariableDeclaration", - "scope": 30832, - "src": "14423:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 30758, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14423:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30761, - "mutability": "mutable", - "name": "inDebtArray", - "nameLocation": "14443:11:41", - "nodeType": "VariableDeclaration", - "scope": 30832, - "src": "14438:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30760, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14438:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "14407:48:41" - }, - "returnParameters": { - "id": 30765, - "nodeType": "ParameterList", - "parameters": [], - "src": "14475:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30839, - "nodeType": "EventDefinition", - "src": "15503:71:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30833, - "nodeType": "StructuredDocumentation", - "src": "15305:193:41", - "text": " @notice Emitted when platform fees is changed.\n @param oldPlatformFee value platform fee was changed from\n @param newPlatformFee value platform fee was changed to" - }, - "eventSelector": "44ada261ff5c9aacbf8d0687294799c8e3e0810ecc1eafd97419dfc31db5d523", - "name": "PlatformFeeChanged", - "nameLocation": "15509:18:41", - "parameters": { - "id": 30838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30835, - "indexed": false, - "mutability": "mutable", - "name": "oldPlatformFee", - "nameLocation": "15535:14:41", - "nodeType": "VariableDeclaration", - "scope": 30839, - "src": "15528:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30834, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15528:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30837, - "indexed": false, - "mutability": "mutable", - "name": "newPlatformFee", - "nameLocation": "15558:14:41", - "nodeType": "VariableDeclaration", - "scope": 30839, - "src": "15551:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30836, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15551:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "15527:46:41" - } - }, - { - "id": 30846, - "nodeType": "EventDefinition", - "src": "15822:81:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30840, - "nodeType": "StructuredDocumentation", - "src": "15580:237:41", - "text": " @notice Emitted when strategist platform fee cut is changed.\n @param oldPlatformCut value strategist platform fee cut was changed from\n @param newPlatformCut value strategist platform fee cut was changed to" - }, - "eventSelector": "b5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868", - "name": "StrategistPlatformCutChanged", - "nameLocation": "15828:28:41", - "parameters": { - "id": 30845, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30842, - "indexed": false, - "mutability": "mutable", - "name": "oldPlatformCut", - "nameLocation": "15864:14:41", - "nodeType": "VariableDeclaration", - "scope": 30846, - "src": "15857:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30841, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15857:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30844, - "indexed": false, - "mutability": "mutable", - "name": "newPlatformCut", - "nameLocation": "15887:14:41", - "nodeType": "VariableDeclaration", - "scope": 30846, - "src": "15880:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30843, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15880:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "15856:46:41" - } - }, - { - "id": 30853, - "nodeType": "EventDefinition", - "src": "16152:89:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30847, - "nodeType": "StructuredDocumentation", - "src": "15909:238:41", - "text": " @notice Emitted when strategists payout address is changed.\n @param oldPayoutAddress value strategists payout address was changed from\n @param newPayoutAddress value strategists payout address was changed to" - }, - "eventSelector": "51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d", - "name": "StrategistPayoutAddressChanged", - "nameLocation": "16158:30:41", - "parameters": { - "id": 30852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30849, - "indexed": false, - "mutability": "mutable", - "name": "oldPayoutAddress", - "nameLocation": "16197:16:41", - "nodeType": "VariableDeclaration", - "scope": 30853, - "src": "16189:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16189:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30851, - "indexed": false, - "mutability": "mutable", - "name": "newPayoutAddress", - "nameLocation": "16223:16:41", - "nodeType": "VariableDeclaration", - "scope": 30853, - "src": "16215:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16215:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "16188:52:41" - } - }, - { - "id": 30856, - "nodeType": "ErrorDefinition", - "src": "16337:30:41", - "nodes": [], - "documentation": { - "id": 30854, - "nodeType": "StructuredDocumentation", - "src": "16247:85:41", - "text": " @notice Attempted to change strategist fee cut with invalid value." - }, - "errorSelector": "3d0203e5", - "name": "Cellar__InvalidFeeCut", - "nameLocation": "16343:21:41", - "parameters": { - "id": 30855, - "nodeType": "ParameterList", - "parameters": [], - "src": "16364:2:41" - } - }, - { - "id": 30859, - "nodeType": "ErrorDefinition", - "src": "16457:27:41", - "nodes": [], - "documentation": { - "id": 30857, - "nodeType": "StructuredDocumentation", - "src": "16373:79:41", - "text": " @notice Attempted to change platform fee with invalid value." - }, - "errorSelector": "5c2a50da", - "name": "Cellar__InvalidFee", - "nameLocation": "16463:18:41", - "parameters": { - "id": 30858, - "nodeType": "ParameterList", - "parameters": [], - "src": "16481:2:41" - } - }, - { - "id": 30868, - "nodeType": "StructDefinition", - "src": "17030:157:41", - "nodes": [], - "canonicalName": "Cellar.FeeData", - "members": [ - { - "constant": false, - "id": 30861, - "mutability": "mutable", - "name": "strategistPlatformCut", - "nameLocation": "17062:21:41", - "nodeType": "VariableDeclaration", - "scope": 30868, - "src": "17055:28:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30860, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17055:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30863, - "mutability": "mutable", - "name": "platformFee", - "nameLocation": "17100:11:41", - "nodeType": "VariableDeclaration", - "scope": 30868, - "src": "17093:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30862, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17093:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30865, - "mutability": "mutable", - "name": "lastAccrual", - "nameLocation": "17128:11:41", - "nodeType": "VariableDeclaration", - "scope": 30868, - "src": "17121:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30864, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17121:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30867, - "mutability": "mutable", - "name": "strategistPayoutAddress", - "nameLocation": "17157:23:41", - "nodeType": "VariableDeclaration", - "scope": 30868, - "src": "17149:31:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17149:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "FeeData", - "nameLocation": "17037:7:41", - "scope": 33437, - "visibility": "public" - }, - { - "id": 30881, - "nodeType": "VariableDeclaration", - "src": "17256:207:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30869, - "nodeType": "StructuredDocumentation", - "src": "17193:58:41", - "text": " @notice Stores all fee data for cellar." - }, - "functionSelector": "e753e600", - "mutability": "mutable", - "name": "feeData", - "nameLocation": "17271:7:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData" - }, - "typeName": { - "id": 30871, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 30870, - "name": "FeeData", - "nameLocations": [ - "17256:7:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30868, - "src": "17256:7:41" - }, - "referencedDeclaration": 30868, - "src": "17256:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage_ptr", - "typeString": "struct Cellar.FeeData" - } - }, - "value": { - "arguments": [ - { - "hexValue": "302e3735653138", - "id": 30873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17334:7:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_750000000000000000_by_1", - "typeString": "int_const 750000000000000000" - }, - "value": "0.75e18" - }, - { - "hexValue": "302e3031653138", - "id": 30874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17368:7:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "value": "0.01e18" - }, - { - "hexValue": "30", - "id": 30875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17402:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 30878, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17450:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 30877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17442:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30876, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17442:7:41", - "typeDescriptions": {} - } - }, - "id": 30879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17442:10:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_750000000000000000_by_1", - "typeString": "int_const 750000000000000000" - }, - { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 30872, - "name": "FeeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30868, - "src": "17289:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_FeeData_$30868_storage_ptr_$", - "typeString": "type(struct Cellar.FeeData storage pointer)" - } - }, - "id": 30880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "17311:21:41", - "17355:11:41", - "17389:11:41", - "17417:23:41" - ], - "names": [ - "strategistPlatformCut", - "platformFee", - "lastAccrual", - "strategistPayoutAddress" - ], - "nodeType": "FunctionCall", - "src": "17289:174:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_memory_ptr", - "typeString": "struct Cellar.FeeData memory" - } - }, - "visibility": "public" - }, - { - "id": 30885, - "nodeType": "VariableDeclaration", - "src": "17556:48:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 30882, - "nodeType": "StructuredDocumentation", - "src": "17470:81:41", - "text": " @notice Sets the max possible performance fee for this cellar." - }, - "functionSelector": "3998a681", - "mutability": "constant", - "name": "MAX_PLATFORM_FEE", - "nameLocation": "17579:16:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30883, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17556:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "hexValue": "302e32653138", - "id": 30884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17598:6:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_200000000000000000_by_1", - "typeString": "int_const 200000000000000000" - }, - "value": "0.2e18" - }, - "visibility": "public" - }, - { - "id": 30889, - "nodeType": "VariableDeclaration", - "src": "17689:41:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 30886, - "nodeType": "StructuredDocumentation", - "src": "17611:73:41", - "text": " @notice Sets the max possible fee cut for this cellar." - }, - "functionSelector": "eef33eca", - "mutability": "constant", - "name": "MAX_FEE_CUT", - "nameLocation": "17712:11:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30887, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17689:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "hexValue": "31653138", - "id": 30888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17726:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - }, - "visibility": "public" - }, - { - "id": 30917, - "nodeType": "FunctionDefinition", - "src": "17864:260:41", - "nodes": [], - "body": { - "id": 30916, - "nodeType": "Block", - "src": "17929:195:41", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 30899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 30897, - "name": "cut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30892, - "src": "17943:3:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 30898, - "name": "MAX_FEE_CUT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30889, - "src": "17949:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "17943:17:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30903, - "nodeType": "IfStatement", - "src": "17939:53:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30900, - "name": "Cellar__InvalidFeeCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30856, - "src": "17969:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 30901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17969:23:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30902, - "nodeType": "RevertStatement", - "src": "17962:30:41" - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 30905, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "18036:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 30906, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18044:21:41", - "memberName": "strategistPlatformCut", - "nodeType": "MemberAccess", - "referencedDeclaration": 30861, - "src": "18036:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 30907, - "name": "cut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30892, - "src": "18067:3:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 30904, - "name": "StrategistPlatformCutChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30846, - "src": "18007:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", - "typeString": "function (uint64,uint64)" - } - }, - "id": 30908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18007:64:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30909, - "nodeType": "EmitStatement", - "src": "18002:69:41" - }, - { - "expression": { - "id": 30914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 30910, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "18082:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 30912, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "18090:21:41", - "memberName": "strategistPlatformCut", - "nodeType": "MemberAccess", - "referencedDeclaration": 30861, - "src": "18082:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 30913, - "name": "cut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30892, - "src": "18114:3:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "18082:35:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 30915, - "nodeType": "ExpressionStatement", - "src": "18082:35:41" - } - ] - }, - "documentation": { - "id": 30890, - "nodeType": "StructuredDocumentation", - "src": "17737:122:41", - "text": " @notice Sets the Strategists cut of platform fees\n @param cut the platform cut for the strategist" - }, - "functionSelector": "b5292a99", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30895, - "kind": "modifierInvocation", - "modifierName": { - "id": 30894, - "name": "onlyOwner", - "nameLocations": [ - "17919:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "17919:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "17919:9:41" - } - ], - "name": "setStrategistPlatformCut", - "nameLocation": "17873:24:41", - "parameters": { - "id": 30893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30892, - "mutability": "mutable", - "name": "cut", - "nameLocation": "17905:3:41", - "nodeType": "VariableDeclaration", - "scope": 30917, - "src": "17898:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 30891, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "17898:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "17897:12:41" - }, - "returnParameters": { - "id": 30896, - "nodeType": "ParameterList", - "parameters": [], - "src": "17929:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30938, - "nodeType": "FunctionDefinition", - "src": "18252:215:41", - "nodes": [], - "body": { - "id": 30937, - "nodeType": "Block", - "src": "18323:144:41", - "nodes": [], - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 30926, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "18369:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 30927, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18377:23:41", - "memberName": "strategistPayoutAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 30867, - "src": "18369:31:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 30928, - "name": "payout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30920, - "src": "18402:6:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 30925, - "name": "StrategistPayoutAddressChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30853, - "src": "18338:30:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 30929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18338:71:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30930, - "nodeType": "EmitStatement", - "src": "18333:76:41" - }, - { - "expression": { - "id": 30935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 30931, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "18420:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 30933, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "18428:23:41", - "memberName": "strategistPayoutAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 30867, - "src": "18420:31:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 30934, - "name": "payout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30920, - "src": "18454:6:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18420:40:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 30936, - "nodeType": "ExpressionStatement", - "src": "18420:40:41" - } - ] - }, - "documentation": { - "id": 30918, - "nodeType": "StructuredDocumentation", - "src": "18130:117:41", - "text": " @notice Sets the Strategists payout address\n @param payout the new strategist payout address" - }, - "functionSelector": "b0a75d36", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 30923, - "kind": "modifierInvocation", - "modifierName": { - "id": 30922, - "name": "onlyOwner", - "nameLocations": [ - "18313:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "18313:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "18313:9:41" - } - ], - "name": "setStrategistPayoutAddress", - "nameLocation": "18261:26:41", - "parameters": { - "id": 30921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30920, - "mutability": "mutable", - "name": "payout", - "nameLocation": "18296:6:41", - "nodeType": "VariableDeclaration", - "scope": 30938, - "src": "18288:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 30919, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "18287:16:41" - }, - "returnParameters": { - "id": 30924, - "nodeType": "ParameterList", - "parameters": [], - "src": "18323:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 30943, - "nodeType": "EventDefinition", - "src": "18720:39:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 30939, - "nodeType": "StructuredDocumentation", - "src": "18585:130:41", - "text": " @notice Emitted when cellar emergency state is changed.\n @param isShutdown whether the cellar is shutdown" - }, - "eventSelector": "b8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c", - "name": "ShutdownChanged", - "nameLocation": "18726:15:41", - "parameters": { - "id": 30942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30941, - "indexed": false, - "mutability": "mutable", - "name": "isShutdown", - "nameLocation": "18747:10:41", - "nodeType": "VariableDeclaration", - "scope": 30943, - "src": "18742:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18742:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "18741:17:41" - } - }, - { - "id": 30946, - "nodeType": "ErrorDefinition", - "src": "18859:33:41", - "nodes": [], - "documentation": { - "id": 30944, - "nodeType": "StructuredDocumentation", - "src": "18765:89:41", - "text": " @notice Attempted action was prevented due to contract being shutdown." - }, - "errorSelector": "6f4a665a", - "name": "Cellar__ContractShutdown", - "nameLocation": "18865:24:41", - "parameters": { - "id": 30945, - "nodeType": "ParameterList", - "parameters": [], - "src": "18889:2:41" - } - }, - { - "id": 30949, - "nodeType": "ErrorDefinition", - "src": "18996:36:41", - "nodes": [], - "documentation": { - "id": 30947, - "nodeType": "StructuredDocumentation", - "src": "18898:93:41", - "text": " @notice Attempted action was prevented due to contract not being shutdown." - }, - "errorSelector": "ec7165bf", - "name": "Cellar__ContractNotShutdown", - "nameLocation": "19002:27:41", - "parameters": { - "id": 30948, - "nodeType": "ParameterList", - "parameters": [], - "src": "19029:2:41" - } - }, - { - "id": 30952, - "nodeType": "ErrorDefinition", - "src": "19126:23:41", - "nodes": [], - "documentation": { - "id": 30950, - "nodeType": "StructuredDocumentation", - "src": "19038:83:41", - "text": " @notice Attempted to interact with the cellar when it is paused." - }, - "errorSelector": "f301f8f0", - "name": "Cellar__Paused", - "nameLocation": "19132:14:41", - "parameters": { - "id": 30951, - "nodeType": "ParameterList", - "parameters": [], - "src": "19146:2:41" - } - }, - { - "id": 30955, - "nodeType": "VariableDeclaration", - "src": "19251:22:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30953, - "nodeType": "StructuredDocumentation", - "src": "19155:91:41", - "text": " @notice Whether or not the contract is shutdown in case of an emergency." - }, - "functionSelector": "bf86d690", - "mutability": "mutable", - "name": "isShutdown", - "nameLocation": "19263:10:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19251:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "public" - }, - { - "id": 30958, - "nodeType": "VariableDeclaration", - "src": "19367:23:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 30956, - "nodeType": "StructuredDocumentation", - "src": "19280:82:41", - "text": " @notice Pauses all user entry/exits, and strategist rebalances." - }, - "functionSelector": "9959af94", - "mutability": "mutable", - "name": "ignorePause", - "nameLocation": "19379:11:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30957, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19367:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "public" - }, - { - "id": 30979, - "nodeType": "FunctionDefinition", - "src": "19501:175:41", - "nodes": [], - "body": { - "id": 30978, - "nodeType": "Block", - "src": "19550:126:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 30965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19564:12:41", - "subExpression": { - "id": 30964, - "name": "ignorePause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30958, - "src": "19565:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30975, - "nodeType": "IfStatement", - "src": "19560:88:41", - "trueBody": { - "id": 30974, - "nodeType": "Block", - "src": "19578:70:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 30970, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "19631:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - ], - "id": 30969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19623:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30968, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19623:7:41", - "typeDescriptions": {} - } - }, - "id": 30971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19623:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 30966, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "19599:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19608:14:41", - "memberName": "isCallerPaused", - "nodeType": "MemberAccess", - "referencedDeclaration": 29520, - "src": "19599:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 30972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19599:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 30963, - "id": 30973, - "nodeType": "Return", - "src": "19592:45:41" - } - ] - } - }, - { - "expression": { - "hexValue": "66616c7365", - "id": 30976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19664:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 30963, - "id": 30977, - "nodeType": "Return", - "src": "19657:12:41" - } - ] - }, - "documentation": { - "id": 30959, - "nodeType": "StructuredDocumentation", - "src": "19397:99:41", - "text": " @notice View function external contracts can use to see if the cellar is paused." - }, - "functionSelector": "b187bd26", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPaused", - "nameLocation": "19510:8:41", - "parameters": { - "id": 30960, - "nodeType": "ParameterList", - "parameters": [], - "src": "19518:2:41" - }, - "returnParameters": { - "id": 30963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 30962, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 30979, - "src": "19544:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 30961, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19544:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "19543:6:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 30999, - "nodeType": "FunctionDefinition", - "src": "19769:166:41", - "nodes": [], - "body": { - "id": 30998, - "nodeType": "Block", - "src": "19809:126:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 30984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19823:12:41", - "subExpression": { - "id": 30983, - "name": "ignorePause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30958, - "src": "19824:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30997, - "nodeType": "IfStatement", - "src": "19819:110:41", - "trueBody": { - "id": 30996, - "nodeType": "Block", - "src": "19837:92:41", - "statements": [ - { - "condition": { - "arguments": [ - { - "arguments": [ - { - "id": 30989, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "19887:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - ], - "id": 30988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19879:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 30987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19879:7:41", - "typeDescriptions": {} - } - }, - "id": 30990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19879:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 30985, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "19855:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 30986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19864:14:41", - "memberName": "isCallerPaused", - "nodeType": "MemberAccess", - "referencedDeclaration": 29520, - "src": "19855:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 30991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19855:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 30995, - "nodeType": "IfStatement", - "src": "19851:67:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 30992, - "name": "Cellar__Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30952, - "src": "19902:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 30993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19902:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30994, - "nodeType": "RevertStatement", - "src": "19895:23:41" - } - } - ] - } - } - ] - }, - "documentation": { - "id": 30980, - "nodeType": "StructuredDocumentation", - "src": "19682:82:41", - "text": " @notice Pauses all user entry/exits, and strategist rebalances." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkIfPaused", - "nameLocation": "19778:14:41", - "parameters": { - "id": 30981, - "nodeType": "ParameterList", - "parameters": [], - "src": "19792:2:41" - }, - "returnParameters": { - "id": 30982, - "nodeType": "ParameterList", - "parameters": [], - "src": "19809:0:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31012, - "nodeType": "FunctionDefinition", - "src": "20035:96:41", - "nodes": [], - "body": { - "id": 31011, - "nodeType": "Block", - "src": "20094:37:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 31009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31007, - "name": "ignorePause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30958, - "src": "20104:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 31008, - "name": "toggle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31002, - "src": "20118:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20104:20:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31010, - "nodeType": "ExpressionStatement", - "src": "20104:20:41" - } - ] - }, - "documentation": { - "id": 31000, - "nodeType": "StructuredDocumentation", - "src": "19941:89:41", - "text": " @notice Allows governance to choose whether or not to respect a pause." - }, - "functionSelector": "ebe3c328", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31005, - "kind": "modifierInvocation", - "modifierName": { - "id": 31004, - "name": "onlyOwner", - "nameLocations": [ - "20084:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "20084:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "20084:9:41" - } - ], - "name": "toggleIgnorePause", - "nameLocation": "20044:17:41", - "parameters": { - "id": 31003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31002, - "mutability": "mutable", - "name": "toggle", - "nameLocation": "20067:6:41", - "nodeType": "VariableDeclaration", - "scope": 31012, - "src": "20062:11:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 31001, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20062:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "20061:13:41" - }, - "returnParameters": { - "id": 31006, - "nodeType": "ParameterList", - "parameters": [], - "src": "20094:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31022, - "nodeType": "FunctionDefinition", - "src": "20224:108:41", - "nodes": [], - "body": { - "id": 31021, - "nodeType": "Block", - "src": "20266:66:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 31016, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "20280:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31020, - "nodeType": "IfStatement", - "src": "20276:49:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31017, - "name": "Cellar__ContractShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30946, - "src": "20299:24:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20299:26:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31019, - "nodeType": "RevertStatement", - "src": "20292:33:41" - } - } - ] - }, - "documentation": { - "id": 31013, - "nodeType": "StructuredDocumentation", - "src": "20137:82:41", - "text": " @notice Prevent a function from being called during a shutdown." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_whenNotShutdown", - "nameLocation": "20233:16:41", - "parameters": { - "id": 31014, - "nodeType": "ParameterList", - "parameters": [], - "src": "20249:2:41" - }, - "returnParameters": { - "id": 31015, - "nodeType": "ParameterList", - "parameters": [], - "src": "20266:0:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31040, - "nodeType": "FunctionDefinition", - "src": "20479:146:41", - "nodes": [], - "body": { - "id": 31039, - "nodeType": "Block", - "src": "20526:99:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31028, - "name": "_whenNotShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31022, - "src": "20536:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 31029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20536:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31030, - "nodeType": "ExpressionStatement", - "src": "20536:18:41" - }, - { - "expression": { - "id": 31033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31031, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "20564:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 31032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20577:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "20564:17:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31034, - "nodeType": "ExpressionStatement", - "src": "20564:17:41" - }, - { - "eventCall": { - "arguments": [ - { - "hexValue": "74727565", - "id": 31036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20613:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31035, - "name": "ShutdownChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30943, - "src": "20597:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", - "typeString": "function (bool)" - } - }, - "id": 31037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20597:21:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31038, - "nodeType": "EmitStatement", - "src": "20592:26:41" - } - ] - }, - "documentation": { - "id": 31023, - "nodeType": "StructuredDocumentation", - "src": "20338:136:41", - "text": " @notice Shutdown the cellar. Used in an emergency or if the cellar has been deprecated.\n @dev In the case where" - }, - "functionSelector": "0a680e18", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31026, - "kind": "modifierInvocation", - "modifierName": { - "id": 31025, - "name": "onlyOwner", - "nameLocations": [ - "20516:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "20516:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "20516:9:41" - } - ], - "name": "initiateShutdown", - "nameLocation": "20488:16:41", - "parameters": { - "id": 31024, - "nodeType": "ParameterList", - "parameters": [], - "src": "20504:2:41" - }, - "returnParameters": { - "id": 31027, - "nodeType": "ParameterList", - "parameters": [], - "src": "20526:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31061, - "nodeType": "FunctionDefinition", - "src": "20682:179:41", - "nodes": [], - "body": { - "id": 31060, - "nodeType": "Block", - "src": "20725:136:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 31047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20739:11:41", - "subExpression": { - "id": 31046, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "20740:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31051, - "nodeType": "IfStatement", - "src": "20735:53:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31048, - "name": "Cellar__ContractNotShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30949, - "src": "20759:27:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20759:29:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31050, - "nodeType": "RevertStatement", - "src": "20752:36:41" - } - }, - { - "expression": { - "id": 31054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31052, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "20798:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 31053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20811:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "20798:18:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31055, - "nodeType": "ExpressionStatement", - "src": "20798:18:41" - }, - { - "eventCall": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 31057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20848:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31056, - "name": "ShutdownChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30943, - "src": "20832:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", - "typeString": "function (bool)" - } - }, - "id": 31058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20832:22:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31059, - "nodeType": "EmitStatement", - "src": "20827:27:41" - } - ] - }, - "documentation": { - "id": 31041, - "nodeType": "StructuredDocumentation", - "src": "20631:46:41", - "text": " @notice Restart the cellar." - }, - "functionSelector": "5e2c576e", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31044, - "kind": "modifierInvocation", - "modifierName": { - "id": 31043, - "name": "onlyOwner", - "nameLocations": [ - "20715:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "20715:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "20715:9:41" - } - ], - "name": "liftShutdown", - "nameLocation": "20691:12:41", - "parameters": { - "id": 31042, - "nodeType": "ParameterList", - "parameters": [], - "src": "20703:2:41" - }, - "returnParameters": { - "id": 31045, - "nodeType": "ParameterList", - "parameters": [], - "src": "20725:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31065, - "nodeType": "VariableDeclaration", - "src": "21054:56:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 31062, - "nodeType": "StructuredDocumentation", - "src": "20975:74:41", - "text": " @notice Id to get the gravity bridge from the registry." - }, - "functionSelector": "cd82f8b1", - "mutability": "constant", - "name": "GRAVITY_BRIDGE_REGISTRY_SLOT", - "nameLocation": "21078:28:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31063, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21054:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 31064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21109:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "id": 31069, - "nodeType": "VariableDeclaration", - "src": "21194:54:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 31066, - "nodeType": "StructuredDocumentation", - "src": "21117:72:41", - "text": " @notice Id to get the price router from the registry." - }, - "functionSelector": "5a400d25", - "mutability": "constant", - "name": "PRICE_ROUTER_REGISTRY_SLOT", - "nameLocation": "21218:26:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31067, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21194:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 31068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21247:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "id": 31073, - "nodeType": "VariableDeclaration", - "src": "21374:24:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 31070, - "nodeType": "StructuredDocumentation", - "src": "21255:114:41", - "text": " @notice Address of the platform's registry contract. Used to get the latest address of modules." - }, - "functionSelector": "7b103999", - "mutability": "mutable", - "name": "registry", - "nameLocation": "21390:8:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - }, - "typeName": { - "id": 31072, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 31071, - "name": "Registry", - "nameLocations": [ - "21374:8:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30033, - "src": "21374:8:41" - }, - "referencedDeclaration": 30033, - "src": "21374:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "visibility": "public" - }, - { - "id": 31263, - "nodeType": "FunctionDefinition", - "src": "22778:1954:41", - "nodes": [], - "body": { - "id": 31262, - "nodeType": "Block", - "src": "23029:1703:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 31103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31101, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "23039:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 31102, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31077, - "src": "23050:9:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "src": "23039:20:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 31104, - "nodeType": "ExpressionStatement", - "src": "23039:20:41" - }, - { - "expression": { - "id": 31112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31105, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "23069:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 31109, - "name": "PRICE_ROUTER_REGISTRY_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31069, - "src": "23115:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31107, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "23095:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 31108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23104:10:41", - "memberName": "getAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 29189, - "src": "23095:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 31110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23095:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31106, - "name": "PriceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52732, - "src": "23083:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PriceRouter_$52732_$", - "typeString": "type(contract PriceRouter)" - } - }, - "id": 31111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23083:60:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "src": "23069:74:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 31113, - "nodeType": "ExpressionStatement", - "src": "23069:74:41" - }, - { - "id": 31217, - "nodeType": "Block", - "src": "23154:1095:41", - "statements": [ - { - "assignments": [ - 31118, - 31121, - 31124, - 31127, - 31129 - ], - "declarations": [ - { - "constant": false, - "id": 31118, - "mutability": "mutable", - "name": "_creditPositions", - "nameLocation": "23202:16:41", - "nodeType": "VariableDeclaration", - "scope": 31217, - "src": "23186:32:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 31116, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23186:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 31117, - "nodeType": "ArrayTypeName", - "src": "23186:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31121, - "mutability": "mutable", - "name": "_debtPositions", - "nameLocation": "23252:14:41", - "nodeType": "VariableDeclaration", - "scope": 31217, - "src": "23236:30:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 31119, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23236:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 31120, - "nodeType": "ArrayTypeName", - "src": "23236:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31124, - "mutability": "mutable", - "name": "_creditConfigurationData", - "nameLocation": "23299:24:41", - "nodeType": "VariableDeclaration", - "scope": 31217, - "src": "23284:39:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 31122, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23284:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 31123, - "nodeType": "ArrayTypeName", - "src": "23284:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31127, - "mutability": "mutable", - "name": "_debtConfigurationData", - "nameLocation": "23356:22:41", - "nodeType": "VariableDeclaration", - "scope": 31217, - "src": "23341:37:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 31125, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23341:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 31126, - "nodeType": "ArrayTypeName", - "src": "23341:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31129, - "mutability": "mutable", - "name": "_holdingPosition", - "nameLocation": "23403:16:41", - "nodeType": "VariableDeclaration", - "scope": 31217, - "src": "23396:23:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 31128, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23396:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 31149, - "initialValue": { - "arguments": [ - { - "id": 31132, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31086, - "src": "23447:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 31134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23456:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 31133, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23456:6:41", - "typeDescriptions": {} - } - }, - "id": 31135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23456:8:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint32_$dyn_memory_ptr_$", - "typeString": "type(uint32[] memory)" - } - }, - { - "baseExpression": { - "id": 31137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23466:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 31136, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23466:6:41", - "typeDescriptions": {} - } - }, - "id": 31138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23466:8:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint32_$dyn_memory_ptr_$", - "typeString": "type(uint32[] memory)" - } - }, - { - "baseExpression": { - "id": 31140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23476:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 31139, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23476:5:41", - "typeDescriptions": {} - } - }, - "id": 31141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23476:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(bytes memory[] memory)" - } - }, - { - "baseExpression": { - "id": 31143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23485:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 31142, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23485:5:41", - "typeDescriptions": {} - } - }, - "id": 31144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23485:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(bytes memory[] memory)" - } - }, - { - "id": 31146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23494:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 31145, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "23494:5:41", - "typeDescriptions": {} - } - } - ], - "id": 31147, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23455:45:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$", - "typeString": "tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$", - "typeString": "tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8))" - } - ], - "expression": { - "id": 31130, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "23436:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 31131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23440:6:41", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "23436:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23436:65:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$", - "typeString": "tuple(uint32[] memory,uint32[] memory,bytes memory[] memory,bytes memory[] memory,uint8)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23168:333:41" - }, - { - "body": { - "id": 31177, - "nodeType": "Block", - "src": "23602:167:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 31161, - "name": "_creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31118, - "src": "23644:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31163, - "indexExpression": { - "id": 31162, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23661:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23644:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 31160, - "name": "_addPositionToCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30443, - "src": "23620:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 31164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23620:44:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31165, - "nodeType": "ExpressionStatement", - "src": "23620:44:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31167, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23695:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 31168, - "name": "_creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31118, - "src": "23698:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31170, - "indexExpression": { - "id": 31169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23715:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23698:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 31171, - "name": "_creditConfigurationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31124, - "src": "23719:24:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 31173, - "indexExpression": { - "id": 31172, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23744:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23719:27:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "66616c7365", - "id": 31174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23748:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31166, - "name": "_addPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30642, - "src": "23682:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (uint32,uint32,bytes memory,bool)" - } - }, - "id": 31175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23682:72:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31176, - "nodeType": "ExpressionStatement", - "src": "23682:72:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23568:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 31154, - "name": "_creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31118, - "src": "23572:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23589:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "23572:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23568:27:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31178, - "initializationExpression": { - "assignments": [ - 31151 - ], - "declarations": [ - { - "constant": false, - "id": 31151, - "mutability": "mutable", - "name": "i", - "nameLocation": "23565:1:41", - "nodeType": "VariableDeclaration", - "scope": 31178, - "src": "23558:8:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 31150, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23558:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 31152, - "nodeType": "VariableDeclarationStatement", - "src": "23558:8:41" - }, - "loopExpression": { - "expression": { - "id": 31158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "23597:3:41", - "subExpression": { - "id": 31157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31151, - "src": "23599:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 31159, - "nodeType": "ExpressionStatement", - "src": "23597:3:41" - }, - "nodeType": "ForStatement", - "src": "23553:216:41" - }, - { - "body": { - "id": 31206, - "nodeType": "Block", - "src": "23829:160:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 31190, - "name": "_debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31121, - "src": "23871:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31192, - "indexExpression": { - "id": 31191, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23886:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23871:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 31189, - "name": "_addPositionToCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30443, - "src": "23847:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 31193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23847:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31194, - "nodeType": "ExpressionStatement", - "src": "23847:42:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31196, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23920:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 31197, - "name": "_debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31121, - "src": "23923:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31199, - "indexExpression": { - "id": 31198, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23938:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23923:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "baseExpression": { - "id": 31200, - "name": "_debtConfigurationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31127, - "src": "23942:22:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 31202, - "indexExpression": { - "id": 31201, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23965:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23942:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "74727565", - "id": 31203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23969:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31195, - "name": "_addPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30642, - "src": "23907:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (uint32,uint32,bytes memory,bool)" - } - }, - "id": 31204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23907:67:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31205, - "nodeType": "ExpressionStatement", - "src": "23907:67:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31182, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23797:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 31183, - "name": "_debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31121, - "src": "23801:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23816:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "23801:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23797:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31207, - "initializationExpression": { - "assignments": [ - 31180 - ], - "declarations": [ - { - "constant": false, - "id": 31180, - "mutability": "mutable", - "name": "i", - "nameLocation": "23794:1:41", - "nodeType": "VariableDeclaration", - "scope": 31207, - "src": "23787:8:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 31179, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "23787:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 31181, - "nodeType": "VariableDeclarationStatement", - "src": "23787:8:41" - }, - "loopExpression": { - "expression": { - "id": 31187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "23824:3:41", - "subExpression": { - "id": 31186, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31180, - "src": "23826:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 31188, - "nodeType": "ExpressionStatement", - "src": "23824:3:41" - }, - "nodeType": "ForStatement", - "src": "23782:207:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 31208, - "name": "_creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31118, - "src": "24172:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 31209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24189:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "24172:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 31210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24198:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24172:27:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "documentation": "@dev No cellars will be deployed with a zero length credit positions array.", - "id": 31216, - "nodeType": "IfStatement", - "src": "24168:70:41", - "trueBody": { - "expression": { - "arguments": [ - { - "id": 31213, - "name": "_holdingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31129, - "src": "24221:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 31212, - "name": "_setHoldingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30396, - "src": "24201:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 31214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24201:37:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31215, - "nodeType": "ExpressionStatement", - "src": "24201:37:41" - } - } - ] - }, - { - "expression": { - "id": 31226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31218, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "24437:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 31220, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "24445:11:41", - "memberName": "lastAccrual", - "nodeType": "MemberAccess", - "referencedDeclaration": 30865, - "src": "24437:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 31223, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "24466:5:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 31224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24472:9:41", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "24466:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24459:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 31221, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "24459:6:41", - "typeDescriptions": {} - } - }, - "id": 31225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24459:23:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "24437:45:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 31227, - "nodeType": "ExpressionStatement", - "src": "24437:45:41" - }, - { - "assignments": [ - null, - null, - null, - null, - null, - 31229, - null, - null - ], - "declarations": [ - null, - null, - null, - null, - null, - { - "constant": false, - "id": 31229, - "mutability": "mutable", - "name": "_strategistPayout", - "nameLocation": "24512:17:41", - "nodeType": "VariableDeclaration", - "scope": 31262, - "src": "24504:25:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31228, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24504:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - null, - null - ], - "id": 31255, - "initialValue": { - "arguments": [ - { - "id": 31232, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31086, - "src": "24561:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 31234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24582:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 31233, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "24582:6:41", - "typeDescriptions": {} - } - }, - "id": 31235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24582:8:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint32_$dyn_memory_ptr_$", - "typeString": "type(uint32[] memory)" - } - }, - { - "baseExpression": { - "id": 31237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24592:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 31236, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "24592:6:41", - "typeDescriptions": {} - } - }, - "id": 31238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24592:8:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_uint32_$dyn_memory_ptr_$", - "typeString": "type(uint32[] memory)" - } - }, - { - "baseExpression": { - "id": 31240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24602:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 31239, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "24602:5:41", - "typeDescriptions": {} - } - }, - "id": 31241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24602:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(bytes memory[] memory)" - } - }, - { - "baseExpression": { - "id": 31243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24611:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 31242, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "24611:5:41", - "typeDescriptions": {} - } - }, - "id": 31244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24611:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(bytes memory[] memory)" - } - }, - { - "id": 31246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24620:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 31245, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "24620:5:41", - "typeDescriptions": {} - } - }, - { - "id": 31248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24627:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 31247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24627:7:41", - "typeDescriptions": {} - } - }, - { - "id": 31250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24636:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 31249, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "24636:7:41", - "typeDescriptions": {} - } - }, - { - "id": 31252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24645:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 31251, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "24645:7:41", - "typeDescriptions": {} - } - } - ], - "id": 31253, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24581:72:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_address_$_$_t_type$_t_uint128_$_$_t_type$_t_uint128_$_$", - "typeString": "tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8),type(address),type(uint128),type(uint128))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_address_$_$_t_type$_t_uint128_$_$_t_type$_t_uint128_$_$", - "typeString": "tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8),type(address),type(uint128),type(uint128))" - } - ], - "expression": { - "id": 31230, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "24537:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 31231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24541:6:41", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "24537:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24537:126:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$_t_address_payable_$_t_uint128_$_t_uint128_$", - "typeString": "tuple(uint32[] memory,uint32[] memory,bytes memory[] memory,bytes memory[] memory,uint8,address payable,uint128,uint128)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24493:170:41" - }, - { - "expression": { - "id": 31260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31256, - "name": "feeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30881, - "src": "24674:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FeeData_$30868_storage", - "typeString": "struct Cellar.FeeData storage ref" - } - }, - "id": 31258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "24682:23:41", - "memberName": "strategistPayoutAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 30867, - "src": "24674:31:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 31259, - "name": "_strategistPayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31229, - "src": "24708:17:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "24674:51:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 31261, - "nodeType": "ExpressionStatement", - "src": "24674:51:41" - } - ] - }, - "documentation": { - "id": 31074, - "nodeType": "StructuredDocumentation", - "src": "21405:1368:41", - "text": " @dev Owner should be set to the Gravity Bridge, which relays instructions from the Steward\n module to the cellars.\n https://github.com/PeggyJV/steward\n https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol\n @param _registry address of the platform's registry contract\n @param _asset address of underlying token used for the for accounting, depositing, and withdrawing\n @param _name name of this cellar's share token\n @param _symbol symbol of this cellar's share token\n @param params abi encode values.\n - _creditPositions ids of the credit positions to initialize the cellar with\n - _debtPositions ids of the credit positions to initialize the cellar with\n - _creditConfigurationData configuration data for each position\n - _debtConfigurationData configuration data for each position\n - _holdingIndex the index in _creditPositions to use as the holding position.\n - _strategistPayout the address to send the strategists fee shares.\n - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to\n - _protocolRiskTolerance this cellars risk tolerance for protocols it will use" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 31089, - "name": "_asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31080, - "src": "22943:6:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - { - "id": 31090, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31082, - "src": "22951:5:41", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 31091, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31084, - "src": "22958:7:41", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "hexValue": "3138", - "id": 31092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22967:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 31093, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 31088, - "name": "ERC4626", - "nameLocations": [ - "22935:7:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35137, - "src": "22935:7:41" - }, - "nodeType": "ModifierInvocation", - "src": "22935:35:41" - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 31097, - "name": "GRAVITY_BRIDGE_REGISTRY_SLOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31065, - "src": "22998:28:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31095, - "name": "_registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31077, - "src": "22977:9:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 31096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22987:10:41", - "memberName": "getAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 29189, - "src": "22977:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view external returns (address)" - } - }, - "id": 31098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22977:50:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 31099, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 31094, - "name": "Owned", - "nameLocations": [ - "22971:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26585, - "src": "22971:5:41" - }, - "nodeType": "ModifierInvocation", - "src": "22971:57:41" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 31087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31077, - "mutability": "mutable", - "name": "_registry", - "nameLocation": "22808:9:41", - "nodeType": "VariableDeclaration", - "scope": 31263, - "src": "22799:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - }, - "typeName": { - "id": 31076, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 31075, - "name": "Registry", - "nameLocations": [ - "22799:8:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30033, - "src": "22799:8:41" - }, - "referencedDeclaration": 30033, - "src": "22799:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31080, - "mutability": "mutable", - "name": "_asset", - "nameLocation": "22833:6:41", - "nodeType": "VariableDeclaration", - "scope": 31263, - "src": "22827:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - }, - "typeName": { - "id": 31079, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 31078, - "name": "ERC20", - "nameLocations": [ - "22827:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "22827:5:41" - }, - "referencedDeclaration": 34556, - "src": "22827:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31082, - "mutability": "mutable", - "name": "_name", - "nameLocation": "22863:5:41", - "nodeType": "VariableDeclaration", - "scope": 31263, - "src": "22849:19:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31081, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "22849:6:41", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31084, - "mutability": "mutable", - "name": "_symbol", - "nameLocation": "22892:7:41", - "nodeType": "VariableDeclaration", - "scope": 31263, - "src": "22878:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31083, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "22878:6:41", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31086, - "mutability": "mutable", - "name": "params", - "nameLocation": "22922:6:41", - "nodeType": "VariableDeclaration", - "scope": 31263, - "src": "22909:19:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 31085, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "22909:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "22789:145:41" - }, - "returnParameters": { - "id": 31100, - "nodeType": "ParameterList", - "parameters": [], - "src": "23029:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31270, - "nodeType": "EventDefinition", - "src": "25016:70:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 31264, - "nodeType": "StructuredDocumentation", - "src": "24845:166:41", - "text": " @notice Emitted when share locking period is changed.\n @param oldPeriod the old locking period\n @param newPeriod the new locking period" - }, - "eventSelector": "227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f24", - "name": "ShareLockingPeriodChanged", - "nameLocation": "25022:25:41", - "parameters": { - "id": 31269, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31266, - "indexed": false, - "mutability": "mutable", - "name": "oldPeriod", - "nameLocation": "25056:9:41", - "nodeType": "VariableDeclaration", - "scope": 31270, - "src": "25048:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25048:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31268, - "indexed": false, - "mutability": "mutable", - "name": "newPeriod", - "nameLocation": "25075:9:41", - "nodeType": "VariableDeclaration", - "scope": 31270, - "src": "25067:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31267, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25067:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25047:38:41" - } - }, - { - "id": 31273, - "nodeType": "ErrorDefinition", - "src": "25161:27:41", - "nodes": [], - "documentation": { - "id": 31271, - "nodeType": "StructuredDocumentation", - "src": "25092:64:41", - "text": " @notice Attempted an action with zero shares." - }, - "errorSelector": "84de2a6e", - "name": "Cellar__ZeroShares", - "nameLocation": "25167:18:41", - "parameters": { - "id": 31272, - "nodeType": "ParameterList", - "parameters": [], - "src": "25185:2:41" - } - }, - { - "id": 31276, - "nodeType": "ErrorDefinition", - "src": "25263:27:41", - "nodes": [], - "documentation": { - "id": 31274, - "nodeType": "StructuredDocumentation", - "src": "25194:64:41", - "text": " @notice Attempted an action with zero assets." - }, - "errorSelector": "97683005", - "name": "Cellar__ZeroAssets", - "nameLocation": "25269:18:41", - "parameters": { - "id": 31275, - "nodeType": "ParameterList", - "parameters": [], - "src": "25287:2:41" - } - }, - { - "id": 31281, - "nodeType": "ErrorDefinition", - "src": "25441:53:41", - "nodes": [], - "documentation": { - "id": 31277, - "nodeType": "StructuredDocumentation", - "src": "25296:140:41", - "text": " @notice Withdraw did not withdraw all assets.\n @param assetsOwed the remaining assets owed that were not withdrawn." - }, - "errorSelector": "cc5ea39b", - "name": "Cellar__IncompleteWithdraw", - "nameLocation": "25447:26:41", - "parameters": { - "id": 31280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31279, - "mutability": "mutable", - "name": "assetsOwed", - "nameLocation": "25482:10:41", - "nodeType": "VariableDeclaration", - "scope": 31281, - "src": "25474:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25474:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25473:20:41" - } - }, - { - "id": 31286, - "nodeType": "ErrorDefinition", - "src": "25629:57:41", - "nodes": [], - "documentation": { - "id": 31282, - "nodeType": "StructuredDocumentation", - "src": "25500:124:41", - "text": " @notice Attempted to withdraw an illiquid position.\n @param illiquidPosition the illiquid position." - }, - "errorSelector": "f2018f6f", - "name": "Cellar__IlliquidWithdraw", - "nameLocation": "25635:24:41", - "parameters": { - "id": 31285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31284, - "mutability": "mutable", - "name": "illiquidPosition", - "nameLocation": "25668:16:41", - "nodeType": "VariableDeclaration", - "scope": 31286, - "src": "25660:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25660:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "25659:26:41" - } - }, - { - "id": 31289, - "nodeType": "ErrorDefinition", - "src": "25780:39:41", - "nodes": [], - "documentation": { - "id": 31287, - "nodeType": "StructuredDocumentation", - "src": "25692:83:41", - "text": " @notice Attempted to set `shareLockPeriod` to an invalid number." - }, - "errorSelector": "e9808cfc", - "name": "Cellar__InvalidShareLockPeriod", - "nameLocation": "25786:30:41", - "parameters": { - "id": 31288, - "nodeType": "ParameterList", - "parameters": [], - "src": "25816:2:41" - } - }, - { - "id": 31296, - "nodeType": "ErrorDefinition", - "src": "26036:83:41", - "nodes": [], - "documentation": { - "id": 31290, - "nodeType": "StructuredDocumentation", - "src": "25825:206:41", - "text": " @notice Attempted to burn shares when they are locked.\n @param timeSharesAreUnlocked time when caller can transfer/redeem shares\n @param currentBlock the current block number." - }, - "errorSelector": "1be3b8fc", - "name": "Cellar__SharesAreLocked", - "nameLocation": "26042:23:41", - "parameters": { - "id": 31295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31292, - "mutability": "mutable", - "name": "timeSharesAreUnlocked", - "nameLocation": "26074:21:41", - "nodeType": "VariableDeclaration", - "scope": 31296, - "src": "26066:29:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26066:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31294, - "mutability": "mutable", - "name": "currentBlock", - "nameLocation": "26105:12:41", - "nodeType": "VariableDeclaration", - "scope": 31296, - "src": "26097:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26097:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26065:53:41" - } - }, - { - "id": 31301, - "nodeType": "ErrorDefinition", - "src": "26218:62:41", - "nodes": [], - "documentation": { - "id": 31297, - "nodeType": "StructuredDocumentation", - "src": "26125:88:41", - "text": " @notice Attempted deposit on behalf of a user without being approved." - }, - "errorSelector": "d21c7c94", - "name": "Cellar__NotApprovedToDepositOnBehalf", - "nameLocation": "26224:36:41", - "parameters": { - "id": 31300, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31299, - "mutability": "mutable", - "name": "depositor", - "nameLocation": "26269:9:41", - "nodeType": "VariableDeclaration", - "scope": 31301, - "src": "26261:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31298, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26261:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "26260:19:41" - } - }, - { - "id": 31307, - "nodeType": "VariableDeclaration", - "src": "26377:58:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 31302, - "nodeType": "StructuredDocumentation", - "src": "26286:86:41", - "text": " @notice Shares must be locked for at least 5 minutes after minting." - }, - "functionSelector": "0051a3b7", - "mutability": "constant", - "name": "MINIMUM_SHARE_LOCK_PERIOD", - "nameLocation": "26401:25:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26377:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_rational_300_by_1", - "typeString": "int_const 300" - }, - "id": 31306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "35", - "id": 31304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26429:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3630", - "id": 31305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26433:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "src": "26429:6:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_300_by_1", - "typeString": "int_const 300" - } - }, - "visibility": "public" - }, - { - "id": 31311, - "nodeType": "VariableDeclaration", - "src": "26528:58:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 31308, - "nodeType": "StructuredDocumentation", - "src": "26442:81:41", - "text": " @notice Shares can be locked for at most 2 days after minting." - }, - "functionSelector": "0402ab63", - "mutability": "constant", - "name": "MAXIMUM_SHARE_LOCK_PERIOD", - "nameLocation": "26552:25:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26528:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 31310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26580:6:41", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_172800_by_1", - "typeString": "int_const 172800" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "id": 31315, - "nodeType": "VariableDeclaration", - "src": "26734:58:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 31312, - "nodeType": "StructuredDocumentation", - "src": "26593:136:41", - "text": " @notice After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares." - }, - "functionSelector": "9fdb11b6", - "mutability": "mutable", - "name": "shareLockPeriod", - "nameLocation": "26749:15:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26734:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "id": 31314, - "name": "MAXIMUM_SHARE_LOCK_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31311, - "src": "26767:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 31320, - "nodeType": "VariableDeclaration", - "src": "26898:57:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 31316, - "nodeType": "StructuredDocumentation", - "src": "26799:94:41", - "text": " @notice mapping that stores every users last time stamp they minted shares." - }, - "functionSelector": "687c2b50", - "mutability": "mutable", - "name": "userShareLockStartTime", - "nameLocation": "26933:22:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 31319, - "keyType": { - "id": 31317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26906:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "26898:27:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 31318, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26917:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "id": 31353, - "nodeType": "FunctionDefinition", - "src": "27075:366:41", - "nodes": [], - "body": { - "id": 31352, - "nodeType": "Block", - "src": "27139:302:41", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 31334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31328, - "name": "newLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31323, - "src": "27153:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 31329, - "name": "MINIMUM_SHARE_LOCK_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31307, - "src": "27163:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27153:35:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31331, - "name": "newLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31323, - "src": "27192:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 31332, - "name": "MAXIMUM_SHARE_LOCK_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31311, - "src": "27202:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27192:35:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "27153:74:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31338, - "nodeType": "IfStatement", - "src": "27149:131:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31335, - "name": "Cellar__InvalidShareLockPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31289, - "src": "27248:30:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27248:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31337, - "nodeType": "RevertStatement", - "src": "27241:39:41" - } - }, - { - "assignments": [ - 31340 - ], - "declarations": [ - { - "constant": false, - "id": 31340, - "mutability": "mutable", - "name": "oldLockingPeriod", - "nameLocation": "27298:16:41", - "nodeType": "VariableDeclaration", - "scope": 31352, - "src": "27290:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27290:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31342, - "initialValue": { - "id": 31341, - "name": "shareLockPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31315, - "src": "27317:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27290:42:41" - }, - { - "expression": { - "id": 31345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31343, - "name": "shareLockPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31315, - "src": "27342:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 31344, - "name": "newLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31323, - "src": "27360:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27342:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31346, - "nodeType": "ExpressionStatement", - "src": "27342:25:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 31348, - "name": "oldLockingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31340, - "src": "27408:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31349, - "name": "newLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31323, - "src": "27426:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31347, - "name": "ShareLockingPeriodChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31270, - "src": "27382:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 31350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27382:52:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31351, - "nodeType": "EmitStatement", - "src": "27377:57:41" - } - ] - }, - "documentation": { - "id": 31321, - "nodeType": "StructuredDocumentation", - "src": "26962:108:41", - "text": " @notice Allows share lock period to be updated.\n @param newLock the new lock period" - }, - "functionSelector": "9c552ca8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31326, - "kind": "modifierInvocation", - "modifierName": { - "id": 31325, - "name": "onlyOwner", - "nameLocations": [ - "27129:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "27129:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "27129:9:41" - } - ], - "name": "setShareLockPeriod", - "nameLocation": "27084:18:41", - "parameters": { - "id": 31324, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31323, - "mutability": "mutable", - "name": "newLock", - "nameLocation": "27111:7:41", - "nodeType": "VariableDeclaration", - "scope": 31353, - "src": "27103:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31322, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27103:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "27102:17:41" - }, - "returnParameters": { - "id": 31327, - "nodeType": "ParameterList", - "parameters": [], - "src": "27139:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31388, - "nodeType": "FunctionDefinition", - "src": "27600:380:41", - "nodes": [], - "body": { - "id": 31387, - "nodeType": "Block", - "src": "27659:321:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31360 - ], - "declarations": [ - { - "constant": false, - "id": 31360, - "mutability": "mutable", - "name": "lockTime", - "nameLocation": "27677:8:41", - "nodeType": "VariableDeclaration", - "scope": 31387, - "src": "27669:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27669:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31364, - "initialValue": { - "baseExpression": { - "id": 31361, - "name": "userShareLockStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31320, - "src": "27688:22:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 31363, - "indexExpression": { - "id": 31362, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31356, - "src": "27711:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27688:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27669:48:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31365, - "name": "lockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31360, - "src": "27731:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 31366, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27743:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27731:13:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31386, - "nodeType": "IfStatement", - "src": "27727:247:41", - "trueBody": { - "id": 31385, - "nodeType": "Block", - "src": "27746:228:41", - "statements": [ - { - "assignments": [ - 31369 - ], - "declarations": [ - { - "constant": false, - "id": 31369, - "mutability": "mutable", - "name": "timeSharesAreUnlocked", - "nameLocation": "27768:21:41", - "nodeType": "VariableDeclaration", - "scope": 31385, - "src": "27760:29:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31368, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27760:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31373, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31370, - "name": "lockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31360, - "src": "27792:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 31371, - "name": "shareLockPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31315, - "src": "27803:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27792:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27760:58:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31374, - "name": "timeSharesAreUnlocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31369, - "src": "27836:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 31375, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "27860:5:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 31376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27866:9:41", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "27860:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27836:39:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31384, - "nodeType": "IfStatement", - "src": "27832:131:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 31379, - "name": "timeSharesAreUnlocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31369, - "src": "27924:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 31380, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "27947:5:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 31381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27953:9:41", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "27947:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31378, - "name": "Cellar__SharesAreLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31296, - "src": "27900:23:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 31382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27900:63:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31383, - "nodeType": "RevertStatement", - "src": "27893:70:41" - } - } - ] - } - } - ] - }, - "documentation": { - "id": 31354, - "nodeType": "StructuredDocumentation", - "src": "27447:148:41", - "text": " @notice helper function that checks enough time has passed to unlock shares.\n @param owner the address of the user to check" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkIfSharesLocked", - "nameLocation": "27609:20:41", - "parameters": { - "id": 31357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31356, - "mutability": "mutable", - "name": "owner", - "nameLocation": "27638:5:41", - "nodeType": "VariableDeclaration", - "scope": 31388, - "src": "27630:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31355, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27630:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "27629:15:41" - }, - "returnParameters": { - "id": 31358, - "nodeType": "ParameterList", - "parameters": [], - "src": "27659:0:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31411, - "nodeType": "FunctionDefinition", - "src": "28062:169:41", - "nodes": [], - "body": { - "id": 31410, - "nodeType": "Block", - "src": "28139:92:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 31400, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "28170:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28174:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "28170:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31399, - "name": "_checkIfSharesLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31388, - "src": "28149:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", - "typeString": "function (address) view" - } - }, - "id": 31402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28149:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31403, - "nodeType": "ExpressionStatement", - "src": "28149:32:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31406, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31391, - "src": "28213:2:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31407, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31393, - "src": "28217:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31404, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "28198:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Cellar_$33437_$", - "typeString": "type(contract super Cellar)" - } - }, - "id": 31405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28204:8:41", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 34306, - "src": "28198:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 31408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28198:26:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 31398, - "id": 31409, - "nodeType": "Return", - "src": "28191:33:41" - } - ] - }, - "baseFunctions": [ - 34306 - ], - "documentation": { - "id": 31389, - "nodeType": "StructuredDocumentation", - "src": "27986:71:41", - "text": " @notice Override `transfer` to add share lock check." - }, - "functionSelector": "a9059cbb", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "28071:8:41", - "overrides": { - "id": 31395, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "28115:8:41" - }, - "parameters": { - "id": 31394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31391, - "mutability": "mutable", - "name": "to", - "nameLocation": "28088:2:41", - "nodeType": "VariableDeclaration", - "scope": 31411, - "src": "28080:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28080:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31393, - "mutability": "mutable", - "name": "amount", - "nameLocation": "28100:6:41", - "nodeType": "VariableDeclaration", - "scope": 31411, - "src": "28092:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31392, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28092:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28079:28:41" - }, - "returnParameters": { - "id": 31398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31397, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31411, - "src": "28133:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 31396, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28133:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "28132:6:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31436, - "nodeType": "FunctionDefinition", - "src": "28317:191:41", - "nodes": [], - "body": { - "id": 31435, - "nodeType": "Block", - "src": "28412:96:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 31425, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31414, - "src": "28443:4:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31424, - "name": "_checkIfSharesLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31388, - "src": "28422:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", - "typeString": "function (address) view" - } - }, - "id": 31426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28422:26:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31427, - "nodeType": "ExpressionStatement", - "src": "28422:26:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31430, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31414, - "src": "28484:4:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31431, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31416, - "src": "28490:2:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31432, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31418, - "src": "28494:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31428, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -25, - "src": "28465:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_super$_Cellar_$33437_$", - "typeString": "type(contract super Cellar)" - } - }, - "id": 31429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28471:12:41", - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 34367, - "src": "28465:18:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 31433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28465:36:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 31423, - "id": 31434, - "nodeType": "Return", - "src": "28458:43:41" - } - ] - }, - "baseFunctions": [ - 34367 - ], - "documentation": { - "id": 31412, - "nodeType": "StructuredDocumentation", - "src": "28237:75:41", - "text": " @notice Override `transferFrom` to add share lock check." - }, - "functionSelector": "23b872dd", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "28326:12:41", - "overrides": { - "id": 31420, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "28388:8:41" - }, - "parameters": { - "id": 31419, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31414, - "mutability": "mutable", - "name": "from", - "nameLocation": "28347:4:41", - "nodeType": "VariableDeclaration", - "scope": 31436, - "src": "28339:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28339:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31416, - "mutability": "mutable", - "name": "to", - "nameLocation": "28361:2:41", - "nodeType": "VariableDeclaration", - "scope": 31436, - "src": "28353:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28353:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31418, - "mutability": "mutable", - "name": "amount", - "nameLocation": "28373:6:41", - "nodeType": "VariableDeclaration", - "scope": 31436, - "src": "28365:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31417, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28365:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28338:42:41" - }, - "returnParameters": { - "id": 31423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31422, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31436, - "src": "28406:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 31421, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28406:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "28405:6:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31443, - "nodeType": "ErrorDefinition", - "src": "28710:68:41", - "nodes": [], - "documentation": { - "id": 31437, - "nodeType": "StructuredDocumentation", - "src": "28514:191:41", - "text": " @notice Attempted deposit more than the max deposit.\n @param assets the assets user attempted to deposit\n @param maxDeposit the max assets that can be deposited" - }, - "errorSelector": "b487ae1c", - "name": "Cellar__DepositRestricted", - "nameLocation": "28716:25:41", - "parameters": { - "id": 31442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31439, - "mutability": "mutable", - "name": "assets", - "nameLocation": "28750:6:41", - "nodeType": "VariableDeclaration", - "scope": 31443, - "src": "28742:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31438, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28742:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31441, - "mutability": "mutable", - "name": "maxDeposit", - "nameLocation": "28766:10:41", - "nodeType": "VariableDeclaration", - "scope": 31443, - "src": "28758:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28758:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28741:36:41" - } - }, - { - "id": 31494, - "nodeType": "FunctionDefinition", - "src": "28961:472:41", - "nodes": [], - "body": { - "id": 31493, - "nodeType": "Block", - "src": "29050:383:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31454, - "name": "_whenNotShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31022, - "src": "29060:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 31455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29060:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31456, - "nodeType": "ExpressionStatement", - "src": "29060:18:41" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31457, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "29088:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 31458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29088:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31459, - "nodeType": "ExpressionStatement", - "src": "29088:16:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 31463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 31460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29118:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29122:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "29118:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 31462, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31450, - "src": "29132:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "29118:22:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31477, - "nodeType": "IfStatement", - "src": "29114:178:41", - "trueBody": { - "id": 31476, - "nodeType": "Block", - "src": "29142:150:41", - "statements": [ - { - "condition": { - "id": 31469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29160:48:41", - "subExpression": { - "arguments": [ - { - "expression": { - "id": 31466, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29197:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29201:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "29197:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 31464, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31073, - "src": "29161:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$30033", - "typeString": "contract Registry" - } - }, - "id": 31465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29170:26:41", - "memberName": "approvedForDepositOnBehalf", - "nodeType": "MemberAccess", - "referencedDeclaration": 29194, - "src": "29161:35:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 31468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29161:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31475, - "nodeType": "IfStatement", - "src": "29156:125:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 31471, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "29270:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29274:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "29270:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31470, - "name": "Cellar__NotApprovedToDepositOnBehalf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31301, - "src": "29233:36:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 31473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29233:48:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31474, - "nodeType": "RevertStatement", - "src": "29226:55:41" - } - } - ] - } - }, - { - "assignments": [ - 31479 - ], - "declarations": [ - { - "constant": false, - "id": 31479, - "mutability": "mutable", - "name": "maxAssets", - "nameLocation": "29309:9:41", - "nodeType": "VariableDeclaration", - "scope": 31493, - "src": "29301:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29301:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31483, - "initialValue": { - "arguments": [ - { - "id": 31481, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31450, - "src": "29332:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31480, - "name": "maxDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 33073 - ], - "referencedDeclaration": 33073, - "src": "29321:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 31482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29321:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29301:40:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31484, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31446, - "src": "29355:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 31485, - "name": "maxAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31479, - "src": "29364:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29355:18:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31492, - "nodeType": "IfStatement", - "src": "29351:75:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 31488, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31446, - "src": "29408:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31489, - "name": "maxAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31479, - "src": "29416:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31487, - "name": "Cellar__DepositRestricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31443, - "src": "29382:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 31490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29382:44:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31491, - "nodeType": "RevertStatement", - "src": "29375:51:41" - } - } - ] - }, - "baseFunctions": [ - 35102 - ], - "documentation": { - "id": 31444, - "nodeType": "StructuredDocumentation", - "src": "28784:172:41", - "text": " @notice called at the beginning of deposit.\n @param assets amount of assets deposited by user.\n @param receiver address receiving the shares." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "beforeDeposit", - "nameLocation": "28970:13:41", - "overrides": { - "id": 31452, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "29041:8:41" - }, - "parameters": { - "id": 31451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31446, - "mutability": "mutable", - "name": "assets", - "nameLocation": "28992:6:41", - "nodeType": "VariableDeclaration", - "scope": 31494, - "src": "28984:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31445, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28984:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31448, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31494, - "src": "29000:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29000:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31450, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "29017:8:41", - "nodeType": "VariableDeclaration", - "scope": 31494, - "src": "29009:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29009:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "28983:43:41" - }, - "returnParameters": { - "id": 31453, - "nodeType": "ParameterList", - "parameters": [], - "src": "29050:0:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31518, - "nodeType": "FunctionDefinition", - "src": "29557:195:41", - "nodes": [], - "body": { - "id": 31517, - "nodeType": "Block", - "src": "29640:112:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 31506, - "name": "holdingPosition", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30336, - "src": "29661:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 31507, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31497, - "src": "29678:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31505, - "name": "_depositTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33129, - "src": "29650:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint256_$returns$__$", - "typeString": "function (uint32,uint256)" - } - }, - "id": 31508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29650:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31509, - "nodeType": "ExpressionStatement", - "src": "29650:35:41" - }, - { - "expression": { - "id": 31515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 31510, - "name": "userShareLockStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31320, - "src": "29695:22:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 31512, - "indexExpression": { - "id": 31511, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31501, - "src": "29718:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29695:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 31513, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "29730:5:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 31514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29736:9:41", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "29730:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29695:50:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31516, - "nodeType": "ExpressionStatement", - "src": "29695:50:41" - } - ] - }, - "baseFunctions": [ - 35112 - ], - "documentation": { - "id": 31495, - "nodeType": "StructuredDocumentation", - "src": "29439:113:41", - "text": " @notice called at the end of deposit.\n @param assets amount of assets deposited by user." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "afterDeposit", - "nameLocation": "29566:12:41", - "overrides": { - "id": 31503, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "29631:8:41" - }, - "parameters": { - "id": 31502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31497, - "mutability": "mutable", - "name": "assets", - "nameLocation": "29587:6:41", - "nodeType": "VariableDeclaration", - "scope": 31518, - "src": "29579:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29579:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31499, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31518, - "src": "29595:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31498, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29595:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31501, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "29612:8:41", - "nodeType": "VariableDeclaration", - "scope": 31518, - "src": "29604:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31500, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29604:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "29578:43:41" - }, - "returnParameters": { - "id": 31504, - "nodeType": "ParameterList", - "parameters": [], - "src": "29640:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31539, - "nodeType": "FunctionDefinition", - "src": "29826:209:41", - "nodes": [], - "body": { - "id": 31538, - "nodeType": "Block", - "src": "29915:120:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31531, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "29925:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 31532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29925:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31533, - "nodeType": "ExpressionStatement", - "src": "29925:16:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31535, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31527, - "src": "30022:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31534, - "name": "_checkIfSharesLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31388, - "src": "30001:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", - "typeString": "function (address) view" - } - }, - "id": 31536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30001:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31537, - "nodeType": "ExpressionStatement", - "src": "30001:27:41" - } - ] - }, - "baseFunctions": [ - 35124 - ], - "documentation": { - "id": 31519, - "nodeType": "StructuredDocumentation", - "src": "29758:63:41", - "text": " @notice called at the beginning of withdraw." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "beforeWithdraw", - "nameLocation": "29835:14:41", - "overrides": { - "id": 31529, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "29906:8:41" - }, - "parameters": { - "id": 31528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31521, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31539, - "src": "29850:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31520, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29850:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31523, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31539, - "src": "29859:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29859:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31525, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 31539, - "src": "29868:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31524, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29868:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31527, - "mutability": "mutable", - "name": "owner", - "nameLocation": "29885:5:41", - "nodeType": "VariableDeclaration", - "scope": 31539, - "src": "29877:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31526, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29877:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "29849:42:41" - }, - "returnParameters": { - "id": 31530, - "nodeType": "ParameterList", - "parameters": [], - "src": "29915:0:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31586, - "nodeType": "FunctionDefinition", - "src": "30041:412:41", - "nodes": [], - "body": { - "id": 31585, - "nodeType": "Block", - "src": "30116:337:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 31549, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31541, - "src": "30140:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31550, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31543, - "src": "30148:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31551, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31545, - "src": "30156:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31548, - "name": "beforeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 31494 - ], - "referencedDeclaration": 31494, - "src": "30126:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address) view" - } - }, - "id": 31552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30126:39:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31553, - "nodeType": "ExpressionStatement", - "src": "30126:39:41" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 31557, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "30268:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30272:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "30268:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 31561, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "30288:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - ], - "id": 31560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30280:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 31559, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30280:7:41", - "typeDescriptions": {} - } - }, - "id": 31562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30280:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31563, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31541, - "src": "30295:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31554, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "30245:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 31556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30251:16:41", - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 35266, - "src": "30245:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$34556_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$34556_$", - "typeString": "function (contract ERC20,address,address,uint256)" - } - }, - "id": 31564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30245:57:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31565, - "nodeType": "ExpressionStatement", - "src": "30245:57:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31567, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31545, - "src": "30319:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31568, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31543, - "src": "30329:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31566, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34527, - "src": "30313:5:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 31569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30313:23:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31570, - "nodeType": "ExpressionStatement", - "src": "30313:23:41" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 31572, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "30360:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30364:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "30360:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31574, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31545, - "src": "30372:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31575, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31541, - "src": "30382:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31576, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31543, - "src": "30390:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31571, - "name": "Deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34584, - "src": "30352:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 31577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30352:45:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31578, - "nodeType": "EmitStatement", - "src": "30347:50:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31580, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31541, - "src": "30421:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31581, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31543, - "src": "30429:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31582, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31545, - "src": "30437:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31579, - "name": "afterDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 31518 - ], - "referencedDeclaration": 31518, - "src": "30408:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address)" - } - }, - "id": 31583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30408:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31584, - "nodeType": "ExpressionStatement", - "src": "30408:38:41" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_enter", - "nameLocation": "30050:6:41", - "parameters": { - "id": 31546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31541, - "mutability": "mutable", - "name": "assets", - "nameLocation": "30065:6:41", - "nodeType": "VariableDeclaration", - "scope": 31586, - "src": "30057:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30057:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31543, - "mutability": "mutable", - "name": "shares", - "nameLocation": "30081:6:41", - "nodeType": "VariableDeclaration", - "scope": 31586, - "src": "30073:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31542, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30073:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31545, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "30097:8:41", - "nodeType": "VariableDeclaration", - "scope": 31586, - "src": "30089:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30089:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "30056:50:41" - }, - "returnParameters": { - "id": 31547, - "nodeType": "ParameterList", - "parameters": [], - "src": "30116:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31625, - "nodeType": "FunctionDefinition", - "src": "30724:483:41", - "nodes": [], - "body": { - "id": 31624, - "nodeType": "Block", - "src": "30829:378:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31600 - ], - "declarations": [ - { - "constant": false, - "id": 31600, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "30951:12:41", - "nodeType": "VariableDeclaration", - "scope": 31624, - "src": "30943:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30943:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31604, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 31602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "30978:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31601, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "30966:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 31603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30966:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30943:41:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 31610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31605, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31597, - "src": "31075:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31607, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31589, - "src": "31101:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31608, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31600, - "src": "31109:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31606, - "name": "_convertToShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32582, - "src": "31084:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 31609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31084:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31075:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 31611, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31074:49:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 31612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31127:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "31074:54:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31617, - "nodeType": "IfStatement", - "src": "31070:87:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31614, - "name": "Cellar__ZeroShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31273, - "src": "31137:18:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31137:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31616, - "nodeType": "RevertStatement", - "src": "31130:27:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 31619, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31589, - "src": "31175:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31620, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31597, - "src": "31183:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31621, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31591, - "src": "31191:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31618, - "name": "_enter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "31168:6:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address)" - } - }, - "id": 31622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31168:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31623, - "nodeType": "ExpressionStatement", - "src": "31168:32:41" - } - ] - }, - "baseFunctions": [ - 34680 - ], - "documentation": { - "id": 31587, - "nodeType": "StructuredDocumentation", - "src": "30459:260:41", - "text": " @notice Deposits assets into the cellar, and returns shares to receiver.\n @param assets amount of assets deposited by user.\n @param receiver address to receive the shares.\n @return shares amount of shares given for deposit." - }, - "functionSelector": "6e553f65", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31595, - "kind": "modifierInvocation", - "modifierName": { - "id": 31594, - "name": "nonReentrant", - "nameLocations": [ - "30791:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30130, - "src": "30791:12:41" - }, - "nodeType": "ModifierInvocation", - "src": "30791:12:41" - } - ], - "name": "deposit", - "nameLocation": "30733:7:41", - "overrides": { - "id": 31593, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "30782:8:41" - }, - "parameters": { - "id": 31592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31589, - "mutability": "mutable", - "name": "assets", - "nameLocation": "30749:6:41", - "nodeType": "VariableDeclaration", - "scope": 31625, - "src": "30741:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31588, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30741:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31591, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "30765:8:41", - "nodeType": "VariableDeclaration", - "scope": 31625, - "src": "30757:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30757:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "30740:34:41" - }, - "returnParameters": { - "id": 31598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31597, - "mutability": "mutable", - "name": "shares", - "nameLocation": "30821:6:41", - "nodeType": "VariableDeclaration", - "scope": 31625, - "src": "30813:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31596, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30813:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "30812:16:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31664, - "nodeType": "FunctionDefinition", - "src": "31483:507:41", - "nodes": [], - "body": { - "id": 31663, - "nodeType": "Block", - "src": "31585:405:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31639 - ], - "declarations": [ - { - "constant": false, - "id": 31639, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "31707:12:41", - "nodeType": "VariableDeclaration", - "scope": 31663, - "src": "31699:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31638, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31699:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31643, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 31641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31734:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31640, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "31722:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 31642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31722:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31699:41:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 31649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31644, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31636, - "src": "31862:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31646, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31628, - "src": "31884:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31647, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31639, - "src": "31892:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31645, - "name": "_previewMint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32616, - "src": "31871:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 31648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31871:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31862:43:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 31650, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "31861:45:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 31651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31910:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "31861:50:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31656, - "nodeType": "IfStatement", - "src": "31857:83:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31653, - "name": "Cellar__ZeroAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31276, - "src": "31920:18:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31920:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31655, - "nodeType": "RevertStatement", - "src": "31913:27:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 31658, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31636, - "src": "31958:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31659, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31628, - "src": "31966:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31660, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31630, - "src": "31974:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31657, - "name": "_enter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "31951:6:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address)" - } - }, - "id": 31661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31951:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31662, - "nodeType": "ExpressionStatement", - "src": "31951:32:41" - } - ] - }, - "baseFunctions": [ - 34733 - ], - "documentation": { - "id": 31626, - "nodeType": "StructuredDocumentation", - "src": "31213:265:41", - "text": " @notice Mints shares from the cellar, and returns shares to receiver.\n @param shares amount of shares requested by user.\n @param receiver address to receive the shares.\n @return assets amount of assets deposited into the cellar." - }, - "functionSelector": "94bf804d", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31634, - "kind": "modifierInvocation", - "modifierName": { - "id": 31633, - "name": "nonReentrant", - "nameLocations": [ - "31547:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30130, - "src": "31547:12:41" - }, - "nodeType": "ModifierInvocation", - "src": "31547:12:41" - } - ], - "name": "mint", - "nameLocation": "31492:4:41", - "overrides": { - "id": 31632, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "31538:8:41" - }, - "parameters": { - "id": 31631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31628, - "mutability": "mutable", - "name": "shares", - "nameLocation": "31505:6:41", - "nodeType": "VariableDeclaration", - "scope": 31664, - "src": "31497:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31497:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31630, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "31521:8:41", - "nodeType": "VariableDeclaration", - "scope": 31664, - "src": "31513:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31629, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31513:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "31496:34:41" - }, - "returnParameters": { - "id": 31637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31636, - "mutability": "mutable", - "name": "assets", - "nameLocation": "31577:6:41", - "nodeType": "VariableDeclaration", - "scope": 31664, - "src": "31569:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31635, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31569:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "31568:16:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31736, - "nodeType": "FunctionDefinition", - "src": "31996:654:41", - "nodes": [], - "body": { - "id": 31735, - "nodeType": "Block", - "src": "32085:565:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 31676, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31666, - "src": "32110:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31677, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31668, - "src": "32118:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31678, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31670, - "src": "32126:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31679, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32136:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31675, - "name": "beforeWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 31539 - ], - "referencedDeclaration": 31539, - "src": "32095:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address,address) view" - } - }, - "id": 31680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32095:47:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31681, - "nodeType": "ExpressionStatement", - "src": "32095:47:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 31685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 31682, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32157:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32161:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32157:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 31684, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32171:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "32157:19:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31715, - "nodeType": "IfStatement", - "src": "32153:228:41", - "trueBody": { - "id": 31714, - "nodeType": "Block", - "src": "32178:203:41", - "statements": [ - { - "assignments": [ - 31687 - ], - "declarations": [ - { - "constant": false, - "id": 31687, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "32200:7:41", - "nodeType": "VariableDeclaration", - "scope": 31714, - "src": "32192:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32192:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31694, - "initialValue": { - "baseExpression": { - "baseExpression": { - "id": 31688, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34205, - "src": "32210:9:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 31690, - "indexExpression": { - "id": 31689, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32220:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32210:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 31693, - "indexExpression": { - "expression": { - "id": 31691, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32227:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32231:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32227:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32210:28:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32192:46:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31695, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31687, - "src": "32293:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 31698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "32309:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 31697, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32309:7:41", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 31696, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "32304:4:41", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32304:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 31700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "32318:3:41", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "32304:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32293:28:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31713, - "nodeType": "IfStatement", - "src": "32289:81:41", - "trueBody": { - "expression": { - "id": 31711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 31702, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34205, - "src": "32323:9:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 31706, - "indexExpression": { - "id": 31703, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32333:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32323:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 31707, - "indexExpression": { - "expression": { - "id": 31704, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32340:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32344:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32340:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32323:28:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31708, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31687, - "src": "32354:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 31709, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31668, - "src": "32364:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32354:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32323:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31712, - "nodeType": "ExpressionStatement", - "src": "32323:47:41" - } - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 31717, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32397:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31718, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31668, - "src": "32404:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31716, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34555, - "src": "32391:5:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 31719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32391:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31720, - "nodeType": "ExpressionStatement", - "src": "32391:20:41" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 31722, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32436:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32440:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32436:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31724, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31670, - "src": "32448:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31725, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31672, - "src": "32458:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31726, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31666, - "src": "32465:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31727, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31668, - "src": "32473:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31721, - "name": "Withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34596, - "src": "32427:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 31728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32427:53:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31729, - "nodeType": "EmitStatement", - "src": "32422:58:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31731, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31666, - "src": "32507:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31732, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31670, - "src": "32515:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31730, - "name": "_withdrawInOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32022, - "src": "32490:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address)" - } - }, - "id": 31733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32490:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31734, - "nodeType": "ExpressionStatement", - "src": "32490:34:41" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exit", - "nameLocation": "32005:5:41", - "parameters": { - "id": 31673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31666, - "mutability": "mutable", - "name": "assets", - "nameLocation": "32019:6:41", - "nodeType": "VariableDeclaration", - "scope": 31736, - "src": "32011:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32011:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31668, - "mutability": "mutable", - "name": "shares", - "nameLocation": "32035:6:41", - "nodeType": "VariableDeclaration", - "scope": 31736, - "src": "32027:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32027:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31670, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "32051:8:41", - "nodeType": "VariableDeclaration", - "scope": 31736, - "src": "32043:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32043:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31672, - "mutability": "mutable", - "name": "owner", - "nameLocation": "32069:5:41", - "nodeType": "VariableDeclaration", - "scope": 31736, - "src": "32061:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32061:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "32010:65:41" - }, - "returnParameters": { - "id": 31674, - "nodeType": "ParameterList", - "parameters": [], - "src": "32085:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31772, - "nodeType": "FunctionDefinition", - "src": "33530:497:41", - "nodes": [], - "body": { - "id": 31771, - "nodeType": "Block", - "src": "33681:346:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31752 - ], - "declarations": [ - { - "constant": false, - "id": 31752, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "33803:12:41", - "nodeType": "VariableDeclaration", - "scope": 31771, - "src": "33795:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31751, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33795:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31756, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 31754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33830:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31753, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "33818:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 31755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33818:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33795:41:41" - }, - { - "expression": { - "id": 31762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31757, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31749, - "src": "33924:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31759, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31739, - "src": "33950:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31760, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31752, - "src": "33958:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31758, - "name": "_previewWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32650, - "src": "33933:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 31761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33933:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33924:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31763, - "nodeType": "ExpressionStatement", - "src": "33924:47:41" - }, - { - "expression": { - "arguments": [ - { - "id": 31765, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31739, - "src": "33988:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31766, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31749, - "src": "33996:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31767, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31741, - "src": "34004:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31768, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31743, - "src": "34014:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31764, - "name": "_exit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31736, - "src": "33982:5:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address,address)" - } - }, - "id": 31769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33982:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31770, - "nodeType": "ExpressionStatement", - "src": "33982:38:41" - } - ] - }, - "baseFunctions": [ - 34820 - ], - "documentation": { - "id": 31737, - "nodeType": "StructuredDocumentation", - "src": "32656:869:41", - "text": " @notice Withdraw assets from the cellar by redeeming shares.\n @dev Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver.\n Since there are no swaps involved in this function, the receiver may receive multiple\n assets. The value of all the assets returned will be equal to the amount defined by\n `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets`\n is 1000, then the receiver will receive $1000 worth of assets in either one or many\n tokens).\n @param assets equivalent value of the assets withdrawn, denominated in the cellar's asset\n @param receiver address that will receive withdrawn assets\n @param owner address that owns the shares being redeemed\n @return shares amount of shares redeemed" - }, - "functionSelector": "b460af94", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31747, - "kind": "modifierInvocation", - "modifierName": { - "id": 31746, - "name": "nonReentrant", - "nameLocations": [ - "33643:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30130, - "src": "33643:12:41" - }, - "nodeType": "ModifierInvocation", - "src": "33643:12:41" - } - ], - "name": "withdraw", - "nameLocation": "33539:8:41", - "overrides": { - "id": 31745, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "33634:8:41" - }, - "parameters": { - "id": 31744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31739, - "mutability": "mutable", - "name": "assets", - "nameLocation": "33565:6:41", - "nodeType": "VariableDeclaration", - "scope": 31772, - "src": "33557:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31738, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33557:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31741, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "33589:8:41", - "nodeType": "VariableDeclaration", - "scope": 31772, - "src": "33581:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33581:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31743, - "mutability": "mutable", - "name": "owner", - "nameLocation": "33615:5:41", - "nodeType": "VariableDeclaration", - "scope": 31772, - "src": "33607:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31742, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33607:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "33547:79:41" - }, - "returnParameters": { - "id": 31750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31749, - "mutability": "mutable", - "name": "shares", - "nameLocation": "33673:6:41", - "nodeType": "VariableDeclaration", - "scope": 31772, - "src": "33665:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31748, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33665:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "33664:16:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31814, - "nodeType": "FunctionDefinition", - "src": "34905:532:41", - "nodes": [], - "body": { - "id": 31813, - "nodeType": "Block", - "src": "35054:383:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31788 - ], - "declarations": [ - { - "constant": false, - "id": 31788, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "35176:12:41", - "nodeType": "VariableDeclaration", - "scope": 31813, - "src": "35168:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35168:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31792, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 31790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35203:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 31789, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "35191:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 31791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35191:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35168:41:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 31798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31793, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31785, - "src": "35299:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31795, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31775, - "src": "35325:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31796, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31788, - "src": "35333:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31794, - "name": "_convertToAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32548, - "src": "35308:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 31797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35308:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "35299:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 31799, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "35298:49:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 31800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35351:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "35298:54:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31805, - "nodeType": "IfStatement", - "src": "35294:87:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31802, - "name": "Cellar__ZeroAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31276, - "src": "35361:18:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35361:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31804, - "nodeType": "RevertStatement", - "src": "35354:27:41" - } - }, - { - "expression": { - "arguments": [ - { - "id": 31807, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31785, - "src": "35398:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31808, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31775, - "src": "35406:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 31809, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31777, - "src": "35414:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 31810, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31779, - "src": "35424:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31806, - "name": "_exit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31736, - "src": "35392:5:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address,address)" - } - }, - "id": 31811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35392:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31812, - "nodeType": "ExpressionStatement", - "src": "35392:38:41" - } - ] - }, - "baseFunctions": [ - 34913 - ], - "documentation": { - "id": 31773, - "nodeType": "StructuredDocumentation", - "src": "34033:867:41", - "text": " @notice Redeem shares to withdraw assets from the cellar.\n @dev Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver.\n Since there are no swaps involved in this function, the receiver may receive multiple\n assets. The value of all the assets returned will be equal to the amount defined by\n `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets`\n is 1000, then the receiver will receive $1000 worth of assets in either one or many\n tokens).\n @param shares amount of shares to redeem\n @param receiver address that will receive withdrawn assets\n @param owner address that owns the shares being redeemed\n @return assets equivalent value of the assets withdrawn, denominated in the cellar's asset" - }, - "functionSelector": "ba087652", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 31783, - "kind": "modifierInvocation", - "modifierName": { - "id": 31782, - "name": "nonReentrant", - "nameLocations": [ - "35016:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30130, - "src": "35016:12:41" - }, - "nodeType": "ModifierInvocation", - "src": "35016:12:41" - } - ], - "name": "redeem", - "nameLocation": "34914:6:41", - "overrides": { - "id": 31781, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "35007:8:41" - }, - "parameters": { - "id": 31780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31775, - "mutability": "mutable", - "name": "shares", - "nameLocation": "34938:6:41", - "nodeType": "VariableDeclaration", - "scope": 31814, - "src": "34930:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31774, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34930:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31777, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "34962:8:41", - "nodeType": "VariableDeclaration", - "scope": 31814, - "src": "34954:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31776, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34954:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31779, - "mutability": "mutable", - "name": "owner", - "nameLocation": "34988:5:41", - "nodeType": "VariableDeclaration", - "scope": 31814, - "src": "34980:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31778, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34980:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "34920:79:41" - }, - "returnParameters": { - "id": 31786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31785, - "mutability": "mutable", - "name": "assets", - "nameLocation": "35046:6:41", - "nodeType": "VariableDeclaration", - "scope": 31814, - "src": "35038:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35038:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "35037:16:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 31823, - "nodeType": "StructDefinition", - "src": "35615:142:41", - "nodes": [], - "canonicalName": "Cellar.WithdrawPricing", - "members": [ - { - "constant": false, - "id": 31816, - "mutability": "mutable", - "name": "priceBaseUSD", - "nameLocation": "35656:12:41", - "nodeType": "VariableDeclaration", - "scope": 31823, - "src": "35648:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31815, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35648:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31818, - "mutability": "mutable", - "name": "oneBase", - "nameLocation": "35686:7:41", - "nodeType": "VariableDeclaration", - "scope": 31823, - "src": "35678:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31817, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35678:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31820, - "mutability": "mutable", - "name": "priceQuoteUSD", - "nameLocation": "35711:13:41", - "nodeType": "VariableDeclaration", - "scope": 31823, - "src": "35703:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35703:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31822, - "mutability": "mutable", - "name": "oneQuote", - "nameLocation": "35742:8:41", - "nodeType": "VariableDeclaration", - "scope": 31823, - "src": "35734:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35734:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "WithdrawPricing", - "nameLocation": "35622:15:41", - "scope": 33437, - "visibility": "public" - }, - { - "id": 31827, - "nodeType": "VariableDeclaration", - "src": "35857:52:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 31824, - "nodeType": "StructuredDocumentation", - "src": "35763:89:41", - "text": " @notice Multipler used to insure calculations use very high precision." - }, - "mutability": "constant", - "name": "PRECISION_MULTIPLIER", - "nameLocation": "35882:20:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31825, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35857:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31653138", - "id": 31826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35905:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - }, - "visibility": "private" - }, - { - "id": 32022, - "nodeType": "FunctionDefinition", - "src": "36220:2540:41", - "nodes": [], - "body": { - "id": 32021, - "nodeType": "Block", - "src": "36289:2471:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 31837 - ], - "declarations": [ - { - "constant": false, - "id": 31837, - "mutability": "mutable", - "name": "pricingInfo", - "nameLocation": "36397:11:41", - "nodeType": "VariableDeclaration", - "scope": 32021, - "src": "36374:34:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing" - }, - "typeName": { - "id": 31836, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 31835, - "name": "WithdrawPricing", - "nameLocations": [ - "36374:15:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 31823, - "src": "36374:15:41" - }, - "referencedDeclaration": 31823, - "src": "36374:15:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_storage_ptr", - "typeString": "struct Cellar.WithdrawPricing" - } - }, - "visibility": "internal" - } - ], - "id": 31838, - "nodeType": "VariableDeclarationStatement", - "src": "36374:34:41" - }, - { - "expression": { - "id": 31846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31839, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "36418:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31841, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "36430:13:41", - "memberName": "priceQuoteUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31820, - "src": "36418:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31844, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "36472:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "expression": { - "id": 31842, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "36446:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 31843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36458:13:41", - "memberName": "getPriceInUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 49990, - "src": "36446:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_ERC20_$34556_$returns$_t_uint256_$", - "typeString": "function (contract ERC20) view external returns (uint256)" - } - }, - "id": 31845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36446:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36418:60:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31847, - "nodeType": "ExpressionStatement", - "src": "36418:60:41" - }, - { - "expression": { - "id": 31856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31848, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "36488:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31850, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "36500:8:41", - "memberName": "oneQuote", - "nodeType": "MemberAccess", - "referencedDeclaration": 31822, - "src": "36488:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 31851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36511:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 31852, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "36517:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 31853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36523:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "36517:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 31854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36517:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "36511:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36488:45:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31857, - "nodeType": "ExpressionStatement", - "src": "36488:45:41" - }, - { - "assignments": [ - 31859 - ], - "declarations": [ - { - "constant": false, - "id": 31859, - "mutability": "mutable", - "name": "creditLength", - "nameLocation": "36551:12:41", - "nodeType": "VariableDeclaration", - "scope": 32021, - "src": "36543:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31858, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36543:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31862, - "initialValue": { - "expression": { - "id": 31860, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "36566:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 31861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36582:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "36566:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36543:45:41" - }, - { - "body": { - "id": 32011, - "nodeType": "Block", - "src": "36637:1987:41", - "statements": [ - { - "assignments": [ - 31873 - ], - "declarations": [ - { - "constant": false, - "id": 31873, - "mutability": "mutable", - "name": "position", - "nameLocation": "36658:8:41", - "nodeType": "VariableDeclaration", - "scope": 32011, - "src": "36651:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 31872, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "36651:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 31877, - "initialValue": { - "baseExpression": { - "id": 31874, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "36669:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 31876, - "indexExpression": { - "id": 31875, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31864, - "src": "36685:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36669:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36651:36:41" - }, - { - "assignments": [ - 31879 - ], - "declarations": [ - { - "constant": false, - "id": 31879, - "mutability": "mutable", - "name": "withdrawableBalance", - "nameLocation": "36709:19:41", - "nodeType": "VariableDeclaration", - "scope": 32011, - "src": "36701:27:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31878, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36701:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31883, - "initialValue": { - "arguments": [ - { - "id": 31881, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31873, - "src": "36749:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 31880, - "name": "_withdrawableFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33201, - "src": "36731:17:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 31882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36731:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36701:57:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31884, - "name": "withdrawableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31879, - "src": "36838:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 31885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36861:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36838:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 31888, - "nodeType": "IfStatement", - "src": "36834:38:41", - "trueBody": { - "id": 31887, - "nodeType": "Continue", - "src": "36864:8:41" - } - }, - { - "assignments": [ - 31891 - ], - "declarations": [ - { - "constant": false, - "id": 31891, - "mutability": "mutable", - "name": "positionAsset", - "nameLocation": "36892:13:41", - "nodeType": "VariableDeclaration", - "scope": 32011, - "src": "36886:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - }, - "typeName": { - "id": 31890, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 31889, - "name": "ERC20", - "nameLocations": [ - "36886:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "36886:5:41" - }, - "referencedDeclaration": 34556, - "src": "36886:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "visibility": "internal" - } - ], - "id": 31895, - "initialValue": { - "arguments": [ - { - "id": 31893, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31873, - "src": "36917:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 31892, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "36908:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 31894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36908:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36886:40:41" - }, - { - "expression": { - "id": 31903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31896, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "36941:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31898, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "36953:12:41", - "memberName": "priceBaseUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31816, - "src": "36941:24:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 31901, - "name": "positionAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31891, - "src": "36994:13:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "expression": { - "id": 31899, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "36968:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 31900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36980:13:41", - "memberName": "getPriceInUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 49990, - "src": "36968:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_ERC20_$34556_$returns$_t_uint256_$", - "typeString": "function (contract ERC20) view external returns (uint256)" - } - }, - "id": 31902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36968:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36941:67:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31904, - "nodeType": "ExpressionStatement", - "src": "36941:67:41" - }, - { - "expression": { - "id": 31913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 31905, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "37022:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31907, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "37034:7:41", - "memberName": "oneBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 31818, - "src": "37022:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 31908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37044:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 31909, - "name": "positionAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31891, - "src": "37050:13:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 31910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37064:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "37050:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 31911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37050:24:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "37044:30:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37022:52:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31914, - "nodeType": "ExpressionStatement", - "src": "37022:52:41" - }, - { - "assignments": [ - 31916 - ], - "declarations": [ - { - "constant": false, - "id": 31916, - "mutability": "mutable", - "name": "totalWithdrawableBalanceInAssets", - "nameLocation": "37096:32:41", - "nodeType": "VariableDeclaration", - "scope": 32011, - "src": "37088:40:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31915, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37088:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31917, - "nodeType": "VariableDeclarationStatement", - "src": "37088:40:41" - }, - { - "id": 31947, - "nodeType": "Block", - "src": "37142:531:41", - "statements": [ - { - "assignments": [ - 31919 - ], - "declarations": [ - { - "constant": false, - "id": 31919, - "mutability": "mutable", - "name": "withdrawableBalanceInUSD", - "nameLocation": "37168:24:41", - "nodeType": "VariableDeclaration", - "scope": 31947, - "src": "37160:32:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37160:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31930, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 31925, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "37272:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37284:12:41", - "memberName": "priceBaseUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31816, - "src": "37272:24:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 31927, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "37318:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37330:7:41", - "memberName": "oneBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 31818, - "src": "37318:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31920, - "name": "PRECISION_MULTIPLIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31827, - "src": "37196:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 31921, - "name": "withdrawableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31879, - "src": "37219:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37196:42:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 31923, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37195:44:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37240:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "37195:55:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 31929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37195:160:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37160:195:41" - }, - { - "expression": { - "id": 31939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31931, - "name": "totalWithdrawableBalanceInAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31916, - "src": "37373:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 31934, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "37465:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31935, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37477:8:41", - "memberName": "oneQuote", - "nodeType": "MemberAccess", - "referencedDeclaration": 31822, - "src": "37465:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 31936, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "37507:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31937, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37519:13:41", - "memberName": "priceQuoteUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31820, - "src": "37507:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31932, - "name": "withdrawableBalanceInUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31919, - "src": "37408:24:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37433:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "37408:35:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 31938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37408:142:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37373:177:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31940, - "nodeType": "ExpressionStatement", - "src": "37373:177:41" - }, - { - "expression": { - "id": 31945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31941, - "name": "totalWithdrawableBalanceInAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31916, - "src": "37568:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31942, - "name": "totalWithdrawableBalanceInAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31916, - "src": "37603:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 31943, - "name": "PRECISION_MULTIPLIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31827, - "src": "37638:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37603:55:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37568:90:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31946, - "nodeType": "ExpressionStatement", - "src": "37568:90:41" - } - ] - }, - { - "assignments": [ - 31949 - ], - "declarations": [ - { - "constant": false, - "id": 31949, - "mutability": "mutable", - "name": "amount", - "nameLocation": "37789:6:41", - "nodeType": "VariableDeclaration", - "scope": 32011, - "src": "37781:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31948, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37781:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31950, - "nodeType": "VariableDeclarationStatement", - "src": "37781:14:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31951, - "name": "totalWithdrawableBalanceInAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31916, - "src": "37814:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 31952, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "37849:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37814:41:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 31998, - "nodeType": "Block", - "src": "38302:129:41", - "statements": [ - { - "expression": { - "id": 31990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31988, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31949, - "src": "38320:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 31989, - "name": "withdrawableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31879, - "src": "38329:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38320:28:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31991, - "nodeType": "ExpressionStatement", - "src": "38320:28:41" - }, - { - "expression": { - "id": 31996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31992, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38366:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31993, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38375:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 31994, - "name": "totalWithdrawableBalanceInAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31916, - "src": "38384:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38375:41:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38366:50:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31997, - "nodeType": "ExpressionStatement", - "src": "38366:50:41" - } - ] - }, - "id": 31999, - "nodeType": "IfStatement", - "src": "37810:621:41", - "trueBody": { - "id": 31987, - "nodeType": "Block", - "src": "37857:439:41", - "statements": [ - { - "assignments": [ - 31955 - ], - "declarations": [ - { - "constant": false, - "id": 31955, - "mutability": "mutable", - "name": "assetsInUSD", - "nameLocation": "37938:11:41", - "nodeType": "VariableDeclaration", - "scope": 31987, - "src": "37930:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37930:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31966, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 31961, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "38016:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31962, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38028:13:41", - "memberName": "priceQuoteUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31820, - "src": "38016:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 31963, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "38063:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31964, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38075:8:41", - "memberName": "oneQuote", - "nodeType": "MemberAccess", - "referencedDeclaration": 31822, - "src": "38063:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31956, - "name": "PRECISION_MULTIPLIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31827, - "src": "37953:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 31957, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "37976:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37953:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 31959, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37952:31:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37984:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "37952:42:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 31965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37952:149:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37930:171:41" - }, - { - "expression": { - "id": 31975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31967, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31949, - "src": "38119:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 31970, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "38151:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38163:7:41", - "memberName": "oneBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 31818, - "src": "38151:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 31972, - "name": "pricingInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31837, - "src": "38172:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawPricing_$31823_memory_ptr", - "typeString": "struct Cellar.WithdrawPricing memory" - } - }, - "id": 31973, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38184:12:41", - "memberName": "priceBaseUSD", - "nodeType": "MemberAccess", - "referencedDeclaration": 31816, - "src": "38172:24:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 31968, - "name": "assetsInUSD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31955, - "src": "38128:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38140:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "38128:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 31974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38128:69:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38119:78:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31976, - "nodeType": "ExpressionStatement", - "src": "38119:78:41" - }, - { - "expression": { - "id": 31981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31949, - "src": "38215:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31978, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31949, - "src": "38224:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 31979, - "name": "PRECISION_MULTIPLIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31827, - "src": "38233:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38224:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38215:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31982, - "nodeType": "ExpressionStatement", - "src": "38215:38:41" - }, - { - "expression": { - "id": 31985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 31983, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38271:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 31984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38280:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "38271:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31986, - "nodeType": "ExpressionStatement", - "src": "38271:10:41" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 32001, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31873, - "src": "38498:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 32002, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31949, - "src": "38508:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32003, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31832, - "src": "38516:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 32000, - "name": "_withdrawFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33168, - "src": "38484:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint32,uint256,address)" - } - }, - "id": 32004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38484:41:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32005, - "nodeType": "ExpressionStatement", - "src": "38484:41:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32006, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38595:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38605:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "38595:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32010, - "nodeType": "IfStatement", - "src": "38591:22:41", - "trueBody": { - "id": 32009, - "nodeType": "Break", - "src": "38608:5:41" - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 31866, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31864, - "src": "36614:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 31867, - "name": "creditLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31859, - "src": "36618:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "36614:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32012, - "initializationExpression": { - "assignments": [ - 31864 - ], - "declarations": [ - { - "constant": false, - "id": 31864, - "mutability": "mutable", - "name": "i", - "nameLocation": "36611:1:41", - "nodeType": "VariableDeclaration", - "scope": 32012, - "src": "36603:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36603:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 31865, - "nodeType": "VariableDeclarationStatement", - "src": "36603:9:41" - }, - "loopExpression": { - "expression": { - "id": 31870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "36632:3:41", - "subExpression": { - "id": 31869, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31864, - "src": "36634:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31871, - "nodeType": "ExpressionStatement", - "src": "36632:3:41" - }, - "nodeType": "ForStatement", - "src": "36598:2026:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32013, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38700:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 32014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38709:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "38700:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32020, - "nodeType": "IfStatement", - "src": "38696:57:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 32017, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31830, - "src": "38746:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32016, - "name": "Cellar__IncompleteWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31281, - "src": "38719:26:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 32018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38719:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32019, - "nodeType": "RevertStatement", - "src": "38712:41:41" - } - } - ] - }, - "documentation": { - "id": 31828, - "nodeType": "StructuredDocumentation", - "src": "35916:299:41", - "text": " @dev Withdraw from positions in the order defined by `positions`.\n @param assets the amount of assets to withdraw from cellar\n @param receiver the address to sent withdrawn assets to\n @dev Only loop through credit array because debt can not be withdraw by users." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_withdrawInOrder", - "nameLocation": "36229:16:41", - "parameters": { - "id": 31833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31830, - "mutability": "mutable", - "name": "assets", - "nameLocation": "36254:6:41", - "nodeType": "VariableDeclaration", - "scope": 32022, - "src": "36246:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36246:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31832, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "36270:8:41", - "nodeType": "VariableDeclaration", - "scope": 32022, - "src": "36262:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36262:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "36245:34:41" - }, - "returnParameters": { - "id": 31834, - "nodeType": "ParameterList", - "parameters": [], - "src": "36289:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32222, - "nodeType": "FunctionDefinition", - "src": "39162:1998:41", - "nodes": [], - "body": { - "id": 32221, - "nodeType": "Block", - "src": "39247:1913:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32031 - ], - "declarations": [ - { - "constant": false, - "id": 32031, - "mutability": "mutable", - "name": "numOfCreditPositions", - "nameLocation": "39265:20:41", - "nodeType": "VariableDeclaration", - "scope": 32221, - "src": "39257:28:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39257:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32034, - "initialValue": { - "expression": { - "id": 32032, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "39288:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 32033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "39304:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "39288:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "39257:53:41" - }, - { - "assignments": [ - 32039 - ], - "declarations": [ - { - "constant": false, - "id": 32039, - "mutability": "mutable", - "name": "creditAssets", - "nameLocation": "39335:12:41", - "nodeType": "VariableDeclaration", - "scope": 32221, - "src": "39320:27:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[]" - }, - "typeName": { - "baseType": { - "id": 32037, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32036, - "name": "ERC20", - "nameLocations": [ - "39320:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "39320:5:41" - }, - "referencedDeclaration": 34556, - "src": "39320:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32038, - "nodeType": "ArrayTypeName", - "src": "39320:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - }, - "visibility": "internal" - } - ], - "id": 32046, - "initialValue": { - "arguments": [ - { - "id": 32044, - "name": "numOfCreditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32031, - "src": "39362:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "39350:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (contract ERC20[] memory)" - }, - "typeName": { - "baseType": { - "id": 32041, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32040, - "name": "ERC20", - "nameLocations": [ - "39354:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "39354:5:41" - }, - "referencedDeclaration": 34556, - "src": "39354:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32042, - "nodeType": "ArrayTypeName", - "src": "39354:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - } - }, - "id": 32045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "39350:33:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "39320:63:41" - }, - { - "assignments": [ - 32051 - ], - "declarations": [ - { - "constant": false, - "id": 32051, - "mutability": "mutable", - "name": "creditBalances", - "nameLocation": "39410:14:41", - "nodeType": "VariableDeclaration", - "scope": 32221, - "src": "39393:31:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 32049, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39393:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32050, - "nodeType": "ArrayTypeName", - "src": "39393:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 32057, - "initialValue": { - "arguments": [ - { - "id": 32055, - "name": "numOfCreditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32031, - "src": "39441:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "39427:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 32052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39431:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32053, - "nodeType": "ArrayTypeName", - "src": "39431:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 32056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "39427:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "39393:69:41" - }, - { - "condition": { - "id": 32058, - "name": "reportWithdrawable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32025, - "src": "39552:18:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 32219, - "nodeType": "Block", - "src": "40068:1086:41", - "statements": [ - { - "assignments": [ - 32107 - ], - "declarations": [ - { - "constant": false, - "id": 32107, - "mutability": "mutable", - "name": "numOfDebtPositions", - "nameLocation": "40090:18:41", - "nodeType": "VariableDeclaration", - "scope": 32219, - "src": "40082:26:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40082:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32110, - "initialValue": { - "expression": { - "id": 32108, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "40111:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 32109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40125:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "40111:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40082:49:41" - }, - { - "assignments": [ - 32115 - ], - "declarations": [ - { - "constant": false, - "id": 32115, - "mutability": "mutable", - "name": "debtAssets", - "nameLocation": "40160:10:41", - "nodeType": "VariableDeclaration", - "scope": 32219, - "src": "40145:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[]" - }, - "typeName": { - "baseType": { - "id": 32113, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32112, - "name": "ERC20", - "nameLocations": [ - "40145:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "40145:5:41" - }, - "referencedDeclaration": 34556, - "src": "40145:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32114, - "nodeType": "ArrayTypeName", - "src": "40145:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - }, - "visibility": "internal" - } - ], - "id": 32122, - "initialValue": { - "arguments": [ - { - "id": 32120, - "name": "numOfDebtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32107, - "src": "40185:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "40173:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (contract ERC20[] memory)" - }, - "typeName": { - "baseType": { - "id": 32117, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32116, - "name": "ERC20", - "nameLocations": [ - "40177:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "40177:5:41" - }, - "referencedDeclaration": 34556, - "src": "40177:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32118, - "nodeType": "ArrayTypeName", - "src": "40177:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - } - }, - "id": 32121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40173:31:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40145:59:41" - }, - { - "assignments": [ - 32127 - ], - "declarations": [ - { - "constant": false, - "id": 32127, - "mutability": "mutable", - "name": "debtBalances", - "nameLocation": "40235:12:41", - "nodeType": "VariableDeclaration", - "scope": 32219, - "src": "40218:29:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 32125, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40218:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32126, - "nodeType": "ArrayTypeName", - "src": "40218:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 32133, - "initialValue": { - "arguments": [ - { - "id": 32131, - "name": "numOfDebtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32107, - "src": "40264:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32130, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "40250:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 32128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40254:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32129, - "nodeType": "ArrayTypeName", - "src": "40254:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 32132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40250:33:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40218:65:41" - }, - { - "body": { - "id": 32169, - "nodeType": "Block", - "src": "40344:318:41", - "statements": [ - { - "assignments": [ - 32144 - ], - "declarations": [ - { - "constant": false, - "id": 32144, - "mutability": "mutable", - "name": "position", - "nameLocation": "40369:8:41", - "nodeType": "VariableDeclaration", - "scope": 32169, - "src": "40362:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 32143, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "40362:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 32148, - "initialValue": { - "baseExpression": { - "id": 32145, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "40380:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 32147, - "indexExpression": { - "id": 32146, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32135, - "src": "40396:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40380:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40362:36:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 32155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32149, - "name": "creditBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32051, - "src": "40537:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 32151, - "indexExpression": { - "id": 32150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32135, - "src": "40552:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40537:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32153, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32144, - "src": "40568:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32152, - "name": "_balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "40557:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 32154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40557:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40537:40:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 32156, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40536:42:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40582:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "40536:47:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32160, - "nodeType": "IfStatement", - "src": "40532:61:41", - "trueBody": { - "id": 32159, - "nodeType": "Continue", - "src": "40585:8:41" - } - }, - { - "expression": { - "id": 32167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32161, - "name": "creditAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32039, - "src": "40611:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 32163, - "indexExpression": { - "id": 32162, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32135, - "src": "40624:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40611:15:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32165, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32144, - "src": "40638:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32164, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "40629:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 32166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40629:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "40611:36:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32168, - "nodeType": "ExpressionStatement", - "src": "40611:36:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32137, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32135, - "src": "40313:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 32138, - "name": "numOfCreditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32031, - "src": "40317:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40313:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32170, - "initializationExpression": { - "assignments": [ - 32135 - ], - "declarations": [ - { - "constant": false, - "id": 32135, - "mutability": "mutable", - "name": "i", - "nameLocation": "40310:1:41", - "nodeType": "VariableDeclaration", - "scope": 32170, - "src": "40302:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32134, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40302:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32136, - "nodeType": "VariableDeclarationStatement", - "src": "40302:9:41" - }, - "loopExpression": { - "expression": { - "id": 32141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "40339:3:41", - "subExpression": { - "id": 32140, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32135, - "src": "40341:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32142, - "nodeType": "ExpressionStatement", - "src": "40339:3:41" - }, - "nodeType": "ForStatement", - "src": "40297:365:41" - }, - { - "body": { - "id": 32206, - "nodeType": "Block", - "src": "40720:312:41", - "statements": [ - { - "assignments": [ - 32181 - ], - "declarations": [ - { - "constant": false, - "id": 32181, - "mutability": "mutable", - "name": "position", - "nameLocation": "40745:8:41", - "nodeType": "VariableDeclaration", - "scope": 32206, - "src": "40738:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 32180, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "40738:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 32185, - "initialValue": { - "baseExpression": { - "id": 32182, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "40756:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 32184, - "indexExpression": { - "id": 32183, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32172, - "src": "40770:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40756:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40738:34:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 32192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32186, - "name": "debtBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32127, - "src": "40911:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 32188, - "indexExpression": { - "id": 32187, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32172, - "src": "40924:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40911:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32190, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32181, - "src": "40940:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32189, - "name": "_balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "40929:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 32191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40929:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40911:38:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 32193, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40910:40:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40954:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "40910:45:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32197, - "nodeType": "IfStatement", - "src": "40906:59:41", - "trueBody": { - "id": 32196, - "nodeType": "Continue", - "src": "40957:8:41" - } - }, - { - "expression": { - "id": 32204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32198, - "name": "debtAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32115, - "src": "40983:10:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 32200, - "indexExpression": { - "id": 32199, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32172, - "src": "40994:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40983:13:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32202, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32181, - "src": "41008:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32201, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "40999:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 32203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40999:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "40983:34:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32205, - "nodeType": "ExpressionStatement", - "src": "40983:34:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32174, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32172, - "src": "40691:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 32175, - "name": "numOfDebtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32107, - "src": "40695:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40691:22:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32207, - "initializationExpression": { - "assignments": [ - 32172 - ], - "declarations": [ - { - "constant": false, - "id": 32172, - "mutability": "mutable", - "name": "i", - "nameLocation": "40688:1:41", - "nodeType": "VariableDeclaration", - "scope": 32207, - "src": "40680:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40680:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32173, - "nodeType": "VariableDeclarationStatement", - "src": "40680:9:41" - }, - "loopExpression": { - "expression": { - "id": 32178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "40715:3:41", - "subExpression": { - "id": 32177, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32172, - "src": "40717:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32179, - "nodeType": "ExpressionStatement", - "src": "40715:3:41" - }, - "nodeType": "ForStatement", - "src": "40675:357:41" - }, - { - "expression": { - "id": 32217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32208, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32028, - "src": "41045:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32211, - "name": "creditAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32039, - "src": "41081:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - { - "id": 32212, - "name": "creditBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32051, - "src": "41095:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "id": 32213, - "name": "debtAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32115, - "src": "41111:10:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - { - "id": 32214, - "name": "debtBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32127, - "src": "41123:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "id": 32215, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "41137:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "expression": { - "id": 32209, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "41054:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 32210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41066:14:41", - "memberName": "getValuesDelta", - "nodeType": "MemberAccess", - "referencedDeclaration": 50133, - "src": "41054:26:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_contract$_ERC20_$34556_$returns$_t_uint256_$", - "typeString": "function (contract ERC20[] memory,uint256[] memory,contract ERC20[] memory,uint256[] memory,contract ERC20) view external returns (uint256)" - } - }, - "id": 32216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41054:89:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41045:98:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32218, - "nodeType": "ExpressionStatement", - "src": "41045:98:41" - } - ] - }, - "id": 32220, - "nodeType": "IfStatement", - "src": "39548:1606:41", - "trueBody": { - "id": 32105, - "nodeType": "Block", - "src": "39572:490:41", - "statements": [ - { - "body": { - "id": 32094, - "nodeType": "Block", - "src": "39633:338:41", - "statements": [ - { - "assignments": [ - 32069 - ], - "declarations": [ - { - "constant": false, - "id": 32069, - "mutability": "mutable", - "name": "position", - "nameLocation": "39658:8:41", - "nodeType": "VariableDeclaration", - "scope": 32094, - "src": "39651:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 32068, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "39651:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 32073, - "initialValue": { - "baseExpression": { - "id": 32070, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "39669:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 32072, - "indexExpression": { - "id": 32071, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32060, - "src": "39685:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "39669:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "39651:36:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "id": 32080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32074, - "name": "creditBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32051, - "src": "39839:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 32076, - "indexExpression": { - "id": 32075, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32060, - "src": "39854:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "39839:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32078, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32069, - "src": "39877:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32077, - "name": "_withdrawableFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33201, - "src": "39859:17:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 32079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "39859:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39839:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 32081, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "39838:49:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39891:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "39838:54:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32085, - "nodeType": "IfStatement", - "src": "39834:68:41", - "trueBody": { - "id": 32084, - "nodeType": "Continue", - "src": "39894:8:41" - } - }, - { - "expression": { - "id": 32092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 32086, - "name": "creditAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32039, - "src": "39920:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 32088, - "indexExpression": { - "id": 32087, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32060, - "src": "39933:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "39920:15:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32090, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32069, - "src": "39947:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 32089, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "39938:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 32091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "39938:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "39920:36:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32093, - "nodeType": "ExpressionStatement", - "src": "39920:36:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32062, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32060, - "src": "39602:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 32063, - "name": "numOfCreditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32031, - "src": "39606:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39602:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32095, - "initializationExpression": { - "assignments": [ - 32060 - ], - "declarations": [ - { - "constant": false, - "id": 32060, - "mutability": "mutable", - "name": "i", - "nameLocation": "39599:1:41", - "nodeType": "VariableDeclaration", - "scope": 32095, - "src": "39591:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32059, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39591:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32061, - "nodeType": "VariableDeclarationStatement", - "src": "39591:9:41" - }, - "loopExpression": { - "expression": { - "id": 32066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "39628:3:41", - "subExpression": { - "id": 32065, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32060, - "src": "39630:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32067, - "nodeType": "ExpressionStatement", - "src": "39628:3:41" - }, - "nodeType": "ForStatement", - "src": "39586:385:41" - }, - { - "expression": { - "id": 32103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32096, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32028, - "src": "39984:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32099, - "name": "creditAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32039, - "src": "40015:12:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - { - "id": 32100, - "name": "creditBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32051, - "src": "40029:14:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "id": 32101, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "40045:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - ], - "expression": { - "id": 32097, - "name": "priceRouter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30134, - "src": "39993:11:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceRouter_$52732", - "typeString": "contract PriceRouter" - } - }, - "id": 32098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40005:9:41", - "memberName": "getValues", - "nodeType": "MemberAccess", - "referencedDeclaration": 50164, - "src": "39993:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_contract$_ERC20_$34556_$returns$_t_uint256_$", - "typeString": "function (contract ERC20[] memory,uint256[] memory,contract ERC20) view external returns (uint256)" - } - }, - "id": 32102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "39993:58:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39984:67:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32104, - "nodeType": "ExpressionStatement", - "src": "39984:67:41" - } - ] - } - } - ] - }, - "documentation": { - "id": 32023, - "nodeType": "StructuredDocumentation", - "src": "38875:282:41", - "text": " @notice Internal accounting function that can report total assets, or total assets withdrawable.\n @param reportWithdrawable if true, then the withdrawable total assets is reported,\n if false, then the total assets is reported" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_accounting", - "nameLocation": "39171:11:41", - "parameters": { - "id": 32026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32025, - "mutability": "mutable", - "name": "reportWithdrawable", - "nameLocation": "39188:18:41", - "nodeType": "VariableDeclaration", - "scope": 32222, - "src": "39183:23:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "39183:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "39182:25:41" - }, - "returnParameters": { - "id": 32029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32028, - "mutability": "mutable", - "name": "assets", - "nameLocation": "39239:6:41", - "nodeType": "VariableDeclaration", - "scope": 32222, - "src": "39231:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39231:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "39230:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32246, - "nodeType": "FunctionDefinition", - "src": "41742:183:41", - "nodes": [], - "body": { - "id": 32245, - "nodeType": "Block", - "src": "41811:114:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32229, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "41821:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 32230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41821:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32231, - "nodeType": "ExpressionStatement", - "src": "41821:16:41" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32233, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "41855:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 32234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41865:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "41855:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5245454e5452414e4359", - "id": 32236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41868:12:41", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - }, - "value": "REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - } - ], - "id": 32232, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "41847:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 32237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41847:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32238, - "nodeType": "ExpressionStatement", - "src": "41847:34:41" - }, - { - "expression": { - "id": 32243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32239, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32227, - "src": "41891:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 32241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41912:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32240, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "41900:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41900:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41891:27:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32244, - "nodeType": "ExpressionStatement", - "src": "41891:27:41" - } - ] - }, - "baseFunctions": [ - 34918 - ], - "documentation": { - "id": 32223, - "nodeType": "StructuredDocumentation", - "src": "41166:571:41", - "text": " @notice The total amount of assets in the cellar.\n @dev EIP4626 states totalAssets needs to be inclusive of fees.\n Since performance fees mint shares, total assets remains unchanged,\n so this implementation is inclusive of fees even though it does not explicitly show it.\n @dev EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert\n so it does NOT conform to ERC4626 standards.\n @dev Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws." - }, - "functionSelector": "01e1d114", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalAssets", - "nameLocation": "41751:11:41", - "overrides": { - "id": 32225, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "41777:8:41" - }, - "parameters": { - "id": 32224, - "nodeType": "ParameterList", - "parameters": [], - "src": "41762:2:41" - }, - "returnParameters": { - "id": 32228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32227, - "mutability": "mutable", - "name": "assets", - "nameLocation": "41803:6:41", - "nodeType": "VariableDeclaration", - "scope": 32246, - "src": "41795:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41795:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "41794:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32269, - "nodeType": "FunctionDefinition", - "src": "42137:185:41", - "nodes": [], - "body": { - "id": 32268, - "nodeType": "Block", - "src": "42209:113:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32252, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "42219:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 32253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42219:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32254, - "nodeType": "ExpressionStatement", - "src": "42219:16:41" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32256, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "42253:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 32257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42263:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "42253:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5245454e5452414e4359", - "id": 32259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42266:12:41", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - }, - "value": "REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - } - ], - "id": 32255, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "42245:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 32260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42245:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32261, - "nodeType": "ExpressionStatement", - "src": "42245:34:41" - }, - { - "expression": { - "id": 32266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32262, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32250, - "src": "42289:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "74727565", - "id": 32264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42310:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32263, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "42298:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42298:17:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42289:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32267, - "nodeType": "ExpressionStatement", - "src": "42289:26:41" - } - ] - }, - "documentation": { - "id": 32247, - "nodeType": "StructuredDocumentation", - "src": "41931:201:41", - "text": " @notice The total amount of withdrawable assets in the cellar.\n @dev Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws." - }, - "functionSelector": "a8144e48", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalAssetsWithdrawable", - "nameLocation": "42146:23:41", - "parameters": { - "id": 32248, - "nodeType": "ParameterList", - "parameters": [], - "src": "42169:2:41" - }, - "returnParameters": { - "id": 32251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32250, - "mutability": "mutable", - "name": "assets", - "nameLocation": "42201:6:41", - "nodeType": "VariableDeclaration", - "scope": 32269, - "src": "42193:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42193:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "42192:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32287, - "nodeType": "FunctionDefinition", - "src": "42549:152:41", - "nodes": [], - "body": { - "id": 32286, - "nodeType": "Block", - "src": "42636:65:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 32284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32278, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32276, - "src": "42646:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32280, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32272, - "src": "42672:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32281, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "42680:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42680:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32279, - "name": "_convertToAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32548, - "src": "42655:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42655:39:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42646:48:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32285, - "nodeType": "ExpressionStatement", - "src": "42646:48:41" - } - ] - }, - "baseFunctions": [ - 34966 - ], - "documentation": { - "id": 32270, - "nodeType": "StructuredDocumentation", - "src": "42328:216:41", - "text": " @notice The amount of assets that the cellar would exchange for the amount of shares provided.\n @param shares amount of shares to convert\n @return assets the shares can be exchanged for" - }, - "functionSelector": "07a2d13a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convertToAssets", - "nameLocation": "42558:15:41", - "overrides": { - "id": 32274, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "42602:8:41" - }, - "parameters": { - "id": 32273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32272, - "mutability": "mutable", - "name": "shares", - "nameLocation": "42582:6:41", - "nodeType": "VariableDeclaration", - "scope": 32287, - "src": "42574:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42574:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "42573:16:41" - }, - "returnParameters": { - "id": 32277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32276, - "mutability": "mutable", - "name": "assets", - "nameLocation": "42628:6:41", - "nodeType": "VariableDeclaration", - "scope": 32287, - "src": "42620:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42620:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "42619:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32305, - "nodeType": "FunctionDefinition", - "src": "42928:152:41", - "nodes": [], - "body": { - "id": 32304, - "nodeType": "Block", - "src": "43015:65:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 32302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32296, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32294, - "src": "43025:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32298, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32290, - "src": "43051:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32299, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "43059:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43059:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32297, - "name": "_convertToShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32582, - "src": "43034:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43034:39:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43025:48:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32303, - "nodeType": "ExpressionStatement", - "src": "43025:48:41" - } - ] - }, - "baseFunctions": [ - 34942 - ], - "documentation": { - "id": 32288, - "nodeType": "StructuredDocumentation", - "src": "42707:216:41", - "text": " @notice The amount of shares that the cellar would exchange for the amount of assets provided.\n @param assets amount of assets to convert\n @return shares the assets can be exchanged for" - }, - "functionSelector": "c6e6f592", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "convertToShares", - "nameLocation": "42937:15:41", - "overrides": { - "id": 32292, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "42981:8:41" - }, - "parameters": { - "id": 32291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32290, - "mutability": "mutable", - "name": "assets", - "nameLocation": "42961:6:41", - "nodeType": "VariableDeclaration", - "scope": 32305, - "src": "42953:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32289, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42953:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "42952:16:41" - }, - "returnParameters": { - "id": 32295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32294, - "mutability": "mutable", - "name": "shares", - "nameLocation": "43007:6:41", - "nodeType": "VariableDeclaration", - "scope": 32305, - "src": "42999:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42999:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "42998:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32327, - "nodeType": "FunctionDefinition", - "src": "43304:189:41", - "nodes": [], - "body": { - "id": 32326, - "nodeType": "Block", - "src": "43387:106:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32315 - ], - "declarations": [ - { - "constant": false, - "id": 32315, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "43405:12:41", - "nodeType": "VariableDeclaration", - "scope": 32326, - "src": "43397:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43397:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32318, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32316, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "43420:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43420:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "43397:36:41" - }, - { - "expression": { - "id": 32324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32319, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32312, - "src": "43443:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32321, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32308, - "src": "43465:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32322, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32315, - "src": "43473:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32320, - "name": "_previewMint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32616, - "src": "43452:12:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43452:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43443:43:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32325, - "nodeType": "ExpressionStatement", - "src": "43443:43:41" - } - ] - }, - "baseFunctions": [ - 35002 - ], - "documentation": { - "id": 32306, - "nodeType": "StructuredDocumentation", - "src": "43086:213:41", - "text": " @notice Simulate the effects of minting shares at the current block, given current on-chain conditions.\n @param shares amount of shares to mint\n @return assets that will be deposited" - }, - "functionSelector": "b3d7f6b9", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "previewMint", - "nameLocation": "43313:11:41", - "overrides": { - "id": 32310, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "43353:8:41" - }, - "parameters": { - "id": 32309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32308, - "mutability": "mutable", - "name": "shares", - "nameLocation": "43333:6:41", - "nodeType": "VariableDeclaration", - "scope": 32327, - "src": "43325:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43325:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "43324:16:41" - }, - "returnParameters": { - "id": 32313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32312, - "mutability": "mutable", - "name": "assets", - "nameLocation": "43379:6:41", - "nodeType": "VariableDeclaration", - "scope": 32327, - "src": "43371:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43371:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "43370:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32349, - "nodeType": "FunctionDefinition", - "src": "43724:197:41", - "nodes": [], - "body": { - "id": 32348, - "nodeType": "Block", - "src": "43811:110:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32337 - ], - "declarations": [ - { - "constant": false, - "id": 32337, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "43829:12:41", - "nodeType": "VariableDeclaration", - "scope": 32348, - "src": "43821:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32336, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43821:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32340, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32338, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "43844:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43844:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "43821:36:41" - }, - { - "expression": { - "id": 32346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32341, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32334, - "src": "43867:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32343, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32330, - "src": "43893:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32344, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32337, - "src": "43901:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32342, - "name": "_previewWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32650, - "src": "43876:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43876:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "43867:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32347, - "nodeType": "ExpressionStatement", - "src": "43867:47:41" - } - ] - }, - "baseFunctions": [ - 35026 - ], - "documentation": { - "id": 32328, - "nodeType": "StructuredDocumentation", - "src": "43499:220:41", - "text": " @notice Simulate the effects of withdrawing assets at the current block, given current on-chain conditions.\n @param assets amount of assets to withdraw\n @return shares that will be redeemed" - }, - "functionSelector": "0a28a477", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "previewWithdraw", - "nameLocation": "43733:15:41", - "overrides": { - "id": 32332, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "43777:8:41" - }, - "parameters": { - "id": 32331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32330, - "mutability": "mutable", - "name": "assets", - "nameLocation": "43757:6:41", - "nodeType": "VariableDeclaration", - "scope": 32349, - "src": "43749:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43749:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "43748:16:41" - }, - "returnParameters": { - "id": 32335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32334, - "mutability": "mutable", - "name": "shares", - "nameLocation": "43803:6:41", - "nodeType": "VariableDeclaration", - "scope": 32349, - "src": "43795:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43795:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "43794:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32371, - "nodeType": "FunctionDefinition", - "src": "44148:196:41", - "nodes": [], - "body": { - "id": 32370, - "nodeType": "Block", - "src": "44234:110:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32359 - ], - "declarations": [ - { - "constant": false, - "id": 32359, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "44252:12:41", - "nodeType": "VariableDeclaration", - "scope": 32370, - "src": "44244:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44244:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32362, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32360, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "44267:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44267:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "44244:36:41" - }, - { - "expression": { - "id": 32368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32363, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32356, - "src": "44290:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32365, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32352, - "src": "44316:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32366, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32359, - "src": "44324:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32364, - "name": "_convertToShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32582, - "src": "44299:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44299:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44290:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32369, - "nodeType": "ExpressionStatement", - "src": "44290:47:41" - } - ] - }, - "baseFunctions": [ - 34978 - ], - "documentation": { - "id": 32350, - "nodeType": "StructuredDocumentation", - "src": "43927:216:41", - "text": " @notice Simulate the effects of depositing assets at the current block, given current on-chain conditions.\n @param assets amount of assets to deposit\n @return shares that will be minted" - }, - "functionSelector": "ef8b30f7", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "previewDeposit", - "nameLocation": "44157:14:41", - "overrides": { - "id": 32354, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "44200:8:41" - }, - "parameters": { - "id": 32353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32352, - "mutability": "mutable", - "name": "assets", - "nameLocation": "44180:6:41", - "nodeType": "VariableDeclaration", - "scope": 32371, - "src": "44172:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32351, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44172:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "44171:16:41" - }, - "returnParameters": { - "id": 32357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32356, - "mutability": "mutable", - "name": "shares", - "nameLocation": "44226:6:41", - "nodeType": "VariableDeclaration", - "scope": 32371, - "src": "44218:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32355, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44218:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "44217:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32393, - "nodeType": "FunctionDefinition", - "src": "44571:195:41", - "nodes": [], - "body": { - "id": 32392, - "nodeType": "Block", - "src": "44656:110:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32381 - ], - "declarations": [ - { - "constant": false, - "id": 32381, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "44674:12:41", - "nodeType": "VariableDeclaration", - "scope": 32392, - "src": "44666:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44666:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32384, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32382, - "name": "totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 32246 - ], - "referencedDeclaration": 32246, - "src": "44689:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 32383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44689:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "44666:36:41" - }, - { - "expression": { - "id": 32390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32385, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32378, - "src": "44712:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32387, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32374, - "src": "44738:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32388, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32381, - "src": "44746:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32386, - "name": "_convertToAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32548, - "src": "44721:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44721:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44712:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32391, - "nodeType": "ExpressionStatement", - "src": "44712:47:41" - } - ] - }, - "baseFunctions": [ - 35038 - ], - "documentation": { - "id": 32372, - "nodeType": "StructuredDocumentation", - "src": "44350:216:41", - "text": " @notice Simulate the effects of redeeming shares at the current block, given current on-chain conditions.\n @param shares amount of shares to redeem\n @return assets that will be returned" - }, - "functionSelector": "4cdad506", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "previewRedeem", - "nameLocation": "44580:13:41", - "overrides": { - "id": 32376, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "44622:8:41" - }, - "parameters": { - "id": 32375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32374, - "mutability": "mutable", - "name": "shares", - "nameLocation": "44602:6:41", - "nodeType": "VariableDeclaration", - "scope": 32393, - "src": "44594:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44594:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "44593:16:41" - }, - "returnParameters": { - "id": 32379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32378, - "mutability": "mutable", - "name": "assets", - "nameLocation": "44648:6:41", - "nodeType": "VariableDeclaration", - "scope": 32393, - "src": "44640:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44640:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "44639:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32470, - "nodeType": "FunctionDefinition", - "src": "45071:825:41", - "nodes": [], - "body": { - "id": 32469, - "nodeType": "Block", - "src": "45158:738:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32403, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "45168:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 32404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45168:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32405, - "nodeType": "ExpressionStatement", - "src": "45168:16:41" - }, - { - "assignments": [ - 32407 - ], - "declarations": [ - { - "constant": false, - "id": 32407, - "mutability": "mutable", - "name": "lockTime", - "nameLocation": "45263:8:41", - "nodeType": "VariableDeclaration", - "scope": 32469, - "src": "45255:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45255:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32411, - "initialValue": { - "baseExpression": { - "id": 32408, - "name": "userShareLockStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31320, - "src": "45274:22:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 32410, - "indexExpression": { - "id": 32409, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32396, - "src": "45297:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "45274:29:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45255:48:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32412, - "name": "lockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32407, - "src": "45317:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 32413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45329:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "45317:13:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32429, - "nodeType": "IfStatement", - "src": "45313:169:41", - "trueBody": { - "id": 32428, - "nodeType": "Block", - "src": "45332:150:41", - "statements": [ - { - "assignments": [ - 32416 - ], - "declarations": [ - { - "constant": false, - "id": 32416, - "mutability": "mutable", - "name": "timeSharesAreUnlocked", - "nameLocation": "45354:21:41", - "nodeType": "VariableDeclaration", - "scope": 32428, - "src": "45346:29:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32415, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45346:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32420, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32417, - "name": "lockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32407, - "src": "45378:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 32418, - "name": "shareLockPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31315, - "src": "45389:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45378:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45346:58:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32421, - "name": "timeSharesAreUnlocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32416, - "src": "45422:21:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 32422, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "45446:5:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 32423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45452:9:41", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "45446:15:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45422:39:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32427, - "nodeType": "IfStatement", - "src": "45418:53:41", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 32425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45470:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 32402, - "id": 32426, - "nodeType": "Return", - "src": "45463:8:41" - } - } - ] - } - }, - { - "assignments": [ - 32431 - ], - "declarations": [ - { - "constant": false, - "id": 32431, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "45544:12:41", - "nodeType": "VariableDeclaration", - "scope": 32469, - "src": "45536:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32430, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45536:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32435, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 32433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45571:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32432, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "45559:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45559:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45536:41:41" - }, - { - "assignments": [ - 32437 - ], - "declarations": [ - { - "constant": false, - "id": 32437, - "mutability": "mutable", - "name": "assets", - "nameLocation": "45595:6:41", - "nodeType": "VariableDeclaration", - "scope": 32469, - "src": "45587:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45587:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32444, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "id": 32439, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34199, - "src": "45621:9:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 32441, - "indexExpression": { - "id": 32440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32396, - "src": "45631:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "45621:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32442, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32431, - "src": "45639:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32438, - "name": "_convertToAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32548, - "src": "45604:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45604:48:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45587:65:41" - }, - { - "assignments": [ - 32446 - ], - "declarations": [ - { - "constant": false, - "id": 32446, - "mutability": "mutable", - "name": "withdrawable", - "nameLocation": "45671:12:41", - "nodeType": "VariableDeclaration", - "scope": 32469, - "src": "45663:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32445, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45663:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32450, - "initialValue": { - "arguments": [ - { - "hexValue": "74727565", - "id": 32448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "45698:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32447, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "45686:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45686:17:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45663:40:41" - }, - { - "expression": { - "id": 32458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32451, - "name": "maxOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32401, - "src": "45713:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32452, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32437, - "src": "45722:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 32453, - "name": "withdrawable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32446, - "src": "45732:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45722:22:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 32456, - "name": "withdrawable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32446, - "src": "45756:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "45722:46:41", - "trueExpression": { - "id": 32455, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32437, - "src": "45747:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45713:55:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32459, - "nodeType": "ExpressionStatement", - "src": "45713:55:41" - }, - { - "condition": { - "id": 32460, - "name": "inShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32398, - "src": "45783:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32468, - "nodeType": "IfStatement", - "src": "45779:61:41", - "trueBody": { - "expression": { - "id": 32466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32461, - "name": "maxOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32401, - "src": "45793:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 32463, - "name": "maxOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32401, - "src": "45819:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32464, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32431, - "src": "45827:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32462, - "name": "_convertToShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32582, - "src": "45802:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 32465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45802:38:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45793:47:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32467, - "nodeType": "ExpressionStatement", - "src": "45793:47:41" - } - } - ] - }, - "documentation": { - "id": 32394, - "nodeType": "StructuredDocumentation", - "src": "44772:294:41", - "text": " @notice Finds the max amount of value an `owner` can remove from the cellar.\n @param owner address of the user to find max value.\n @param inShares if false, then returns value in terms of assets\n if true then returns value in terms of shares" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_findMax", - "nameLocation": "45080:8:41", - "parameters": { - "id": 32399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32396, - "mutability": "mutable", - "name": "owner", - "nameLocation": "45097:5:41", - "nodeType": "VariableDeclaration", - "scope": 32470, - "src": "45089:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "45089:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32398, - "mutability": "mutable", - "name": "inShares", - "nameLocation": "45109:8:41", - "nodeType": "VariableDeclaration", - "scope": 32470, - "src": "45104:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32397, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "45104:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "45088:30:41" - }, - "returnParameters": { - "id": 32402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32401, - "mutability": "mutable", - "name": "maxOut", - "nameLocation": "45150:6:41", - "nodeType": "VariableDeclaration", - "scope": 32470, - "src": "45142:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "45142:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "45141:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32492, - "nodeType": "FunctionDefinition", - "src": "46282:165:41", - "nodes": [], - "body": { - "id": 32491, - "nodeType": "Block", - "src": "46357:90:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32480, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "46375:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 32481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46385:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "46375:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5245454e5452414e4359", - "id": 32483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46388:12:41", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - }, - "value": "REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - } - ], - "id": 32479, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "46367:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 32484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46367:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32485, - "nodeType": "ExpressionStatement", - "src": "46367:34:41" - }, - { - "expression": { - "arguments": [ - { - "id": 32487, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32473, - "src": "46427:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "66616c7365", - "id": 32488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46434:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32486, - "name": "_findMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32470, - "src": "46418:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" - } - }, - "id": 32489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46418:22:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 32478, - "id": 32490, - "nodeType": "Return", - "src": "46411:29:41" - } - ] - }, - "baseFunctions": [ - 35080 - ], - "documentation": { - "id": 32471, - "nodeType": "StructuredDocumentation", - "src": "45902:375:41", - "text": " @notice Returns the max amount withdrawable by a user inclusive of performance fees\n @dev EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert\n so it does NOT conform to ERC4626 standards.\n @param owner address to check maxWithdraw of.\n @return the max amount of assets withdrawable by `owner`." - }, - "functionSelector": "ce96cb77", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "maxWithdraw", - "nameLocation": "46291:11:41", - "overrides": { - "id": 32475, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "46330:8:41" - }, - "parameters": { - "id": 32474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32473, - "mutability": "mutable", - "name": "owner", - "nameLocation": "46311:5:41", - "nodeType": "VariableDeclaration", - "scope": 32492, - "src": "46303:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32472, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "46303:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "46302:15:41" - }, - "returnParameters": { - "id": 32478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32477, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 32492, - "src": "46348:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "46348:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "46347:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32514, - "nodeType": "FunctionDefinition", - "src": "46802:162:41", - "nodes": [], - "body": { - "id": 32513, - "nodeType": "Block", - "src": "46875:89:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32502, - "name": "locked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30111, - "src": "46893:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 32503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46903:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "46893:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5245454e5452414e4359", - "id": 32505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46906:12:41", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - }, - "value": "REENTRANCY" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59", - "typeString": "literal_string \"REENTRANCY\"" - } - ], - "id": 32501, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "46885:7:41", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 32506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46885:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32507, - "nodeType": "ExpressionStatement", - "src": "46885:34:41" - }, - { - "expression": { - "arguments": [ - { - "id": 32509, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32495, - "src": "46945:5:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "74727565", - "id": 32510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46952:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32508, - "name": "_findMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32470, - "src": "46936:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (address,bool) view returns (uint256)" - } - }, - "id": 32511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46936:21:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 32500, - "id": 32512, - "nodeType": "Return", - "src": "46929:28:41" - } - ] - }, - "baseFunctions": [ - 35092 - ], - "documentation": { - "id": 32493, - "nodeType": "StructuredDocumentation", - "src": "46453:344:41", - "text": " @notice Returns the max amount shares redeemable by a user\n @dev EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert\n so it does NOT conform to ERC4626 standards.\n @param owner address to check maxRedeem of.\n @return the max amount of shares redeemable by `owner`." - }, - "functionSelector": "d905777e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "maxRedeem", - "nameLocation": "46811:9:41", - "overrides": { - "id": 32497, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "46848:8:41" - }, - "parameters": { - "id": 32496, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32495, - "mutability": "mutable", - "name": "owner", - "nameLocation": "46829:5:41", - "nodeType": "VariableDeclaration", - "scope": 32514, - "src": "46821:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32494, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "46821:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "46820:15:41" - }, - "returnParameters": { - "id": 32500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32499, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 32514, - "src": "46866:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32498, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "46866:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "46865:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 32548, - "nodeType": "FunctionDefinition", - "src": "47094:306:41", - "nodes": [], - "body": { - "id": 32547, - "nodeType": "Block", - "src": "47197:203:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32525 - ], - "declarations": [ - { - "constant": false, - "id": 32525, - "mutability": "mutable", - "name": "totalShares", - "nameLocation": "47215:11:41", - "nodeType": "VariableDeclaration", - "scope": 32547, - "src": "47207:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47207:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32527, - "initialValue": { - "id": 32526, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "47229:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "47207:33:41" - }, - { - "expression": { - "id": 32545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32528, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32522, - "src": "47251:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32529, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32525, - "src": "47260:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47275:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "47260:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "arguments": [ - { - "id": 32541, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32519, - "src": "47367:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32542, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32525, - "src": "47381:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 32539, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32517, - "src": "47349:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47356:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "47349:17:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47349:44:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "47260:133:41", - "trueExpression": { - "arguments": [ - { - "hexValue": "3138", - "id": 32534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47313:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 32535, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "47317:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47323:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "47317:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 32537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47317:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "id": 32532, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32517, - "src": "47291:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47298:14:41", - "memberName": "changeDecimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 54445, - "src": "47291:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint8,uint8) pure returns (uint256)" - } - }, - "id": 32538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47291:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47251:142:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32546, - "nodeType": "ExpressionStatement", - "src": "47251:142:41" - } - ] - }, - "documentation": { - "id": 32515, - "nodeType": "StructuredDocumentation", - "src": "46970:119:41", - "text": " @dev Used to more efficiently convert amount of shares to assets using a stored `totalAssets` value." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_convertToAssets", - "nameLocation": "47103:16:41", - "parameters": { - "id": 32520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32517, - "mutability": "mutable", - "name": "shares", - "nameLocation": "47128:6:41", - "nodeType": "VariableDeclaration", - "scope": 32548, - "src": "47120:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47120:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32519, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "47144:12:41", - "nodeType": "VariableDeclaration", - "scope": 32548, - "src": "47136:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47136:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "47119:38:41" - }, - "returnParameters": { - "id": 32523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32522, - "mutability": "mutable", - "name": "assets", - "nameLocation": "47189:6:41", - "nodeType": "VariableDeclaration", - "scope": 32548, - "src": "47181:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47181:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "47180:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32582, - "nodeType": "FunctionDefinition", - "src": "47530:306:41", - "nodes": [], - "body": { - "id": 32581, - "nodeType": "Block", - "src": "47633:203:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32559 - ], - "declarations": [ - { - "constant": false, - "id": 32559, - "mutability": "mutable", - "name": "totalShares", - "nameLocation": "47651:11:41", - "nodeType": "VariableDeclaration", - "scope": 32581, - "src": "47643:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47643:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32561, - "initialValue": { - "id": 32560, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "47665:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "47643:33:41" - }, - { - "expression": { - "id": 32579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32562, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32556, - "src": "47687:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32563, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32559, - "src": "47696:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47711:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "47696:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "arguments": [ - { - "id": 32575, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32559, - "src": "47803:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32576, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32553, - "src": "47816:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 32573, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32551, - "src": "47785:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47792:10:41", - "memberName": "mulDivDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 54494, - "src": "47785:17:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47785:44:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "47696:133:41", - "trueExpression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 32568, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "47749:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47755:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "47749:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 32570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47749:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "hexValue": "3138", - "id": 32571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "47767:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "expression": { - "id": 32566, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32551, - "src": "47727:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47734:14:41", - "memberName": "changeDecimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 54445, - "src": "47727:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint8,uint8) pure returns (uint256)" - } - }, - "id": 32572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47727:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "47687:142:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32580, - "nodeType": "ExpressionStatement", - "src": "47687:142:41" - } - ] - }, - "documentation": { - "id": 32549, - "nodeType": "StructuredDocumentation", - "src": "47406:119:41", - "text": " @dev Used to more efficiently convert amount of assets to shares using a stored `totalAssets` value." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_convertToShares", - "nameLocation": "47539:16:41", - "parameters": { - "id": 32554, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32551, - "mutability": "mutable", - "name": "assets", - "nameLocation": "47564:6:41", - "nodeType": "VariableDeclaration", - "scope": 32582, - "src": "47556:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47556:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32553, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "47580:12:41", - "nodeType": "VariableDeclaration", - "scope": 32582, - "src": "47572:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32552, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47572:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "47555:38:41" - }, - "returnParameters": { - "id": 32557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32556, - "mutability": "mutable", - "name": "shares", - "nameLocation": "47625:6:41", - "nodeType": "VariableDeclaration", - "scope": 32582, - "src": "47617:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32555, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47617:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "47616:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32616, - "nodeType": "FunctionDefinition", - "src": "47955:300:41", - "nodes": [], - "body": { - "id": 32615, - "nodeType": "Block", - "src": "48054:201:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32593 - ], - "declarations": [ - { - "constant": false, - "id": 32593, - "mutability": "mutable", - "name": "totalShares", - "nameLocation": "48072:11:41", - "nodeType": "VariableDeclaration", - "scope": 32615, - "src": "48064:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48064:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32595, - "initialValue": { - "id": 32594, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "48086:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "48064:33:41" - }, - { - "expression": { - "id": 32613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32596, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32590, - "src": "48108:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32597, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32593, - "src": "48117:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48132:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "48117:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "arguments": [ - { - "id": 32609, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32587, - "src": "48222:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32610, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32593, - "src": "48236:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 32607, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32585, - "src": "48206:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48213:8:41", - "memberName": "mulDivUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "48206:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48206:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "48117:131:41", - "trueExpression": { - "arguments": [ - { - "hexValue": "3138", - "id": 32602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48170:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 32603, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "48174:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48180:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "48174:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 32605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48174:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "id": 32600, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32585, - "src": "48148:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48155:14:41", - "memberName": "changeDecimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 54445, - "src": "48148:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint8,uint8) pure returns (uint256)" - } - }, - "id": 32606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48148:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48108:140:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32614, - "nodeType": "ExpressionStatement", - "src": "48108:140:41" - } - ] - }, - "documentation": { - "id": 32583, - "nodeType": "StructuredDocumentation", - "src": "47842:108:41", - "text": " @dev Used to more efficiently simulate minting shares using a stored `totalAssets` value." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_previewMint", - "nameLocation": "47964:12:41", - "parameters": { - "id": 32588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32585, - "mutability": "mutable", - "name": "shares", - "nameLocation": "47985:6:41", - "nodeType": "VariableDeclaration", - "scope": 32616, - "src": "47977:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32584, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47977:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32587, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "48001:12:41", - "nodeType": "VariableDeclaration", - "scope": 32616, - "src": "47993:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "47993:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "47976:38:41" - }, - "returnParameters": { - "id": 32591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32590, - "mutability": "mutable", - "name": "assets", - "nameLocation": "48046:6:41", - "nodeType": "VariableDeclaration", - "scope": 32616, - "src": "48038:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32589, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48038:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "48037:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32650, - "nodeType": "FunctionDefinition", - "src": "48378:304:41", - "nodes": [], - "body": { - "id": 32649, - "nodeType": "Block", - "src": "48481:201:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 32627 - ], - "declarations": [ - { - "constant": false, - "id": 32627, - "mutability": "mutable", - "name": "totalShares", - "nameLocation": "48499:11:41", - "nodeType": "VariableDeclaration", - "scope": 32649, - "src": "48491:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32626, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48491:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32629, - "initialValue": { - "id": 32628, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "48513:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "48491:33:41" - }, - { - "expression": { - "id": 32647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32630, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32624, - "src": "48535:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32631, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32627, - "src": "48544:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 32632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48559:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "48544:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "arguments": [ - { - "id": 32643, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32627, - "src": "48649:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32644, - "name": "_totalAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32621, - "src": "48662:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 32641, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32619, - "src": "48633:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48640:8:41", - "memberName": "mulDivUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "48633:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48633:42:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "48544:131:41", - "trueExpression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 32636, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34599, - "src": "48597:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 32637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48603:8:41", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 34193, - "src": "48597:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 32638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48597:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "hexValue": "3138", - "id": 32639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "48615:2:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "expression": { - "id": 32634, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32619, - "src": "48575:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "48582:14:41", - "memberName": "changeDecimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 54445, - "src": "48575:21:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint8,uint8) pure returns (uint256)" - } - }, - "id": 32640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "48575:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "48535:140:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32648, - "nodeType": "ExpressionStatement", - "src": "48535:140:41" - } - ] - }, - "documentation": { - "id": 32617, - "nodeType": "StructuredDocumentation", - "src": "48261:112:41", - "text": " @dev Used to more efficiently simulate withdrawing assets using a stored `totalAssets` value." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_previewWithdraw", - "nameLocation": "48387:16:41", - "parameters": { - "id": 32622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32619, - "mutability": "mutable", - "name": "assets", - "nameLocation": "48412:6:41", - "nodeType": "VariableDeclaration", - "scope": 32650, - "src": "48404:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32618, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48404:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32621, - "mutability": "mutable", - "name": "_totalAssets", - "nameLocation": "48428:12:41", - "nodeType": "VariableDeclaration", - "scope": 32650, - "src": "48420:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32620, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48420:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "48403:38:41" - }, - "returnParameters": { - "id": 32625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32624, - "mutability": "mutable", - "name": "shares", - "nameLocation": "48473:6:41", - "nodeType": "VariableDeclaration", - "scope": 32650, - "src": "48465:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "48465:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "48464:16:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 32657, - "nodeType": "EventDefinition", - "src": "48991:76:41", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 32651, - "nodeType": "StructuredDocumentation", - "src": "48798:188:41", - "text": " @notice Emitted on when the rebalance deviation is changed.\n @param oldDeviation the old rebalance deviation\n @param newDeviation the new rebalance deviation" - }, - "eventSelector": "df4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff", - "name": "RebalanceDeviationChanged", - "nameLocation": "48997:25:41", - "parameters": { - "id": 32656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32653, - "indexed": false, - "mutability": "mutable", - "name": "oldDeviation", - "nameLocation": "49031:12:41", - "nodeType": "VariableDeclaration", - "scope": 32657, - "src": "49023:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32652, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49023:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32655, - "indexed": false, - "mutability": "mutable", - "name": "newDeviation", - "nameLocation": "49053:12:41", - "nodeType": "VariableDeclaration", - "scope": 32657, - "src": "49045:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32654, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49045:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "49022:44:41" - } - }, - { - "id": 32666, - "nodeType": "ErrorDefinition", - "src": "49321:87:41", - "nodes": [], - "documentation": { - "id": 32658, - "nodeType": "StructuredDocumentation", - "src": "49073:243:41", - "text": " @notice totalAssets deviated outside the range set by `allowedRebalanceDeviation`.\n @param assets the total assets in the cellar\n @param min the minimum allowed assets\n @param max the maximum allowed assets" - }, - "errorSelector": "c51988ea", - "name": "Cellar__TotalAssetDeviatedOutsideRange", - "nameLocation": "49327:38:41", - "parameters": { - "id": 32665, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32660, - "mutability": "mutable", - "name": "assets", - "nameLocation": "49374:6:41", - "nodeType": "VariableDeclaration", - "scope": 32666, - "src": "49366:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49366:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32662, - "mutability": "mutable", - "name": "min", - "nameLocation": "49390:3:41", - "nodeType": "VariableDeclaration", - "scope": 32666, - "src": "49382:11:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49382:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32664, - "mutability": "mutable", - "name": "max", - "nameLocation": "49403:3:41", - "nodeType": "VariableDeclaration", - "scope": 32666, - "src": "49395:11:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49395:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "49365:42:41" - } - }, - { - "id": 32673, - "nodeType": "ErrorDefinition", - "src": "49626:79:41", - "nodes": [], - "documentation": { - "id": 32667, - "nodeType": "StructuredDocumentation", - "src": "49414:207:41", - "text": " @notice Total shares in a cellar changed when they should stay constant.\n @param current the current amount of total shares\n @param expected the expected amount of total shares" - }, - "errorSelector": "ad005164", - "name": "Cellar__TotalSharesMustRemainConstant", - "nameLocation": "49632:37:41", - "parameters": { - "id": 32672, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32669, - "mutability": "mutable", - "name": "current", - "nameLocation": "49678:7:41", - "nodeType": "VariableDeclaration", - "scope": 32673, - "src": "49670:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32668, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49670:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32671, - "mutability": "mutable", - "name": "expected", - "nameLocation": "49695:8:41", - "nodeType": "VariableDeclaration", - "scope": 32673, - "src": "49687:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32670, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49687:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "49669:35:41" - } - }, - { - "id": 32680, - "nodeType": "ErrorDefinition", - "src": "49913:72:41", - "nodes": [], - "documentation": { - "id": 32674, - "nodeType": "StructuredDocumentation", - "src": "49711:197:41", - "text": " @notice Total shares in a cellar changed when they should stay constant.\n @param requested the requested rebalance deviation\n @param max the max rebalance deviation." - }, - "errorSelector": "5a5521e0", - "name": "Cellar__InvalidRebalanceDeviation", - "nameLocation": "49919:33:41", - "parameters": { - "id": 32679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32676, - "mutability": "mutable", - "name": "requested", - "nameLocation": "49961:9:41", - "nodeType": "VariableDeclaration", - "scope": 32680, - "src": "49953:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49953:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32678, - "mutability": "mutable", - "name": "max", - "nameLocation": "49980:3:41", - "nodeType": "VariableDeclaration", - "scope": 32680, - "src": "49972:11:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "49972:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "49952:32:41" - } - }, - { - "id": 32685, - "nodeType": "ErrorDefinition", - "src": "50189:55:41", - "nodes": [], - "documentation": { - "id": 32681, - "nodeType": "StructuredDocumentation", - "src": "49991:193:41", - "text": " @notice Strategist attempted to use an adaptor that is either paused or is not trusted by governance.\n @param adaptor the adaptor address that is paused or not trusted." - }, - "errorSelector": "bbed6c2e", - "name": "Cellar__CallToAdaptorNotAllowed", - "nameLocation": "50195:31:41", - "parameters": { - "id": 32684, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32683, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "50235:7:41", - "nodeType": "VariableDeclaration", - "scope": 32685, - "src": "50227:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32682, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "50227:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "50226:17:41" - } - }, - { - "id": 32689, - "nodeType": "VariableDeclaration", - "src": "50342:55:41", - "nodes": [], - "constant": true, - "documentation": { - "id": 32686, - "nodeType": "StructuredDocumentation", - "src": "50250:87:41", - "text": " @notice Stores the max possible rebalance deviation for this cellar." - }, - "functionSelector": "6ff1c02a", - "mutability": "constant", - "name": "MAX_REBALANCE_DEVIATION", - "nameLocation": "50365:23:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 32687, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "50342:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "hexValue": "302e31653138", - "id": 32688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50391:6:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000_by_1", - "typeString": "int_const 100000000000000000" - }, - "value": "0.1e18" - }, - "visibility": "public" - }, - { - "id": 32693, - "nodeType": "VariableDeclaration", - "src": "50530:52:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 32690, - "nodeType": "StructuredDocumentation", - "src": "50404:121:41", - "text": " @notice The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call." - }, - "functionSelector": "c244245a", - "mutability": "mutable", - "name": "allowedRebalanceDeviation", - "nameLocation": "50545:25:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50530:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "302e30303033653138", - "id": 32692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "50573:9:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_300000000000000_by_1", - "typeString": "int_const 300000000000000" - }, - "value": "0.0003e18" - }, - "visibility": "public" - }, - { - "id": 32724, - "nodeType": "FunctionDefinition", - "src": "50744:402:41", - "nodes": [], - "body": { - "id": 32723, - "nodeType": "Block", - "src": "50816:330:41", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32701, - "name": "newDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32696, - "src": "50830:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 32702, - "name": "MAX_REBALANCE_DEVIATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32689, - "src": "50845:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "50830:38:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32709, - "nodeType": "IfStatement", - "src": "50826:135:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 32705, - "name": "newDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32696, - "src": "50923:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32706, - "name": "MAX_REBALANCE_DEVIATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32689, - "src": "50937:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 32704, - "name": "Cellar__InvalidRebalanceDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32680, - "src": "50889:33:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 32707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "50889:72:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32708, - "nodeType": "RevertStatement", - "src": "50882:79:41" - } - }, - { - "assignments": [ - 32711 - ], - "declarations": [ - { - "constant": false, - "id": 32711, - "mutability": "mutable", - "name": "oldDeviation", - "nameLocation": "50980:12:41", - "nodeType": "VariableDeclaration", - "scope": 32723, - "src": "50972:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50972:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32713, - "initialValue": { - "id": 32712, - "name": "allowedRebalanceDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32693, - "src": "50995:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "50972:48:41" - }, - { - "expression": { - "id": 32716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32714, - "name": "allowedRebalanceDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32693, - "src": "51030:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 32715, - "name": "newDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32696, - "src": "51058:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "51030:40:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32717, - "nodeType": "ExpressionStatement", - "src": "51030:40:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 32719, - "name": "oldDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32711, - "src": "51112:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32720, - "name": "newDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32696, - "src": "51126:12:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32718, - "name": "RebalanceDeviationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32657, - "src": "51086:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 32721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "51086:53:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32722, - "nodeType": "EmitStatement", - "src": "51081:58:41" - } - ] - }, - "documentation": { - "id": 32694, - "nodeType": "StructuredDocumentation", - "src": "50589:150:41", - "text": " @notice Allows governance to change this cellars rebalance deviation.\n @param newDeviation the new rebalance deviation value." - }, - "functionSelector": "530a3714", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 32699, - "kind": "modifierInvocation", - "modifierName": { - "id": 32698, - "name": "onlyOwner", - "nameLocations": [ - "50806:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "50806:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "50806:9:41" - } - ], - "name": "setRebalanceDeviation", - "nameLocation": "50753:21:41", - "parameters": { - "id": 32697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32696, - "mutability": "mutable", - "name": "newDeviation", - "nameLocation": "50783:12:41", - "nodeType": "VariableDeclaration", - "scope": 32724, - "src": "50775:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "50775:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "50774:22:41" - }, - "returnParameters": { - "id": 32700, - "nodeType": "ParameterList", - "parameters": [], - "src": "50816:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 32727, - "nodeType": "VariableDeclaration", - "src": "51330:33:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 32725, - "nodeType": "StructuredDocumentation", - "src": "51206:119:41", - "text": " @notice This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw)." - }, - "functionSelector": "4c4602da", - "mutability": "mutable", - "name": "blockExternalReceiver", - "nameLocation": "51342:21:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32726, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "51330:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "public" - }, - { - "id": 32733, - "nodeType": "StructDefinition", - "src": "51576:77:41", - "nodes": [], - "canonicalName": "Cellar.AdaptorCall", - "members": [ - { - "constant": false, - "id": 32729, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "51613:7:41", - "nodeType": "VariableDeclaration", - "scope": 32733, - "src": "51605:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51605:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32732, - "mutability": "mutable", - "name": "callData", - "nameLocation": "51638:8:41", - "nodeType": "VariableDeclaration", - "scope": 32733, - "src": "51630:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 32730, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "51630:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 32731, - "nodeType": "ArrayTypeName", - "src": "51630:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "name": "AdaptorCall", - "nameLocation": "51583:11:41", - "scope": 33437, - "visibility": "public" - }, - { - "id": 32739, - "nodeType": "EventDefinition", - "src": "51659:49:41", - "nodes": [], - "anonymous": false, - "eventSelector": "7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf483", - "name": "AdaptorCalled", - "nameLocation": "51665:13:41", - "parameters": { - "id": 32738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32735, - "indexed": false, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "51687:7:41", - "nodeType": "VariableDeclaration", - "scope": 32739, - "src": "51679:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51679:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32737, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "51702:4:41", - "nodeType": "VariableDeclaration", - "scope": 32739, - "src": "51696:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 32736, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "51696:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "51678:29:41" - } - }, - { - "id": 32904, - "nodeType": "FunctionDefinition", - "src": "52415:1775:41", - "nodes": [], - "body": { - "id": 32903, - "nodeType": "Block", - "src": "52497:1693:41", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32751, - "name": "_whenNotShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31022, - "src": "52507:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 32752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "52507:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32753, - "nodeType": "ExpressionStatement", - "src": "52507:18:41" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32754, - "name": "_checkIfPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30999, - "src": "52535:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 32755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "52535:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32756, - "nodeType": "ExpressionStatement", - "src": "52535:16:41" - }, - { - "expression": { - "id": 32759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32757, - "name": "blockExternalReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32727, - "src": "52561:21:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 32758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52585:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "52561:28:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32760, - "nodeType": "ExpressionStatement", - "src": "52561:28:41" - }, - { - "assignments": [ - 32762 - ], - "declarations": [ - { - "constant": false, - "id": 32762, - "mutability": "mutable", - "name": "minimumAllowedAssets", - "nameLocation": "52692:20:41", - "nodeType": "VariableDeclaration", - "scope": 32903, - "src": "52684:28:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32761, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "52684:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32763, - "nodeType": "VariableDeclarationStatement", - "src": "52684:28:41" - }, - { - "assignments": [ - 32765 - ], - "declarations": [ - { - "constant": false, - "id": 32765, - "mutability": "mutable", - "name": "maximumAllowedAssets", - "nameLocation": "52730:20:41", - "nodeType": "VariableDeclaration", - "scope": 32903, - "src": "52722:28:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "52722:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32766, - "nodeType": "VariableDeclarationStatement", - "src": "52722:28:41" - }, - { - "assignments": [ - 32768 - ], - "declarations": [ - { - "constant": false, - "id": 32768, - "mutability": "mutable", - "name": "totalShares", - "nameLocation": "52768:11:41", - "nodeType": "VariableDeclaration", - "scope": 32903, - "src": "52760:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "52760:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32769, - "nodeType": "VariableDeclarationStatement", - "src": "52760:19:41" - }, - { - "id": 32802, - "nodeType": "Block", - "src": "52789:338:41", - "statements": [ - { - "assignments": [ - 32771 - ], - "declarations": [ - { - "constant": false, - "id": 32771, - "mutability": "mutable", - "name": "assetsBeforeAdaptorCall", - "nameLocation": "52811:23:41", - "nodeType": "VariableDeclaration", - "scope": 32802, - "src": "52803:31:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32770, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "52803:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32775, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 32773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52849:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32772, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "52837:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "52837:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "52803:52:41" - }, - { - "expression": { - "id": 32785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32776, - "name": "minimumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32762, - "src": "52869:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31653138", - "id": 32779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52926:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 32780, - "name": "allowedRebalanceDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32693, - "src": "52933:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52926:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 32782, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "52925:34:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "31653138", - "id": 32783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "52961:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - ], - "expression": { - "id": 32777, - "name": "assetsBeforeAdaptorCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32771, - "src": "52892:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "52916:8:41", - "memberName": "mulDivUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "52892:32:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "52892:74:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52869:97:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32786, - "nodeType": "ExpressionStatement", - "src": "52869:97:41" - }, - { - "expression": { - "id": 32796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32787, - "name": "maximumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32765, - "src": "52980:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31653138", - "id": 32790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53037:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 32791, - "name": "allowedRebalanceDeviation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32693, - "src": "53044:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53037:32:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 32793, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "53036:34:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "31653138", - "id": 32794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53072:4:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1e18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - ], - "expression": { - "id": 32788, - "name": "assetsBeforeAdaptorCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32771, - "src": "53003:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53027:8:41", - "memberName": "mulDivUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "53003:32:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 32795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53003:74:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "52980:97:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32797, - "nodeType": "ExpressionStatement", - "src": "52980:97:41" - }, - { - "expression": { - "id": 32800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32798, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32768, - "src": "53091:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 32799, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "53105:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53091:25:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32801, - "nodeType": "ExpressionStatement", - "src": "53091:25:41" - } - ] - }, - { - "body": { - "id": 32867, - "nodeType": "Block", - "src": "53211:437:41", - "statements": [ - { - "assignments": [ - 32815 - ], - "declarations": [ - { - "constant": false, - "id": 32815, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "53233:7:41", - "nodeType": "VariableDeclaration", - "scope": 32867, - "src": "53225:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "53225:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 32820, - "initialValue": { - "expression": { - "baseExpression": { - "id": 32816, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32744, - "src": "53243:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32818, - "indexExpression": { - "id": 32817, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53248:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53243:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53251:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 32729, - "src": "53243:15:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "53225:33:41" - }, - { - "condition": { - "id": 32824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "53349:26:41", - "subExpression": { - "baseExpression": { - "id": 32821, - "name": "adaptorCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30406, - "src": "53350:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 32823, - "indexExpression": { - "id": 32822, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "53367:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53350:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32829, - "nodeType": "IfStatement", - "src": "53345:79:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 32826, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "53416:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 32825, - "name": "Cellar__CallToAdaptorNotAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32685, - "src": "53384:31:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 32827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53384:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32828, - "nodeType": "RevertStatement", - "src": "53377:47:41" - } - }, - { - "body": { - "id": 32865, - "nodeType": "Block", - "src": "53490:148:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 32847, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32744, - "src": "53537:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32849, - "indexExpression": { - "id": 32848, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53542:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53537:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32850, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53545:8:41", - "memberName": "callData", - "nodeType": "MemberAccess", - "referencedDeclaration": 32732, - "src": "53537:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 32852, - "indexExpression": { - "id": 32851, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32831, - "src": "53554:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53537:19:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 32844, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "53508:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 32846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53516:20:41", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 24224, - "src": "53508:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 32853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53508:49:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 32854, - "nodeType": "ExpressionStatement", - "src": "53508:49:41" - }, - { - "eventCall": { - "arguments": [ - { - "id": 32856, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "53594:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 32857, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32744, - "src": "53603:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32859, - "indexExpression": { - "id": 32858, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53608:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53603:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32860, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53611:8:41", - "memberName": "callData", - "nodeType": "MemberAccess", - "referencedDeclaration": 32732, - "src": "53603:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 32862, - "indexExpression": { - "id": 32861, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32831, - "src": "53620:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53603:19:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 32855, - "name": "AdaptorCalled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32739, - "src": "53580:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 32863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53580:43:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32864, - "nodeType": "EmitStatement", - "src": "53575:48:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32834, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32831, - "src": "53456:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "expression": { - "baseExpression": { - "id": 32835, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32744, - "src": "53460:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32837, - "indexExpression": { - "id": 32836, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53465:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "53460:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32838, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53468:8:41", - "memberName": "callData", - "nodeType": "MemberAccess", - "referencedDeclaration": 32732, - "src": "53460:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 32839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53477:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "53460:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53456:27:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32866, - "initializationExpression": { - "assignments": [ - 32831 - ], - "declarations": [ - { - "constant": false, - "id": 32831, - "mutability": "mutable", - "name": "j", - "nameLocation": "53449:1:41", - "nodeType": "VariableDeclaration", - "scope": 32866, - "src": "53443:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 32830, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "53443:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 32833, - "initialValue": { - "hexValue": "30", - "id": 32832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53453:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "53443:11:41" - }, - "loopExpression": { - "expression": { - "id": 32842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "53485:3:41", - "subExpression": { - "id": 32841, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32831, - "src": "53485:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 32843, - "nodeType": "ExpressionStatement", - "src": "53485:3:41" - }, - "nodeType": "ForStatement", - "src": "53438:200:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53189:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 32808, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32744, - "src": "53193:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "53198:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "53193:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53189:15:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32868, - "initializationExpression": { - "assignments": [ - 32804 - ], - "declarations": [ - { - "constant": false, - "id": 32804, - "mutability": "mutable", - "name": "i", - "nameLocation": "53182:1:41", - "nodeType": "VariableDeclaration", - "scope": 32868, - "src": "53176:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 32803, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "53176:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 32806, - "initialValue": { - "hexValue": "30", - "id": 32805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53186:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "53176:11:41" - }, - "loopExpression": { - "expression": { - "id": 32812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "53206:3:41", - "subExpression": { - "id": 32811, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32804, - "src": "53208:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 32813, - "nodeType": "ExpressionStatement", - "src": "53206:3:41" - }, - "nodeType": "ForStatement", - "src": "53171:477:41" - }, - { - "assignments": [ - 32870 - ], - "declarations": [ - { - "constant": false, - "id": 32870, - "mutability": "mutable", - "name": "assets", - "nameLocation": "53805:6:41", - "nodeType": "VariableDeclaration", - "scope": 32903, - "src": "53797:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32869, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "53797:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 32874, - "initialValue": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 32872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "53826:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 32871, - "name": "_accounting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32222, - "src": "53814:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bool_$returns$_t_uint256_$", - "typeString": "function (bool) view returns (uint256)" - } - }, - "id": 32873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53814:18:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "53797:35:41" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 32881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32875, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32870, - "src": "53846:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 32876, - "name": "minimumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32762, - "src": "53855:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53846:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32878, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32870, - "src": "53879:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 32879, - "name": "maximumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32765, - "src": "53888:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "53879:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "53846:62:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32889, - "nodeType": "IfStatement", - "src": "53842:190:41", - "trueBody": { - "id": 32888, - "nodeType": "Block", - "src": "53910:122:41", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 32883, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32870, - "src": "53970:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32884, - "name": "minimumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32762, - "src": "53978:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32885, - "name": "maximumAllowedAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32765, - "src": "54000:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32882, - "name": "Cellar__TotalAssetDeviatedOutsideRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32666, - "src": "53931:38:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256) pure" - } - }, - "id": 32886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "53931:90:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32887, - "nodeType": "RevertStatement", - "src": "53924:97:41" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32890, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32768, - "src": "54045:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 32891, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "54060:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "54045:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32898, - "nodeType": "IfStatement", - "src": "54041:102:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 32894, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "54118:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 32895, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32768, - "src": "54131:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 32893, - "name": "Cellar__TotalSharesMustRemainConstant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32673, - "src": "54080:37:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 32896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "54080:63:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32897, - "nodeType": "RevertStatement", - "src": "54073:70:41" - } - }, - { - "expression": { - "id": 32901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32899, - "name": "blockExternalReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32727, - "src": "54154:21:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 32900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54178:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "54154:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32902, - "nodeType": "ExpressionStatement", - "src": "54154:29:41" - } - ] - }, - "documentation": { - "id": 32740, - "nodeType": "StructuredDocumentation", - "src": "51714:696:41", - "text": " @notice Allows strategists to manage their Cellar using arbitrary logic calls to adaptors.\n @dev There are several safety checks in this function to prevent strategists from abusing it.\n - `blockExternalReceiver`\n - `totalAssets` must not change by much\n - `totalShares` must remain constant\n - adaptors must be set up to be used with this cellar\n @dev Since `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending\n multiple `callOnAdaptor` calls rapidly, to gradually change the share price.\n To mitigate this, rate limiting will be put in place on the Sommelier side." - }, - "functionSelector": "4e84befe", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 32747, - "kind": "modifierInvocation", - "modifierName": { - "id": 32746, - "name": "onlyOwner", - "nameLocations": [ - "52474:9:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26548, - "src": "52474:9:41" - }, - "nodeType": "ModifierInvocation", - "src": "52474:9:41" - }, - { - "id": 32749, - "kind": "modifierInvocation", - "modifierName": { - "id": 32748, - "name": "nonReentrant", - "nameLocations": [ - "52484:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 30130, - "src": "52484:12:41" - }, - "nodeType": "ModifierInvocation", - "src": "52484:12:41" - } - ], - "name": "callOnAdaptor", - "nameLocation": "52424:13:41", - "parameters": { - "id": 32745, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32744, - "mutability": "mutable", - "name": "data", - "nameLocation": "52459:4:41", - "nodeType": "VariableDeclaration", - "scope": 32904, - "src": "52438:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall[]" - }, - "typeName": { - "baseType": { - "id": 32742, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32741, - "name": "AdaptorCall", - "nameLocations": [ - "52438:11:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32733, - "src": "52438:11:41" - }, - "referencedDeclaration": 32733, - "src": "52438:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_storage_ptr", - "typeString": "struct Cellar.AdaptorCall" - } - }, - "id": 32743, - "nodeType": "ArrayTypeName", - "src": "52438:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_storage_$dyn_storage_ptr", - "typeString": "struct Cellar.AdaptorCall[]" - } - }, - "visibility": "internal" - } - ], - "src": "52437:27:41" - }, - "returnParameters": { - "id": 32750, - "nodeType": "ParameterList", - "parameters": [], - "src": "52497:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 32907, - "nodeType": "ErrorDefinition", - "src": "54397:34:41", - "nodes": [], - "documentation": { - "id": 32905, - "nodeType": "StructuredDocumentation", - "src": "54312:80:41", - "text": " @notice External contract attempted to initiate a flash loan." - }, - "errorSelector": "9448dba0", - "name": "Cellar__ExternalInitiator", - "nameLocation": "54403:25:41", - "parameters": { - "id": 32906, - "nodeType": "ParameterList", - "parameters": [], - "src": "54428:2:41" - } - }, - { - "id": 32910, - "nodeType": "ErrorDefinition", - "src": "54518:34:41", - "nodes": [], - "documentation": { - "id": 32908, - "nodeType": "StructuredDocumentation", - "src": "54437:76:41", - "text": " @notice executeOperation was not called by the Aave Pool." - }, - "errorSelector": "49456ad9", - "name": "Cellar__CallerNotAavePool", - "nameLocation": "54524:25:41", - "parameters": { - "id": 32909, - "nodeType": "ParameterList", - "parameters": [], - "src": "54549:2:41" - } - }, - { - "id": 32914, - "nodeType": "VariableDeclaration", - "src": "54636:68:41", - "nodes": [], - "constant": false, - "documentation": { - "id": 32911, - "nodeType": "StructuredDocumentation", - "src": "54558:73:41", - "text": " @notice The Aave V2 Pool contract on Ethereum Mainnet." - }, - "functionSelector": "a03e4bc3", - "mutability": "mutable", - "name": "aavePool", - "nameLocation": "54651:8:41", - "scope": 33437, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32912, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "54636:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "hexValue": "307837643237363864453332623062383062376133343534633036426441633934413639444463374139", - "id": 32913, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "54662:42:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "value": "0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9" - }, - "visibility": "public" - }, - { - "id": 33053, - "nodeType": "FunctionDefinition", - "src": "54817:1117:41", - "nodes": [], - "body": { - "id": 33052, - "nodeType": "Block", - "src": "55039:895:41", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 32938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32933, - "name": "initiator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32926, - "src": "55053:9:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "id": 32936, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "55074:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Cellar_$33437", - "typeString": "contract Cellar" - } - ], - "id": 32935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "55066:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 32934, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "55066:7:41", - "typeDescriptions": {} - } - }, - "id": 32937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55066:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "55053:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32942, - "nodeType": "IfStatement", - "src": "55049:66:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32939, - "name": "Cellar__ExternalInitiator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32907, - "src": "55088:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 32940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55088:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32941, - "nodeType": "RevertStatement", - "src": "55081:34:41" - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 32946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 32943, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "55129:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 32944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55133:6:41", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "55129:10:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 32945, - "name": "aavePool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32914, - "src": "55143:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "55129:22:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32950, - "nodeType": "IfStatement", - "src": "55125:62:41", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32947, - "name": "Cellar__CallerNotAavePool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32910, - "src": "55160:25:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 32948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55160:27:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32949, - "nodeType": "RevertStatement", - "src": "55153:34:41" - } - }, - { - "assignments": [ - 32955 - ], - "declarations": [ - { - "constant": false, - "id": 32955, - "mutability": "mutable", - "name": "data", - "nameLocation": "55219:4:41", - "nodeType": "VariableDeclaration", - "scope": 33052, - "src": "55198:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall[]" - }, - "typeName": { - "baseType": { - "id": 32953, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32952, - "name": "AdaptorCall", - "nameLocations": [ - "55198:11:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32733, - "src": "55198:11:41" - }, - "referencedDeclaration": 32733, - "src": "55198:11:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_storage_ptr", - "typeString": "struct Cellar.AdaptorCall" - } - }, - "id": 32954, - "nodeType": "ArrayTypeName", - "src": "55198:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_storage_$dyn_storage_ptr", - "typeString": "struct Cellar.AdaptorCall[]" - } - }, - "visibility": "internal" - } - ], - "id": 32963, - "initialValue": { - "arguments": [ - { - "id": 32958, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32928, - "src": "55237:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 32959, - "name": "AdaptorCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32733, - "src": "55246:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_AdaptorCall_$32733_storage_ptr_$", - "typeString": "type(struct Cellar.AdaptorCall storage pointer)" - } - }, - "id": 32960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55246:13:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(struct Cellar.AdaptorCall memory[] memory)" - } - } - ], - "id": 32961, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55245:15:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(struct Cellar.AdaptorCall memory[] memory)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$", - "typeString": "type(struct Cellar.AdaptorCall memory[] memory)" - } - ], - "expression": { - "id": 32956, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "55226:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 32957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "55230:6:41", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "55226:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 32962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55226:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "55198:63:41" - }, - { - "body": { - "id": 33018, - "nodeType": "Block", - "src": "55346:371:41", - "statements": [ - { - "assignments": [ - 32976 - ], - "declarations": [ - { - "constant": false, - "id": 32976, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "55368:7:41", - "nodeType": "VariableDeclaration", - "scope": 33018, - "src": "55360:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32975, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "55360:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 32981, - "initialValue": { - "expression": { - "baseExpression": { - "id": 32977, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32955, - "src": "55378:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32979, - "indexExpression": { - "id": 32978, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32965, - "src": "55383:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55378:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55386:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 32729, - "src": "55378:15:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "55360:33:41" - }, - { - "condition": { - "id": 32985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "55484:26:41", - "subExpression": { - "baseExpression": { - "id": 32982, - "name": "adaptorCatalogue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30406, - "src": "55485:16:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 32984, - "indexExpression": { - "id": 32983, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32976, - "src": "55502:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55485:25:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 32990, - "nodeType": "IfStatement", - "src": "55480:79:41", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 32987, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32976, - "src": "55551:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 32986, - "name": "Cellar__CallToAdaptorNotAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32685, - "src": "55519:31:41", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 32988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55519:40:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32989, - "nodeType": "RevertStatement", - "src": "55512:47:41" - } - }, - { - "body": { - "id": 33016, - "nodeType": "Block", - "src": "55625:82:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "expression": { - "baseExpression": { - "id": 33008, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32955, - "src": "55672:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 33010, - "indexExpression": { - "id": 33009, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32965, - "src": "55677:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55672:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 33011, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55680:8:41", - "memberName": "callData", - "nodeType": "MemberAccess", - "referencedDeclaration": 32732, - "src": "55672:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 33013, - "indexExpression": { - "id": 33012, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "55689:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55672:19:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 33005, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32976, - "src": "55643:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55651:20:41", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 24224, - "src": "55643:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 33014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55643:49:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 33015, - "nodeType": "ExpressionStatement", - "src": "55643:49:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32995, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "55591:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "expression": { - "baseExpression": { - "id": 32996, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32955, - "src": "55595:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32998, - "indexExpression": { - "id": 32997, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32965, - "src": "55600:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55595:7:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AdaptorCall_$32733_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory" - } - }, - "id": 32999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55603:8:41", - "memberName": "callData", - "nodeType": "MemberAccess", - "referencedDeclaration": 32732, - "src": "55595:16:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 33000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55612:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "55595:23:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55591:27:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33017, - "initializationExpression": { - "assignments": [ - 32992 - ], - "declarations": [ - { - "constant": false, - "id": 32992, - "mutability": "mutable", - "name": "j", - "nameLocation": "55584:1:41", - "nodeType": "VariableDeclaration", - "scope": 33017, - "src": "55578:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 32991, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "55578:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 32994, - "initialValue": { - "hexValue": "30", - "id": 32993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55588:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "55578:11:41" - }, - "loopExpression": { - "expression": { - "id": 33003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "55620:3:41", - "subExpression": { - "id": 33002, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "55620:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 33004, - "nodeType": "ExpressionStatement", - "src": "55620:3:41" - }, - "nodeType": "ForStatement", - "src": "55573:134:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 32971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 32968, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32965, - "src": "55324:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 32969, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32955, - "src": "55328:4:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Cellar.AdaptorCall memory[] memory" - } - }, - "id": 32970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55333:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "55328:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55324:15:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33019, - "initializationExpression": { - "assignments": [ - 32965 - ], - "declarations": [ - { - "constant": false, - "id": 32965, - "mutability": "mutable", - "name": "i", - "nameLocation": "55317:1:41", - "nodeType": "VariableDeclaration", - "scope": 33019, - "src": "55311:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 32964, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "55311:5:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 32967, - "initialValue": { - "hexValue": "30", - "id": 32966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55321:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "55311:11:41" - }, - "loopExpression": { - "expression": { - "id": 32973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "55341:3:41", - "subExpression": { - "id": 32972, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32965, - "src": "55343:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 32974, - "nodeType": "ExpressionStatement", - "src": "55341:3:41" - }, - "nodeType": "ForStatement", - "src": "55306:411:41" - }, - { - "body": { - "id": 33048, - "nodeType": "Block", - "src": "55815:91:41", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 33037, - "name": "aavePool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32914, - "src": "55858:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 33038, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32921, - "src": "55869:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33040, - "indexExpression": { - "id": 33039, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33021, - "src": "55877:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55869:10:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "baseExpression": { - "id": 33041, - "name": "premiums", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32924, - "src": "55882:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33043, - "indexExpression": { - "id": 33042, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33021, - "src": "55891:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55882:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55869:24:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33045, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "55868:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 33032, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32918, - "src": "55835:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 33034, - "indexExpression": { - "id": 33033, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33021, - "src": "55842:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "55835:9:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33031, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34556, - "src": "55829:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$34556_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 33035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55829:16:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55846:11:41", - "memberName": "safeApprove", - "nodeType": "MemberAccess", - "referencedDeclaration": 35306, - "src": "55829:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$34556_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$34556_$", - "typeString": "function (contract ERC20,address,uint256)" - } - }, - "id": 33046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "55829:66:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33047, - "nodeType": "ExpressionStatement", - "src": "55829:66:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33024, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33021, - "src": "55790:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 33025, - "name": "amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32921, - "src": "55794:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "55802:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "55794:14:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "55790:18:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33049, - "initializationExpression": { - "assignments": [ - 33021 - ], - "declarations": [ - { - "constant": false, - "id": 33021, - "mutability": "mutable", - "name": "i", - "nameLocation": "55783:1:41", - "nodeType": "VariableDeclaration", - "scope": 33049, - "src": "55775:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33020, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "55775:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33023, - "initialValue": { - "hexValue": "30", - "id": 33022, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55787:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "55775:13:41" - }, - "loopExpression": { - "expression": { - "id": 33029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "55810:3:41", - "subExpression": { - "id": 33028, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33021, - "src": "55812:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33030, - "nodeType": "ExpressionStatement", - "src": "55810:3:41" - }, - "nodeType": "ForStatement", - "src": "55770:136:41" - }, - { - "expression": { - "hexValue": "74727565", - "id": 33050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "55923:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 32932, - "id": 33051, - "nodeType": "Return", - "src": "55916:11:41" - } - ] - }, - "documentation": { - "id": 32915, - "nodeType": "StructuredDocumentation", - "src": "54711:101:41", - "text": " @notice Allows strategist to utilize Aave flashloans while rebalancing the cellar." - }, - "functionSelector": "920f5c84", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeOperation", - "nameLocation": "54826:16:41", - "parameters": { - "id": 32929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32918, - "mutability": "mutable", - "name": "assets", - "nameLocation": "54871:6:41", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "54852:25:41", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 32916, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "54852:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 32917, - "nodeType": "ArrayTypeName", - "src": "54852:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32921, - "mutability": "mutable", - "name": "amounts", - "nameLocation": "54906:7:41", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "54887:26:41", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 32919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "54887:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32920, - "nodeType": "ArrayTypeName", - "src": "54887:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32924, - "mutability": "mutable", - "name": "premiums", - "nameLocation": "54942:8:41", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "54923:27:41", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 32922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "54923:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32923, - "nodeType": "ArrayTypeName", - "src": "54923:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32926, - "mutability": "mutable", - "name": "initiator", - "nameLocation": "54968:9:41", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "54960:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 32925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "54960:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32928, - "mutability": "mutable", - "name": "params", - "nameLocation": "55002:6:41", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "54987:21:41", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 32927, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "54987:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "54842:172:41" - }, - "returnParameters": { - "id": 32932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32931, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33053, - "src": "55033:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32930, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "55033:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "55032:6:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33073, - "nodeType": "FunctionDefinition", - "src": "56208:144:41", - "nodes": [], - "body": { - "id": 33072, - "nodeType": "Block", - "src": "56276:76:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33062, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "56290:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33065, - "nodeType": "IfStatement", - "src": "56286:24:41", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 33063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "56309:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 33061, - "id": 33064, - "nodeType": "Return", - "src": "56302:8:41" - } - }, - { - "expression": { - "expression": { - "arguments": [ - { - "id": 33068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "56333:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 33067, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56333:7:41", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 33066, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "56328:4:41", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "56328:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 33070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "56342:3:41", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "56328:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33061, - "id": 33071, - "nodeType": "Return", - "src": "56321:24:41" - } - ] - }, - "baseFunctions": [ - 35052 - ], - "documentation": { - "id": 33054, - "nodeType": "StructuredDocumentation", - "src": "56051:152:41", - "text": " @notice Total amount of assets that can be deposited for a user.\n @return assets maximum amount of assets that can be deposited" - }, - "functionSelector": "402d267d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "maxDeposit", - "nameLocation": "56217:10:41", - "overrides": { - "id": 33058, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "56249:8:41" - }, - "parameters": { - "id": 33057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33056, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33073, - "src": "56228:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33055, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "56228:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "56227:9:41" - }, - "returnParameters": { - "id": 33061, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33060, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33073, - "src": "56267:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33059, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56267:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "56266:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 33093, - "nodeType": "FunctionDefinition", - "src": "56509:141:41", - "nodes": [], - "body": { - "id": 33092, - "nodeType": "Block", - "src": "56574:76:41", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33082, - "name": "isShutdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30955, - "src": "56588:10:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33085, - "nodeType": "IfStatement", - "src": "56584:24:41", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 33083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "56607:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 33081, - "id": 33084, - "nodeType": "Return", - "src": "56600:8:41" - } - }, - { - "expression": { - "expression": { - "arguments": [ - { - "id": 33088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "56631:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 33087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56631:7:41", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 33086, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "56626:4:41", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "56626:13:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 33090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "56640:3:41", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "56626:17:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33081, - "id": 33091, - "nodeType": "Return", - "src": "56619:24:41" - } - ] - }, - "baseFunctions": [ - 35066 - ], - "documentation": { - "id": 33074, - "nodeType": "StructuredDocumentation", - "src": "56358:146:41", - "text": " @notice Total amount of shares that can be minted for a user.\n @return shares maximum amount of shares that can be minted" - }, - "functionSelector": "c63d75b6", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "maxMint", - "nameLocation": "56518:7:41", - "overrides": { - "id": 33078, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "56547:8:41" - }, - "parameters": { - "id": 33077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33076, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33093, - "src": "56526:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33075, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "56526:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "56525:9:41" - }, - "returnParameters": { - "id": 33081, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33080, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33093, - "src": "56565:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33079, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "56565:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "56564:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 33129, - "nodeType": "FunctionDefinition", - "src": "57000:414:41", - "nodes": [], - "body": { - "id": 33128, - "nodeType": "Block", - "src": "57062:352:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 33102 - ], - "declarations": [ - { - "constant": false, - "id": 33102, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "57080:7:41", - "nodeType": "VariableDeclaration", - "scope": 33128, - "src": "57072:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "57072:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 33107, - "initialValue": { - "expression": { - "baseExpression": { - "id": 33103, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "57090:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33105, - "indexExpression": { - "id": 33104, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33096, - "src": "57106:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "57090:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33106, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57116:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 29734, - "src": "57090:33:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57072:51:41" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "expression": { - "id": 33113, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "57215:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BaseAdaptor_$43962_$", - "typeString": "type(contract BaseAdaptor)" - } - }, - "id": 33114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57227:7:41", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 43787, - "src": "57215:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function BaseAdaptor.deposit(uint256,bytes memory,bytes memory)" - } - }, - "id": 33115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57235:8:41", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "57215:28:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 33116, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33098, - "src": "57261:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "baseExpression": { - "id": 33117, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "57285:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33119, - "indexExpression": { - "id": 33118, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33096, - "src": "57301:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "57285:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33120, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57311:11:41", - "memberName": "adaptorData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29738, - "src": "57285:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - { - "expression": { - "baseExpression": { - "id": 33121, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "57340:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33123, - "indexExpression": { - "id": 33122, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33096, - "src": "57356:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "57340:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33124, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57366:17:41", - "memberName": "configurationData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29740, - "src": "57340:43:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - }, - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "id": 33111, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "57175:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 33112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57179:18:41", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "57175:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 33125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "57175:222:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 33108, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33102, - "src": "57133:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57141:20:41", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 24224, - "src": "57133:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 33126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "57133:274:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 33127, - "nodeType": "ExpressionStatement", - "src": "57133:274:41" - } - ] - }, - "documentation": { - "id": 33094, - "nodeType": "StructuredDocumentation", - "src": "56767:228:41", - "text": " @dev Deposit into a position according to its position type and update related state.\n @param position address to deposit funds into\n @param assets the amount of assets to deposit into the position" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_depositTo", - "nameLocation": "57009:10:41", - "parameters": { - "id": 33099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33096, - "mutability": "mutable", - "name": "position", - "nameLocation": "57027:8:41", - "nodeType": "VariableDeclaration", - "scope": 33129, - "src": "57020:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33095, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57020:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33098, - "mutability": "mutable", - "name": "assets", - "nameLocation": "57045:6:41", - "nodeType": "VariableDeclaration", - "scope": 33129, - "src": "57037:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33097, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57037:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "57019:33:41" - }, - "returnParameters": { - "id": 33100, - "nodeType": "ParameterList", - "parameters": [], - "src": "57062:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 33168, - "nodeType": "FunctionDefinition", - "src": "57719:462:41", - "nodes": [], - "body": { - "id": 33167, - "nodeType": "Block", - "src": "57802:379:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 33140 - ], - "declarations": [ - { - "constant": false, - "id": 33140, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "57820:7:41", - "nodeType": "VariableDeclaration", - "scope": 33167, - "src": "57812:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "57812:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 33145, - "initialValue": { - "expression": { - "baseExpression": { - "id": 33141, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "57830:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33143, - "indexExpression": { - "id": 33142, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33132, - "src": "57846:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "57830:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33144, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57856:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 29734, - "src": "57830:33:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "57812:51:41" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "expression": { - "id": 33151, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "57955:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BaseAdaptor_$43962_$", - "typeString": "type(contract BaseAdaptor)" - } - }, - "id": 33152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57967:8:41", - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 43799, - "src": "57955:20:41", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function BaseAdaptor.withdraw(uint256,address,bytes memory,bytes memory)" - } - }, - "id": 33153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57976:8:41", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "57955:29:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 33154, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33134, - "src": "58002:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33155, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33136, - "src": "58026:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "id": 33156, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58052:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33158, - "indexExpression": { - "id": 33157, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33132, - "src": "58068:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58052:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33159, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58078:11:41", - "memberName": "adaptorData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29738, - "src": "58052:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - { - "expression": { - "baseExpression": { - "id": 33160, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58107:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33162, - "indexExpression": { - "id": 33161, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33132, - "src": "58123:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58107:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58133:17:41", - "memberName": "configurationData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29740, - "src": "58107:43:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - }, - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "id": 33149, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "57915:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 33150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "57919:18:41", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "57915:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 33164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "57915:249:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 33146, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33140, - "src": "57873:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "57881:20:41", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 24224, - "src": "57873:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 33165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "57873:301:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 33166, - "nodeType": "ExpressionStatement", - "src": "57873:301:41" - } - ] - }, - "documentation": { - "id": 33130, - "nodeType": "StructuredDocumentation", - "src": "57420:294:41", - "text": " @dev Withdraw from a position according to its position type and update related state.\n @param position address to withdraw funds from\n @param assets the amount of assets to withdraw from the position\n @param receiver the address to sent withdrawn assets to" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_withdrawFrom", - "nameLocation": "57728:13:41", - "parameters": { - "id": 33137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33132, - "mutability": "mutable", - "name": "position", - "nameLocation": "57749:8:41", - "nodeType": "VariableDeclaration", - "scope": 33168, - "src": "57742:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33131, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "57742:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33134, - "mutability": "mutable", - "name": "assets", - "nameLocation": "57767:6:41", - "nodeType": "VariableDeclaration", - "scope": 33168, - "src": "57759:14:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33133, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "57759:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33136, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "57783:8:41", - "nodeType": "VariableDeclaration", - "scope": 33168, - "src": "57775:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "57775:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "57741:51:41" - }, - "returnParameters": { - "id": 33138, - "nodeType": "ParameterList", - "parameters": [], - "src": "57802:0:41" - }, - "scope": 33437, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 33201, - "nodeType": "FunctionDefinition", - "src": "58357:427:41", - "nodes": [], - "body": { - "id": 33200, - "nodeType": "Block", - "src": "58433:351:41", - "nodes": [], - "statements": [ - { - "condition": { - "expression": { - "baseExpression": { - "id": 33176, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58513:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33178, - "indexExpression": { - "id": 33177, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33171, - "src": "58529:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58513:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58539:6:41", - "memberName": "isDebt", - "nodeType": "MemberAccess", - "referencedDeclaration": 29736, - "src": "58513:32:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33182, - "nodeType": "IfStatement", - "src": "58509:46:41", - "trueBody": { - "expression": { - "hexValue": "30", - "id": 33180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "58554:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 33175, - "id": 33181, - "nodeType": "Return", - "src": "58547:8:41" - } - }, - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 33190, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58665:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33192, - "indexExpression": { - "id": 33191, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33171, - "src": "58681:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58665:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33193, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58691:11:41", - "memberName": "adaptorData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29738, - "src": "58665:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - { - "expression": { - "baseExpression": { - "id": 33194, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58720:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33196, - "indexExpression": { - "id": 33195, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33171, - "src": "58736:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58720:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33197, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58746:17:41", - "memberName": "configurationData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29740, - "src": "58720:43:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - }, - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 33184, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "58596:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33186, - "indexExpression": { - "id": 33185, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33171, - "src": "58612:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "58596:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33187, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58622:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 29734, - "src": "58596:33:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33183, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "58584:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BaseAdaptor_$43962_$", - "typeString": "type(contract BaseAdaptor)" - } - }, - "id": 33188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "58584:46:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseAdaptor_$43962", - "typeString": "contract BaseAdaptor" - } - }, - "id": 33189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "58631:16:41", - "memberName": "withdrawableFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 43817, - "src": "58584:63:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (bytes memory,bytes memory) view external returns (uint256)" - } - }, - "id": 33198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "58584:193:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33175, - "id": 33199, - "nodeType": "Return", - "src": "58565:212:41" - } - ] - }, - "documentation": { - "id": 33169, - "nodeType": "StructuredDocumentation", - "src": "58187:165:41", - "text": " @dev Get the withdrawable balance of a position according to its position type.\n @param position position to get the withdrawable balance of" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_withdrawableFrom", - "nameLocation": "58366:17:41", - "parameters": { - "id": 33172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33171, - "mutability": "mutable", - "name": "position", - "nameLocation": "58391:8:41", - "nodeType": "VariableDeclaration", - "scope": 33201, - "src": "58384:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33170, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "58384:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "58383:17:41" - }, - "returnParameters": { - "id": 33175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33174, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33201, - "src": "58424:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "58424:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "58423:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 33227, - "nodeType": "FunctionDefinition", - "src": "59116:223:41", - "nodes": [], - "body": { - "id": 33226, - "nodeType": "Block", - "src": "59185:154:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 33210 - ], - "declarations": [ - { - "constant": false, - "id": 33210, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "59203:7:41", - "nodeType": "VariableDeclaration", - "scope": 33226, - "src": "59195:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "59195:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 33215, - "initialValue": { - "expression": { - "baseExpression": { - "id": 33211, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "59213:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33213, - "indexExpression": { - "id": 33212, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33204, - "src": "59229:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "59213:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33214, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59239:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 29734, - "src": "59213:33:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "59195:51:41" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 33220, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "59294:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33222, - "indexExpression": { - "id": 33221, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33204, - "src": "59310:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "59294:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59320:11:41", - "memberName": "adaptorData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29738, - "src": "59294:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "arguments": [ - { - "id": 33217, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33210, - "src": "59275:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33216, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "59263:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BaseAdaptor_$43962_$", - "typeString": "type(contract BaseAdaptor)" - } - }, - "id": 33218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59263:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseAdaptor_$43962", - "typeString": "contract BaseAdaptor" - } - }, - "id": 33219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59284:9:41", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 43807, - "src": "59263:30:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (bytes memory) view external returns (uint256)" - } - }, - "id": 33224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59263:69:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33208, - "id": 33225, - "nodeType": "Return", - "src": "59256:76:41" - } - ] - }, - "documentation": { - "id": 33202, - "nodeType": "StructuredDocumentation", - "src": "58790:321:41", - "text": " @dev Get the balance of a position according to its position type.\n @dev For ERC4626 position balances, this uses `previewRedeem` as opposed\n to `convertToAssets` so that balanceOf ERC4626 positions includes fees taken on withdraw.\n @param position position to get the balance of" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_balanceOf", - "nameLocation": "59125:10:41", - "parameters": { - "id": 33205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33204, - "mutability": "mutable", - "name": "position", - "nameLocation": "59143:8:41", - "nodeType": "VariableDeclaration", - "scope": 33227, - "src": "59136:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33203, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "59136:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "59135:17:41" - }, - "returnParameters": { - "id": 33208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33207, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33227, - "src": "59176:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59176:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "59175:9:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 33254, - "nodeType": "FunctionDefinition", - "src": "59476:217:41", - "nodes": [], - "body": { - "id": 33253, - "nodeType": "Block", - "src": "59541:152:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 33237 - ], - "declarations": [ - { - "constant": false, - "id": 33237, - "mutability": "mutable", - "name": "adaptor", - "nameLocation": "59559:7:41", - "nodeType": "VariableDeclaration", - "scope": 33253, - "src": "59551:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "59551:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 33242, - "initialValue": { - "expression": { - "baseExpression": { - "id": 33238, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "59569:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33240, - "indexExpression": { - "id": 33239, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33230, - "src": "59585:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "59569:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59595:7:41", - "memberName": "adaptor", - "nodeType": "MemberAccess", - "referencedDeclaration": 29734, - "src": "59569:33:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "59551:51:41" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 33247, - "name": "getPositionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30309, - "src": "59648:15:41", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$", - "typeString": "mapping(uint32 => struct Registry.PositionData storage ref)" - } - }, - "id": 33249, - "indexExpression": { - "id": 33248, - "name": "position", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33230, - "src": "59664:8:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "59648:25:41", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PositionData_$29741_storage", - "typeString": "struct Registry.PositionData storage ref" - } - }, - "id": 33250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59674:11:41", - "memberName": "adaptorData", - "nodeType": "MemberAccess", - "referencedDeclaration": 29738, - "src": "59648:37:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "arguments": [ - { - "id": 33244, - "name": "adaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33237, - "src": "59631:7:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33243, - "name": "BaseAdaptor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43962, - "src": "59619:11:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BaseAdaptor_$43962_$", - "typeString": "type(contract BaseAdaptor)" - } - }, - "id": 33245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59619:20:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseAdaptor_$43962", - "typeString": "contract BaseAdaptor" - } - }, - "id": 33246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59640:7:41", - "memberName": "assetOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 43826, - "src": "59619:28:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (bytes memory) view external returns (contract ERC20)" - } - }, - "id": 33251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59619:67:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "functionReturnParameters": 33235, - "id": 33252, - "nodeType": "Return", - "src": "59612:74:41" - } - ] - }, - "documentation": { - "id": 33228, - "nodeType": "StructuredDocumentation", - "src": "59345:126:41", - "text": " @dev Get the asset of a position according to its position type.\n @param position to get the asset of" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_assetOf", - "nameLocation": "59485:8:41", - "parameters": { - "id": 33231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33230, - "mutability": "mutable", - "name": "position", - "nameLocation": "59501:8:41", - "nodeType": "VariableDeclaration", - "scope": 33254, - "src": "59494:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33229, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "59494:6:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "59493:17:41" - }, - "returnParameters": { - "id": 33235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33234, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33254, - "src": "59534:5:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - }, - "typeName": { - "id": 33233, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33232, - "name": "ERC20", - "nameLocations": [ - "59534:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "59534:5:41" - }, - "referencedDeclaration": 34556, - "src": "59534:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "visibility": "internal" - } - ], - "src": "59533:7:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 33296, - "nodeType": "FunctionDefinition", - "src": "59778:263:41", - "nodes": [], - "body": { - "id": 33295, - "nodeType": "Block", - "src": "59853:188:41", - "nodes": [], - "statements": [ - { - "expression": { - "id": 33270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33262, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33260, - "src": "59863:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 33267, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "59884:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59900:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "59884:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "59872:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (contract ERC20[] memory)" - }, - "typeName": { - "baseType": { - "id": 33264, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33263, - "name": "ERC20", - "nameLocations": [ - "59876:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "59876:5:41" - }, - "referencedDeclaration": 34556, - "src": "59876:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33265, - "nodeType": "ArrayTypeName", - "src": "59876:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - } - }, - "id": 33269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59872:35:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "src": "59863:44:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 33271, - "nodeType": "ExpressionStatement", - "src": "59863:44:41" - }, - { - "body": { - "id": 33293, - "nodeType": "Block", - "src": "59970:65:41", - "statements": [ - { - "expression": { - "id": 33291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33283, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33260, - "src": "59984:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 33285, - "indexExpression": { - "id": 33284, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33273, - "src": "59991:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "59984:9:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 33287, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60005:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33289, - "indexExpression": { - "id": 33288, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33273, - "src": "60021:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "60005:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 33286, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "59996:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 33290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "59996:28:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "59984:40:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33292, - "nodeType": "ExpressionStatement", - "src": "59984:40:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33276, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33273, - "src": "59937:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 33277, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "59941:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "59957:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "59941:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "59937:26:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33294, - "initializationExpression": { - "assignments": [ - 33273 - ], - "declarations": [ - { - "constant": false, - "id": 33273, - "mutability": "mutable", - "name": "i", - "nameLocation": "59930:1:41", - "nodeType": "VariableDeclaration", - "scope": 33294, - "src": "59922:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "59922:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33275, - "initialValue": { - "hexValue": "30", - "id": 33274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "59934:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "59922:13:41" - }, - "loopExpression": { - "expression": { - "id": 33281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "59965:3:41", - "subExpression": { - "id": 33280, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33273, - "src": "59967:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33282, - "nodeType": "ExpressionStatement", - "src": "59965:3:41" - }, - "nodeType": "ForStatement", - "src": "59917:118:41" - } - ] - }, - "documentation": { - "id": 33255, - "nodeType": "StructuredDocumentation", - "src": "59699:74:41", - "text": " @notice Get all the credit positions underlying assets." - }, - "functionSelector": "087ed837", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPositionAssets", - "nameLocation": "59787:17:41", - "parameters": { - "id": 33256, - "nodeType": "ParameterList", - "parameters": [], - "src": "59804:2:41" - }, - "returnParameters": { - "id": 33261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33260, - "mutability": "mutable", - "name": "assets", - "nameLocation": "59845:6:41", - "nodeType": "VariableDeclaration", - "scope": 33296, - "src": "59830:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[]" - }, - "typeName": { - "baseType": { - "id": 33258, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33257, - "name": "ERC20", - "nameLocations": [ - "59830:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "59830:5:41" - }, - "referencedDeclaration": 34556, - "src": "59830:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33259, - "nodeType": "ArrayTypeName", - "src": "59830:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - }, - "visibility": "internal" - } - ], - "src": "59829:23:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 33436, - "nodeType": "FunctionDefinition", - "src": "60047:893:41", - "nodes": [], - "body": { - "id": 33435, - "nodeType": "Block", - "src": "60202:738:41", - "nodes": [], - "statements": [ - { - "assignments": [ - 33310 - ], - "declarations": [ - { - "constant": false, - "id": 33310, - "mutability": "mutable", - "name": "creditLen", - "nameLocation": "60220:9:41", - "nodeType": "VariableDeclaration", - "scope": 33435, - "src": "60212:17:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60212:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33313, - "initialValue": { - "expression": { - "id": 33311, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60232:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "60248:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "60232:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "60212:42:41" - }, - { - "assignments": [ - 33315 - ], - "declarations": [ - { - "constant": false, - "id": 33315, - "mutability": "mutable", - "name": "debtLen", - "nameLocation": "60272:7:41", - "nodeType": "VariableDeclaration", - "scope": 33435, - "src": "60264:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60264:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33318, - "initialValue": { - "expression": { - "id": 33316, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "60282:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "60296:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "60282:20:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "60264:38:41" - }, - { - "expression": { - "id": 33328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33319, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33301, - "src": "60312:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33324, - "name": "creditLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33310, - "src": "60333:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 33325, - "name": "debtLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33315, - "src": "60345:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60333:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "60321:11:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (contract ERC20[] memory)" - }, - "typeName": { - "baseType": { - "id": 33321, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33320, - "name": "ERC20", - "nameLocations": [ - "60325:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "60325:5:41" - }, - "referencedDeclaration": 34556, - "src": "60325:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33322, - "nodeType": "ArrayTypeName", - "src": "60325:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - } - }, - "id": 33327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60321:32:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "src": "60312:41:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 33329, - "nodeType": "ExpressionStatement", - "src": "60312:41:41" - }, - { - "expression": { - "id": 33338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33330, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33304, - "src": "60363:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33334, - "name": "creditLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33310, - "src": "60388:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 33335, - "name": "debtLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33315, - "src": "60400:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60388:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "60374:13:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 33331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60378:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33332, - "nodeType": "ArrayTypeName", - "src": "60378:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 33337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60374:34:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "60363:45:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 33339, - "nodeType": "ExpressionStatement", - "src": "60363:45:41" - }, - { - "expression": { - "id": 33348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33340, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33307, - "src": "60418:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33344, - "name": "creditLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33310, - "src": "60438:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 33345, - "name": "debtLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33315, - "src": "60450:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60438:19:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "60427:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (bool[] memory)" - }, - "typeName": { - "baseType": { - "id": 33341, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "60431:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33342, - "nodeType": "ArrayTypeName", - "src": "60431:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - } - }, - "id": 33347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60427:31:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "src": "60418:40:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 33349, - "nodeType": "ExpressionStatement", - "src": "60418:40:41" - }, - { - "body": { - "id": 33386, - "nodeType": "Block", - "src": "60508:154:41", - "statements": [ - { - "expression": { - "id": 33368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33360, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33301, - "src": "60522:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 33362, - "indexExpression": { - "id": 33361, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60529:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60522:9:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 33364, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60543:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33366, - "indexExpression": { - "id": 33365, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60559:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "60543:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 33363, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "60534:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 33367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60534:28:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "60522:40:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33369, - "nodeType": "ExpressionStatement", - "src": "60522:40:41" - }, - { - "expression": { - "id": 33378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33370, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33304, - "src": "60576:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 33372, - "indexExpression": { - "id": 33371, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60585:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60576:11:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 33374, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60601:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33376, - "indexExpression": { - "id": 33375, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60617:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "60601:18:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 33373, - "name": "_balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "60590:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 33377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60590:30:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60576:44:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33379, - "nodeType": "ExpressionStatement", - "src": "60576:44:41" - }, - { - "expression": { - "id": 33384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33380, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33307, - "src": "60634:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 33382, - "indexExpression": { - "id": 33381, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60641:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60634:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 33383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "60646:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "60634:17:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33385, - "nodeType": "ExpressionStatement", - "src": "60634:17:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33354, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60488:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33355, - "name": "creditLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33310, - "src": "60492:9:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60488:13:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33387, - "initializationExpression": { - "assignments": [ - 33351 - ], - "declarations": [ - { - "constant": false, - "id": 33351, - "mutability": "mutable", - "name": "i", - "nameLocation": "60481:1:41", - "nodeType": "VariableDeclaration", - "scope": 33387, - "src": "60473:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33350, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60473:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33353, - "initialValue": { - "hexValue": "30", - "id": 33352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "60485:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "60473:13:41" - }, - "loopExpression": { - "expression": { - "id": 33358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "60503:3:41", - "subExpression": { - "id": 33357, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33351, - "src": "60505:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33359, - "nodeType": "ExpressionStatement", - "src": "60503:3:41" - }, - "nodeType": "ForStatement", - "src": "60468:194:41" - }, - { - "body": { - "id": 33433, - "nodeType": "Block", - "src": "60710:224:41", - "statements": [ - { - "expression": { - "id": 33409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33398, - "name": "assets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33301, - "src": "60724:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[] memory" - } - }, - "id": 33403, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33399, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60731:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 33400, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60735:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "60751:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "60735:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60731:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60724:34:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 33405, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "60770:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33407, - "indexExpression": { - "id": 33406, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60784:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "60770:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 33404, - "name": "_assetOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33254, - "src": "60761:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$", - "typeString": "function (uint32) view returns (contract ERC20)" - } - }, - "id": 33408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60761:26:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "src": "60724:63:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33410, - "nodeType": "ExpressionStatement", - "src": "60724:63:41" - }, - { - "expression": { - "id": 33422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33411, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33304, - "src": "60801:8:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 33416, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33412, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60810:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 33413, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60814:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "60830:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "60814:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60810:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60801:36:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 33418, - "name": "debtPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30298, - "src": "60851:13:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33420, - "indexExpression": { - "id": 33419, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60865:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "60851:16:41", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 33417, - "name": "_balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "60840:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (uint32) view returns (uint256)" - } - }, - "id": 33421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "60840:28:41", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60801:67:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33423, - "nodeType": "ExpressionStatement", - "src": "60801:67:41" - }, - { - "expression": { - "id": 33431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33424, - "name": "isDebt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33307, - "src": "60882:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 33429, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33425, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60889:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 33426, - "name": "creditPositions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30294, - "src": "60893:15:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage", - "typeString": "uint32[] storage ref" - } - }, - "id": 33427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "60909:6:41", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "60893:22:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60889:26:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "60882:34:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 33430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "60919:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "60882:41:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33432, - "nodeType": "ExpressionStatement", - "src": "60882:41:41" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60692:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33393, - "name": "debtLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33315, - "src": "60696:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "60692:11:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33434, - "initializationExpression": { - "assignments": [ - 33389 - ], - "declarations": [ - { - "constant": false, - "id": 33389, - "mutability": "mutable", - "name": "i", - "nameLocation": "60685:1:41", - "nodeType": "VariableDeclaration", - "scope": 33434, - "src": "60677:9:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60677:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33391, - "initialValue": { - "hexValue": "30", - "id": 33390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "60689:1:41", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "60677:13:41" - }, - "loopExpression": { - "expression": { - "id": 33396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "60705:3:41", - "subExpression": { - "id": 33395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33389, - "src": "60707:1:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33397, - "nodeType": "ExpressionStatement", - "src": "60705:3:41" - }, - "nodeType": "ForStatement", - "src": "60672:262:41" - } - ] - }, - "functionSelector": "78e0233e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "viewPositionBalances", - "nameLocation": "60056:20:41", - "parameters": { - "id": 33297, - "nodeType": "ParameterList", - "parameters": [], - "src": "60076:2:41" - }, - "returnParameters": { - "id": 33308, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33301, - "mutability": "mutable", - "name": "assets", - "nameLocation": "60141:6:41", - "nodeType": "VariableDeclaration", - "scope": 33436, - "src": "60126:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr", - "typeString": "contract ERC20[]" - }, - "typeName": { - "baseType": { - "id": 33299, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33298, - "name": "ERC20", - "nameLocations": [ - "60126:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34556, - "src": "60126:5:41" - }, - "referencedDeclaration": 34556, - "src": "60126:5:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$34556", - "typeString": "contract ERC20" - } - }, - "id": 33300, - "nodeType": "ArrayTypeName", - "src": "60126:7:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr", - "typeString": "contract ERC20[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33304, - "mutability": "mutable", - "name": "balances", - "nameLocation": "60166:8:41", - "nodeType": "VariableDeclaration", - "scope": 33436, - "src": "60149:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "60149:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33303, - "nodeType": "ArrayTypeName", - "src": "60149:9:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33307, - "mutability": "mutable", - "name": "isDebt", - "nameLocation": "60190:6:41", - "nodeType": "VariableDeclaration", - "scope": 33436, - "src": "60176:20:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 33305, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "60176:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33306, - "nodeType": "ArrayTypeName", - "src": "60176:6:41", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "visibility": "internal" - } - ], - "src": "60125:72:41" - }, - "scope": 33437, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 30058, - "name": "ERC4626", - "nameLocations": [ - "825:7:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35137, - "src": "825:7:41" - }, - "id": 30059, - "nodeType": "InheritanceSpecifier", - "src": "825:7:41" - }, - { - "baseName": { - "id": 30060, - "name": "Owned", - "nameLocations": [ - "834:5:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26585, - "src": "834:5:41" - }, - "id": 30061, - "nodeType": "InheritanceSpecifier", - "src": "834:5:41" - }, - { - "baseName": { - "id": 30062, - "name": "ERC721Holder", - "nameLocations": [ - "841:12:41" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24007, - "src": "841:12:41" - }, - "id": 30063, - "nodeType": "InheritanceSpecifier", - "src": "841:12:41" - } ], - "canonicalName": "Cellar", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 30057, - "nodeType": "StructuredDocumentation", - "src": "653:152:41", - "text": " @title Sommelier Cellar\n @notice A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.\n @author crispymangoes" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 33437, - 24007, - 23922, - 26585, - 35137, - 34556 - ], - "name": "Cellar", - "nameLocation": "815:6:41", - "scope": 33438, - "usedErrors": [ - 30248, - 30253, - 30258, - 30265, - 30272, - 30277, - 30282, - 30285, - 30290, - 30856, - 30859, - 30946, - 30949, - 30952, - 31273, - 31276, - 31281, - 31286, - 31289, - 31296, - 31301, - 31443, - 32666, - 32673, - 32680, - 32685, - 32907, - 32910 - ] - } - ], - "license": "Apache-2.0" - }, - "id": 41 -} \ No newline at end of file + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/steward_abi/src/cellar_v2_2.rs b/steward_abi/src/cellar_v2_2.rs index e82c8cd1..f322979a 100644 --- a/steward_abi/src/cellar_v2_2.rs +++ b/steward_abi/src/cellar_v2_2.rs @@ -18,7 +18,7 @@ mod cellarv2_2_mod { use std::sync::Arc; pub static CELLARV2_2_ABI: ethers::contract::Lazy = ethers::contract::Lazy::new(|| { - serde_json :: from_str ("{\n \"abi\": [\n {\n \"inputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"_registry\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract ERC20\",\n \"name\": \"_asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"_name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"_symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"expectedAsset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__AssetMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__CallToAdaptorNotAllowed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__CallerNotAavePool\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ContractNotShutdown\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ContractShutdown\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__DebtMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxDeposit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__DepositRestricted\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ExternalInitiator\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"illiquidPosition\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__IlliquidWithdraw\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetsOwed\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__IncompleteWithdraw\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidFee\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidFeeCut\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__InvalidHoldingPosition\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"requested\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__InvalidRebalanceDeviation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidShareLockPeriod\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"depositor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__NotApprovedToDepositOnBehalf\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__Paused\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionAlreadyUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxPositions\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__PositionArrayFull\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"sharesRemaining\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__PositionNotEmpty\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionNotInCatalogue\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionNotUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__RemovingHoldingPosition\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"timeSharesAreUnlocked\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentBlock\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__SharesAreLocked\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"min\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"current\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expected\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__TotalSharesMustRemainConstant\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ZeroAssets\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ZeroShares\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"AdaptorCalled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"AdaptorCatalogueAltered\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Approval\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Deposit\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformFee\",\n \"type\": \"uint64\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformFee\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"PlatformFeeChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionAdded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"PositionCatalogueAltered\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionRemoved\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"newPosition1\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"newPosition2\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index1\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index2\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionSwapped\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldDeviation\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"RebalanceDeviationChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldPeriod\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newPeriod\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ShareLockingPeriodChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"isShutdown\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"ShutdownChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldPayoutAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"newPayoutAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"StrategistPayoutAddressChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformCut\",\n \"type\": \"uint64\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformCut\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"StrategistPlatformCutChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Withdraw\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"GRAVITY_BRIDGE_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_FEE_CUT\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_PLATFORM_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_POSITIONS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MINIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"aavePool\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"adaptorCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"addAdaptorToCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"addPosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"addPositionToCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"allowedRebalanceDeviation\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"asset\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"blockExternalReceiver\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"checkTotalAssets\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"cachePriceRouter\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"callData\",\n \"type\": \"bytes[]\"\n }\n ],\n \"internalType\": \"struct Cellar.AdaptorCall[]\",\n \"name\": \"data\",\n \"type\": \"tuple[]\"\n }\n ],\n \"name\": \"callOnAdaptor\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"convertToAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"convertToShares\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"creditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"debtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"premiums\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"initiator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"executeOperation\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"feeData\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"strategistPlatformCut\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"platformFee\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"lastAccrual\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"strategistPayoutAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"forcePositionOut\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getCreditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDebtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getPositionAssets\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"getPositionData\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isDebt\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"adaptorData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"holdingPosition\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"ignorePause\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"initiateShutdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"isPositionUsed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isShutdown\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"liftShutdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"locked\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }\n ],\n \"name\": \"multicall\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"nonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"onERC721Received\",\n \"outputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"\",\n \"type\": \"bytes4\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"positionCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"priceRouter\",\n \"outputs\": [\n {\n \"internalType\": \"contract PriceRouter\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"redeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"registry\",\n \"outputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"removeAdaptorFromCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"removePosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"removePositionFromCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"setHoldingPosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setRebalanceDeviation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newLock\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setShareLockPeriod\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"payout\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setStrategistPayoutAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"cut\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"setStrategistPlatformCut\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"shareLockPeriod\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index1\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"index2\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"swapPositions\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"toggle\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"toggleIgnorePause\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalAssetsWithdrawable\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transfer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferFrom\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userShareLockStartTime\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"viewPositionBalances\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"balances\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"bool[]\",\n \"name\": \"isDebt\",\n \"type\": \"bool[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n ],\n \"bytecode\": {\n \"object\": \"0x6001600b55610100604052670a688906bd8b0000608052662386f26fc1000060a052600060c081905260e052601480546001600160c01b0319166e2386f26fc100000a688906bd8b0000179055601580546001600160a01b03191690556202a300601755660110d9316ec000601955601a8054747d2768de32b0b80b7a3454c06bdac94a69ddc7a900610100600160a81b0319909116179055348015620000a557600080fd5b5060405162006fc938038062006fc9833981016040819052620000c89162000d47565b604051635c9fcd8560e11b8152600060048201526001600160a01b0386169063b93f9b0a90602401602060405180830381865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000134919062000e04565b848484601282828260006200014a848262000eb3565b50600162000159838262000eb3565b506002805460ff191660ff8316179055466006556200017762000495565b6007555050600980546001600160a01b039687166001600160a01b031991821617909155600a805496881696909116861790555050604051600092507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091508290a3506016805462010000600160b01b031916620100006001600160a01b0388811682029290921792839055604051635c9fcd8560e11b8152600260048201529204169063b93f9b0a90602401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000e04565b600c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600080600080600085806020019051810190620002ac9190620010cc565b60ff169450945094509450945060005b85518163ffffffff1610156200036b57620002ff868263ffffffff1681518110620002eb57620002eb62001198565b60200260200101516200053160201b60201c565b6200035881878363ffffffff16815181106200031f576200031f62001198565b6020026020010151868463ffffffff168151811062000342576200034262001198565b60200260200101516000620005f760201b60201c565b6200036381620011c4565b9050620002bc565b5060005b84518163ffffffff1610156200040a576200039e858263ffffffff1681518110620002eb57620002eb62001198565b620003f781868363ffffffff1681518110620003be57620003be62001198565b6020026020010151858463ffffffff1681518110620003e157620003e162001198565b60200260200101516001620005f760201b60201c565b6200040281620011c4565b90506200036f565b508451156200041e576200041e81620008d8565b505060148054600160801b600160c01b031916600160801b426001600160401b03160217905550508151600091506200046190602090840181019084016200120f565b5050601580546001600160a01b0319166001600160a01b039290921691909117905550620014c99950505050505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620004c9919062001313565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b1580156200058057600080fd5b505afa15801562000595573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f910160405180910390a150565b63ffffffff83166000908152600f602052604090205460ff16156200063c5760405163335894fb60e11b815263ffffffff841660048201526024015b60405180910390fd5b63ffffffff831660009081526012602052604090205460ff166200067c57604051631f9db01d60e31b815263ffffffff8416600482015260240162000633565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015620006d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000700919081019062001391565b925092509250831515821515146200073457604051632b1d0bd360e11b815263ffffffff8716600482015260240162000633565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190620007b0908262000eb3565b5060608201516002820190620007c7908262000eb3565b5090505081156200081d57600e54601011620007fa5760405163f025236d60e01b81526010600482015260240162000633565b620008178787600e620009e660201b62002aa7179092919060201c565b62000862565b600d54601011620008455760405163f025236d60e01b81526010600482015260240162000633565b620008628787600d620009e660201b62002aa7179092919060201c565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90620008c79088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b63ffffffff81166000908152600f602052604090205460ff1662000918576040516370abe85960e01b815263ffffffff8216600482015260240162000633565b6009546001600160a01b03166200092f8262000bc3565b6001600160a01b03161462000982576009546001600160a01b0316620009558262000bc3565b60405163298473c760e11b81526001600160a01b0392831660048201529116602482015260440162000633565b63ffffffff8116600090815260106020526040902054600160a01b900460ff1615620009ca57604051630a42c0f960e41b815263ffffffff8216600482015260240162000633565b6011805463ffffffff191663ffffffff92909216919091179055565b8254801562000b82578380620009fe60018462001400565b8154811062000a115762000a1162001198565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a909204909316021790559062000a75908362001400565b90505b8363ffffffff1681111562000b2c578462000a9560018362001400565b8154811062000aa85762000aa862001198565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1685828154811062000ae35762000ae362001198565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550808062000b23906200141c565b91505062000a78565b5081848463ffffffff168154811062000b495762000b4962001198565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555062000bbd565b83546001810185556000858152602090206008820401805460079092166004026101000a63ffffffff81810219909316928516029190911790555b50505050565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf9162000c0d916001019060040162001436565b602060405180830381865afa15801562000c2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c51919062000e04565b9392505050565b6001600160a01b038116811462000c6e57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000cb25762000cb262000c71565b604052919050565b600082601f83011262000ccc57600080fd5b81516001600160401b0381111562000ce85762000ce862000c71565b602062000cfe601f8301601f1916820162000c87565b828152858284870101111562000d1357600080fd5b60005b8381101562000d3357858101830151828201840152820162000d16565b506000928101909101919091529392505050565b600080600080600060a0868803121562000d6057600080fd5b855162000d6d8162000c58565b602087015190955062000d808162000c58565b60408701519094506001600160401b038082111562000d9e57600080fd5b62000dac89838a0162000cba565b9450606088015191508082111562000dc357600080fd5b62000dd189838a0162000cba565b9350608088015191508082111562000de857600080fd5b5062000df78882890162000cba565b9150509295509295909350565b60006020828403121562000e1757600080fd5b815162000c518162000c58565b600181811c9082168062000e3957607f821691505b60208210810362000e5a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000eae57600081815260208120601f850160051c8101602086101562000e895750805b601f850160051c820191505b8181101562000eaa5782815560010162000e95565b5050505b505050565b81516001600160401b0381111562000ecf5762000ecf62000c71565b62000ee78162000ee0845462000e24565b8462000e60565b602080601f83116001811462000f1f576000841562000f065750858301515b600019600386901b1c1916600185901b17855562000eaa565b600085815260208120601f198616915b8281101562000f505788860151825594840194600190910190840162000f2f565b508582101562000f6f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001600160401b0382111562000f9b5762000f9b62000c71565b5060051b60200190565b600082601f83011262000fb757600080fd5b8151602062000fd062000fca8362000f7f565b62000c87565b82815260059290921b8401810191818101908684111562000ff057600080fd5b8286015b848110156200102157805163ffffffff81168114620010135760008081fd5b835291830191830162000ff4565b509695505050505050565b600082601f8301126200103e57600080fd5b815160206200105162000fca8362000f7f565b82815260059290921b840181019181810190868411156200107157600080fd5b8286015b84811015620010215780516001600160401b03811115620010965760008081fd5b620010a68986838b010162000cba565b84525091830191830162001075565b805160ff81168114620010c757600080fd5b919050565b600080600080600060a08688031215620010e557600080fd5b85516001600160401b0380821115620010fd57600080fd5b6200110b89838a0162000fa5565b965060208801519150808211156200112257600080fd5b6200113089838a0162000fa5565b955060408801519150808211156200114757600080fd5b6200115589838a016200102c565b945060608801519150808211156200116c57600080fd5b506200117b888289016200102c565b9250506200118c60808701620010b5565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103620011e057620011e0620011ae565b6001019392505050565b8051620010c78162000c58565b80516001600160801b0381168114620010c757600080fd5b600080600080600080600080610100898b0312156200122d57600080fd5b88516001600160401b03808211156200124557600080fd5b620012538c838d0162000fa5565b995060208b01519150808211156200126a57600080fd5b620012788c838d0162000fa5565b985060408b01519150808211156200128f57600080fd5b6200129d8c838d016200102c565b975060608b0151915080821115620012b457600080fd5b50620012c38b828c016200102c565b955050620012d460808a01620010b5565b9350620012e460a08a01620011ea565b9250620012f460c08a01620011f7565b91506200130460e08a01620011f7565b90509295985092959890939650565b6000808354620013238162000e24565b600182811680156200133e5760018114620013545762001385565b60ff198416875282151583028701945062001385565b8760005260208060002060005b858110156200137c5781548a82015290840190820162001361565b50505082870194505b50929695505050505050565b600080600060608486031215620013a757600080fd5b8351620013b48162000c58565b60208501519093508015158114620013cb57600080fd5b60408501519092506001600160401b03811115620013e857600080fd5b620013f68682870162000cba565b9150509250925092565b81810381811115620014165762001416620011ae565b92915050565b6000816200142e576200142e620011ae565b506000190190565b60006020808352600084546200144c8162000e24565b808487015260406001808416600081146200147057600181146200148b57620014bb565b60ff1985168984015283151560051b890183019550620014bb565b896000528660002060005b85811015620014b35781548b820186015290830190880162001496565b8a0184019650505b509398975050505050505050565b615af080620014d96000396000f3fe608060405234801561001057600080fd5b50600436106104a05760003560e01c80637ecebe001161026d578063ba08765211610151578063d505accf116100ce578063e753e60011610092578063e753e60014610aab578063ebe3c32814610b20578063eef33eca14610b33578063ef8b30f714610b42578063f2fde38b14610b55578063f7b24e0814610b6857600080fd5b8063d505accf14610a34578063d7d4bf4514610a47578063d905777e14610a5a578063dd62ed3e14610a6d578063e1b1acb714610a9857600080fd5b8063cbdf33d011610115578063cbdf33d0146109da578063cd82f8b1146109fd578063ce96cb7714610a05578063cf30901214610a18578063d1e8840414610a2157600080fd5b8063ba0876521461099e578063bf86d690146109b1578063c244245a146109be578063c63d75b614610695578063c6e6f592146109c757600080fd5b80639fdb11b6116101ea578063ac9650d8116101ae578063ac9650d814610937578063b0a75d361461094a578063b187bd261461095d578063b3d7f6b914610965578063b460af9414610978578063b5292a991461098b57600080fd5b80639fdb11b6146108e8578063a03e4bc3146108f1578063a07bee0b14610909578063a8144e481461091c578063a9059cbb1461092457600080fd5b806395d89b411161023157806395d89b41146108985780639955a9d4146108a05780639959af94146108b35780639c552ca8146108c55780639c5f00c2146108d857600080fd5b80637ecebe001461081c5780638da5cb5b1461083c578063920f5c841461084f57806393bbeac01461086257806394bf804d1461088557600080fd5b80633d8ab1e5116103945780635e2c576e116103115780636ff1c02a116102d55780636ff1c02a1461079257806370a08231146107a157806371e99dc2146107c15780637384504f146107c957806378e0233e146107ec5780637b1039991461080357600080fd5b80635e2c576e146107315780635f6b88a014610739578063687c2b501461074c5780636925ba2c1461076c5780636e553f651461077f57600080fd5b80634e84befe116103585780634e84befe146106c8578063501eb4fe146106db578063530a3714146106ee57806359d20b4e146107015780635a400d251461072957600080fd5b80633d8ab1e51461066d5780633e3382ba14610680578063402d267d146106955780634c4602da146106a85780634cdad506146106b557600080fd5b8063150b7a021161042257806333e15be2116103e657806333e15be2146105ed5780633644e51514610600578063379e0b131461060857806338d52e0f1461061b5780633998a6811461064657600080fd5b8063150b7a021461056357806318160ddd1461058f57806318d4c1431461059857806323b872dd146105bb578063313ce567146105ce57600080fd5b806307a2d13a1161046957806307a2d13a146104fd578063087ed83714610510578063095ea7b3146105255780630a28a477146105485780630a680e181461055b57600080fd5b806251a3b7146104a557806301e1d114146104c15780630402ab63146104c957806306fdde03146104d35780630780fd3a146104e8575b600080fd5b6104ae61012c81565b6040519081526020015b60405180910390f35b6104ae610b70565b6104ae6202a30081565b6104db610bb4565b6040516104b891906149be565b6104fb6104f63660046149ea565b610c42565b005b6104ae61050b366004614a05565b610c78565b610518610c91565b6040516104b89190614a62565b610538610533366004614a8a565b610d66565b60405190151581526020016104b8565b6104ae610556366004614a05565b610dd2565b6104fb610df0565b610576610571366004614ba1565b610e68565b6040516001600160e01b031990911681526020016104b8565b6104ae60035481565b6105386105a6366004614c0c565b60136020526000908152604090205460ff1681565b6105386105c9366004614c29565b610e79565b6002546105db9060ff1681565b60405160ff90911681526020016104b8565b6104fb6105fb366004614c78565b610e8f565b6104ae610f92565b6104fb610616366004614caf565b610fac565b60095461062e906001600160a01b031681565b6040516001600160a01b0390911681526020016104b8565b6106556702c68af0bb14000081565b6040516001600160401b0390911681526020016104b8565b6104fb61067b366004614c0c565b611284565b610688611374565b6040516104b89190614cf6565b6104ae6106a3366004614c0c565b6113f8565b601a546105389060ff1681565b6104ae6106c3366004614a05565b611417565b6104fb6106d6366004614d63565b61142e565b6104fb6106e93660046149ea565b611726565b6104fb6106fc366004614a05565b611759565b61071461070f366004614a05565b611803565b60405163ffffffff90911681526020016104b8565b6104ae600281565b6104fb61183d565b6104fb610747366004614c0c565b6118c5565b6104ae61075a366004614c0c565b60186020526000908152604090205481565b6104fb61077a366004614ed4565b611946565b6104ae61078d366004614ef1565b611a89565b61065567016345785d8a000081565b6104ae6107af366004614c0c565b60046020526000908152604090205481565b610688611b03565b6107dc6107d73660046149ea565b611b60565b6040516104b89493929190614f16565b6107f4611ca9565b6040516104b893929190614f8f565b60165461062e906201000090046001600160a01b031681565b6104ae61082a366004614c0c565b60086020526000908152604090205481565b600a5461062e906001600160a01b031681565b61053861085d366004615045565b611f6f565b610538610870366004614a05565b600f6020526000908152604090205460ff1681565b6104ae610893366004614ef1565b612178565b6104db6121e6565b6104fb6108ae366004615149565b6121f3565b60165461053890610100900460ff1681565b6104fb6108d3366004614a05565b612231565b6011546107149063ffffffff1681565b6104ae60175481565b601a5461062e9061010090046001600160a01b031681565b6104fb610917366004614caf565b6122c9565b6104ae612303565b610538610932366004614a8a565b612339565b6104fb6109453660046151b9565b61234e565b6104fb610958366004614c0c565b6123d0565b610538612463565b6104ae610973366004614a05565b6124ec565b6104ae6109863660046151fa565b612503565b6104fb610999366004615231565b61255e565b6104ae6109ac3660046151fa565b612624565b6016546105389060ff1681565b6104ae60195481565b6104ae6109d5366004614a05565b612693565b6105386109e83660046149ea565b60126020526000908152604090205460ff1681565b6104ae600081565b6104ae610a13366004614c0c565b6126a6565b6104ae600b5481565b6104fb610a2f3660046149ea565b6126d5565b6104fb610a42366004615269565b612753565b600c5461062e906001600160a01b031681565b6104ae610a68366004614c0c565b612997565b6104ae610a7b3660046152da565b600560209081526000928352604080842090915290825290205481565b610714610aa6366004614a05565b6129c6565b601454601554610ae7916001600160401b0380821692680100000000000000008304821692600160801b9004909116906001600160a01b031684565b604080516001600160401b039586168152938516602085015291909316908201526001600160a01b0390911660608201526080016104b8565b6104fb610b2e366004614ed4565b6129d6565b610655670de0b6b3a764000081565b6104ae610b50366004614a05565b612a1a565b6104fb610b63366004614c0c565b612a31565b6104ae601081565b6000610b7a612c6c565b600b54600114610ba55760405162461bcd60e51b8152600401610b9c90615308565b60405180910390fd5b610baf6000612d0c565b905090565b60008054610bc19061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed9061532c565b8015610c3a5780601f10610c0f57610100808354040283529160200191610c3a565b820191906000526020600020905b815481529060010190602001808311610c1d57829003601f168201915b505050505081565b600a546001600160a01b03163314610c6c5760405162461bcd60e51b8152600401610b9c90615366565b610c7581613198565b50565b6000610c8b82610c86610b70565b61329c565b92915050565b600d546060906001600160401b03811115610cae57610cae614ab6565b604051908082528060200260200182016040528015610cd7578160200160208202803683370190505b50905060005b600d54811015610d6257610d28600d8281548110610cfd57610cfd61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1661333c565b828281518110610d3a57610d3a61538c565b6001600160a01b0390921660209283029190910190910152610d5b816153b8565b9050610cdd565b5090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a350600192915050565b600080610ddd610b70565b9050610de983826133c5565b9392505050565b600a546001600160a01b03163314610e1a5760405162461bcd60e51b8152600401610b9c90615366565b610e22613454565b6016805460ff191660019081179091556040519081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c906020015b60405180910390a1565b630a85bd0160e11b5b949350505050565b6000610e8484613478565b610e718484846134d7565b600a546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b9c90615366565b600081610f0457600d8363ffffffff1681548110610ed957610ed961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16610f44565b600e8363ffffffff1681548110610f1d57610f1d61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff165b90506000610f51826135b7565b90508015610f8157604051631c7b946d60e31b815263ffffffff8316600482015260248101829052604401610b9c565b610f8c848385613640565b50505050565b60006006544614610fa557610baf613725565b5060075490565b600a546001600160a01b03163314610fd65760405162461bcd60e51b8152600401610b9c90615366565b600080821561110857600e8463ffffffff1681548110610ff857610ff861538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600e8563ffffffff16815481106110395761103961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600e8763ffffffff168154811061107c5761107c61538c565b9060005260206000209060089182820401919006600402600e8863ffffffff16815481106110ac576110ac61538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff160217905550505061122d565b600d8463ffffffff16815481106111215761112161538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600d8563ffffffff16815481106111625761116261538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600d8763ffffffff16815481106111a5576111a561538c565b9060005260206000209060089182820401919006600402600d8863ffffffff16815481106111d5576111d561538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff16021790555050505b6040805163ffffffff84811682528381166020830152878116828401528616606082015290517fb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a9181900360800190a15050505050565b600a546001600160a01b031633146112ae5760405162461bcd60e51b8152600401610b9c90615366565b601654604051636777140560e11b81526001600160a01b038381166004830152620100009092049091169063ceee280a9060240160006040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506001600160a01b038116600081815260136020908152604091829020805460ff191660019081179091558251938452908301527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a91015b60405180910390a150565b6060600e8054806020026020016040519081016040528092919081815260200182805480156113ee57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116113b15790505b5050505050905090565b60165460009060ff161561140e57506000919050565b50600019919050565b600080611422610b70565b9050610de9838261329c565b600a546001600160a01b031633146114585760405162461bcd60e51b8152600401610b9c90615366565b600b5460011461147a5760405162461bcd60e51b8152600401610b9c90615308565b6002600b55611487613454565b61148f612c6c565b601a805460ff1916600117905560008080806114aa81612d0c565b90506114d5601954670de0b6b3a76400006114c591906153d1565b8290670de0b6b3a76400006137bf565b93506114f0601954670de0b6b3a76400006114c591906153e4565b925060035491505060005b84518160ff161015611695576000858260ff168151811061151e5761151e61538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661157357604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b868360ff168151811061158b5761158b61538c565b602002602001015160200151518160ff161015611682576115fa878460ff16815181106115ba576115ba61538c565b6020026020010151602001518260ff16815181106115da576115da61538c565b6020026020010151836001600160a01b03166137ed90919063ffffffff16565b507f7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf48382888560ff16815181106116325761163261538c565b6020026020010151602001518360ff16815181106116525761165261538c565b60200260200101516040516116689291906153f7565b60405180910390a18061167a8161541b565b915050611576565b50508061168e9061541b565b90506114fb565b5060006116a26000612d0c565b9050838110806116b157508281115b156116e05760405163628cc47560e11b8152600481018290526024810185905260448101849052606401610b9c565b600354821461171057600354604051632b40145960e21b8152600481019190915260248101839052604401610b9c565b5050601a805460ff1916905550506001600b5550565b600a546001600160a01b031633146117505760405162461bcd60e51b8152600401610b9c90615366565b610c7581613812565b600a546001600160a01b031633146117835760405162461bcd60e51b8152600401610b9c90615366565b67016345785d8a00008111156117bd576040516302d2a90f60e51b81526004810182905267016345785d8a00006024820152604401610b9c565b601980549082905560408051828152602081018490527fdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff91015b60405180910390a15050565b600d818154811061181357600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b600a546001600160a01b031633146118675760405162461bcd60e51b8152600401610b9c90615366565b60165460ff1661188a5760405163ec7165bf60e01b815260040160405180910390fd5b6016805460ff19169055604051600081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c90602001610e5e565b600a546001600160a01b031633146118ef5760405162461bcd60e51b8152600401610b9c90615366565b6001600160a01b0381166000818152601360209081526040808320805460ff191690558051938452908301919091527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a9101611369565b600a546001600160a01b031633146119705760405162461bcd60e51b8152600401610b9c90615366565b60008082156119a9576000611983610b70565b90506119948161251c6127106138d0565b92506119a5816129046127106138d0565b9150505b601654604051635c9fcd8560e11b815260026004820152620100009091046001600160a01b03169063b93f9b0a90602401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b919061543a565b600c80546001600160a01b0319166001600160a01b03929092169190911790556000611a45610b70565b90508315610f8c5782811080611a5a57508181115b15610f8c5760405163628cc47560e11b8152600481018290526024810184905260448101839052606401610b9c565b6000600b54600114611aad5760405162461bcd60e51b8152600401610b9c90615308565b6002600b556000611abd81612d0c565b9050611ac984826138ef565b915081600003611aec5760405163426f153760e11b815260040160405180910390fd5b611af7848385613906565b506001600b5592915050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156113ee576000918252602091829020805463ffffffff1684529082028301929091600491018084116113b15790505050505050905090565b601060205260009081526040902080546001820180546001600160a01b03831693600160a01b90930460ff16929190611b989061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc49061532c565b8015611c115780601f10611be657610100808354040283529160200191611c11565b820191906000526020600020905b815481529060010190602001808311611bf457829003601f168201915b505050505090806002018054611c269061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c529061532c565b8015611c9f5780601f10611c7457610100808354040283529160200191611c9f565b820191906000526020600020905b815481529060010190602001808311611c8257829003601f168201915b5050505050905084565b600d54600e546060918291829190611cc181836153e4565b6001600160401b03811115611cd857611cd8614ab6565b604051908082528060200260200182016040528015611d01578160200160208202803683370190505b509450611d0e81836153e4565b6001600160401b03811115611d2557611d25614ab6565b604051908082528060200260200182016040528015611d4e578160200160208202803683370190505b509350611d5b81836153e4565b6001600160401b03811115611d7257611d72614ab6565b604051908082528060200260200182016040528015611d9b578160200160208202803683370190505b50925060005b82811015611e8457611dbf600d8281548110610cfd57610cfd61538c565b868281518110611dd157611dd161538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e32600d8281548110611e0757611e0761538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166135b7565b858281518110611e4457611e4461538c565b6020026020010181815250506000848281518110611e6457611e6461538c565b91151560209283029190910190910152611e7d816153b8565b9050611da1565b5060005b81811015611f6757611ea6600e8281548110610cfd57610cfd61538c565b600d548790611eb590846153e4565b81518110611ec557611ec561538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611efb600e8281548110611e0757611e0761538c565b600d548690611f0a90846153e4565b81518110611f1a57611f1a61538c565b6020908102919091010152600d546001908590611f3790846153e4565b81518110611f4757611f4761538c565b91151560209283029190910190910152611f60816153b8565b9050611e88565b505050909192565b60006001600160a01b0384163014611f9a576040516304a246dd60e51b815260040160405180910390fd5b601a5461010090046001600160a01b03163314611fca576040516349456ad960e01b815260040160405180910390fd5b6000611fd883850185614d63565b905060005b81518160ff1610156120c2576000828260ff16815181106120005761200061538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661205557604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b838360ff168151811061206d5761206d61538c565b602002602001015160200151518160ff1610156120af5761209c848460ff16815181106115ba576115ba61538c565b50806120a78161541b565b915050612058565b5050806120bb9061541b565b9050611fdd565b5060005b8881101561216657601a546121569061010090046001600160a01b03168989848181106120f5576120f561538c565b905060200201358c8c8581811061210e5761210e61538c565b9050602002013561211f91906153e4565b8e8e858181106121315761213161538c565b90506020020160208101906121469190614c0c565b6001600160a01b03169190613984565b61215f816153b8565b90506120c6565b5060019b9a5050505050505050505050565b6000600b5460011461219c5760405162461bcd60e51b8152600401610b9c90615308565b6002600b5560006121ac81612d0c565b90506121b884826139fb565b9150816000036121db57604051639768300560e01b815260040160405180910390fd5b611af7828585613906565b60018054610bc19061532c565b600a546001600160a01b0316331461221d5760405162461bcd60e51b8152600401610b9c90615366565b612225613454565b610f8c84848484613a12565b600a546001600160a01b0316331461225b5760405162461bcd60e51b8152600401610b9c90615366565b61012c81108061226d57506202a30081115b1561228b57604051633a60233f60e21b815260040160405180910390fd5b601780549082905560408051828152602081018490527f227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f2491016117f7565b600a546001600160a01b031633146122f35760405162461bcd60e51b8152600401610b9c90615366565b6122fe838383613640565b505050565b600061230d612c6c565b600b5460011461232f5760405162461bcd60e51b8152600401610b9c90615308565b610baf6001612d0c565b600061234433613478565b610de98383613cb9565b60005b818110156122fe576123bd83838381811061236e5761236e61538c565b90506020028101906123809190615457565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525030939250506137ed9050565b50806123c8816153b8565b915050612351565b600a546001600160a01b031633146123fa5760405162461bcd60e51b8152600401610b9c90615366565b601554604080516001600160a01b03928316815291831660208301527f51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d910160405180910390a1601580546001600160a01b0319166001600160a01b0392909216919091179055565b601654600090610100900460ff166124e657601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa1580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf919061549d565b50600090565b6000806124f7610b70565b9050610de983826139fb565b6000600b546001146125275760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061253781612d0c565b905061254385826133c5565b915061255185838686613d1f565b506001600b559392505050565b600a546001600160a01b031633146125885760405162461bcd60e51b8152600401610b9c90615366565b670de0b6b3a76400006001600160401b03821611156125ba57604051633d0203e560e01b815260040160405180910390fd5b601454604080516001600160401b03928316815291831660208301527fb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868910160405180910390a16014805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000600b546001146126485760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061265881612d0c565b9050612664858261329c565b91508160000361268757604051639768300560e01b815260040160405180910390fd5b61255182868686613d1f565b6000610c8b826126a1610b70565b6138ef565b6000600b546001146126ca5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826000613df8565b600a546001600160a01b031633146126ff5760405162461bcd60e51b8152600401610b9c90615366565b63ffffffff81166000818152601260209081526040808320805460ff191690558051938452908301919091527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b428410156127a35760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610b9c565b600060016127af610f92565b6001600160a01b038a811660008181526008602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156128bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906128f15750876001600160a01b0316816001600160a01b0316145b61292e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610b9c565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000600b546001146129bb5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826001613df8565b600e818154811061181357600080fd5b600a546001600160a01b03163314612a005760405162461bcd60e51b8152600401610b9c90615366565b601680549115156101000261ff0019909216919091179055565b600080612a25610b70565b9050610de983826138ef565b600a546001600160a01b03163314612a5b5760405162461bcd60e51b8152600401610b9c90615366565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b82548015612c2b578380612abc6001846153d1565b81548110612acc57612acc61538c565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a9092049093160217905590612b2e90836153d1565b90505b8363ffffffff16811115612bd95784612b4b6001836153d1565b81548110612b5b57612b5b61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16858281548110612b9357612b9361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508080612bd1906154ba565b915050612b31565b5081848463ffffffff1681548110612bf357612bf361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550610f8c565b508254600181018455600093845260209093206008840401805460079094166004026101000a63ffffffff8181021990951692909416939093021790915550565b601654610100900460ff16612d0a57601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa158015612cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cec919061549d565b15612d0a57604051630f301f8f60e41b815260040160405180910390fd5b565b600d5460009081816001600160401b03811115612d2b57612d2b614ab6565b604051908082528060200260200182016040528015612d54578160200160208202803683370190505b5090506000826001600160401b03811115612d7157612d71614ab6565b604051908082528060200260200182016040528015612d9a578160200160208202803683370190505b5090508415612eeb5760005b83811015612e6b576000600d8281548110612dc357612dc361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612df481613eba565b838381518110612e0657612e0661538c565b6020026020010181815250600003612e1e5750612e5b565b612e278161333c565b848381518110612e3957612e3961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b612e64816153b8565b9050612da6565b50600c5460095460405163b333a17560e01b81526001600160a01b039283169263b333a17592612ea3928792879216906004016154d1565b602060405180830381865afa158015612ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee4919061550f565b9350613190565b600e546000816001600160401b03811115612f0857612f08614ab6565b604051908082528060200260200182016040528015612f31578160200160208202803683370190505b5090506000826001600160401b03811115612f4e57612f4e614ab6565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b50905060005b86811015613042576000600d8281548110612f9a57612f9a61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612fcb816135b7565b868381518110612fdd57612fdd61538c565b6020026020010181815250600003612ff55750613032565b612ffe8161333c565b8783815181106130105761301061538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b61303b816153b8565b9050612f7d565b5060005b8381101561310b576000600e82815481106130635761306361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050613094816135b7565b8383815181106130a6576130a661538c565b60200260200101818152506000036130be57506130fb565b6130c78161333c565b8483815181106130d9576130d961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b613104816153b8565b9050613046565b50600c54600954604051637563738b60e11b81526001600160a01b039283169263eac6e71692613149928a928a928992899290911690600401615528565b602060405180830381865afa158015613166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318a919061550f565b96505050505b505050919050565b63ffffffff81166000908152600f602052604090205460ff166131d6576040516370abe85960e01b815263ffffffff82166004820152602401610b9c565b6009546001600160a01b03166131eb8261333c565b6001600160a01b03161461323a576009546001600160a01b031661320e8261333c565b60405163298473c760e11b81526001600160a01b03928316600482015291166024820152604401610b9c565b63ffffffff8116600090815260106020526040902054600160a01b900460ff161561328057604051630a42c0f960e41b815263ffffffff82166004820152602401610b9c565b6011805463ffffffff191663ffffffff92909216919091179055565b60035460009080156132b8576132b38484836138d0565b610e71565b610e716012600960009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133349190615590565b869190613f74565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf91613384916001019060040161562a565b602060405180830381865afa1580156133a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061543a565b60035460009080156133dc576132b38482856137bf565b6009546040805163313ce56760e01b81529051610e71926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015613427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344b9190615590565b85906012613f74565b60165460ff1615612d0a576040516337a5332d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205480156134d3576000601754826134a791906153e4565b9050428111156122fe576040516306f8ee3f60e21b815260048101829052426024820152604401610b9c565b5050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146135335761350e83826153d1565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260408120805485929061355b9084906153d1565b90915550506001600160a01b0380851660008181526004602052604090819020805487019055519091871690600080516020615a9b833981519152906135a49087815260200190565b60405180910390a3506001949350505050565b63ffffffff811660009081526010602052604080822080549151637841536560e01b81526001600160a01b039092169182916378415365916135ff916001019060040161562a565b602060405180830381865afa15801561361c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061550f565b60115463ffffffff9081169083160361366c576040516319ded73160e21b815260040160405180910390fd5b80156136825761367d600e84613fdd565b61368d565b61368d600d84613fdd565b63ffffffff82166000908152600f60209081526040808320805460ff191690556010909152812080546001600160a81b0319168155906136d06001830182614924565b6136de600283016000614924565b50506040805163ffffffff8085168252851660208201527fa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51910160405180910390a1505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051613757919061563d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8282028115158415858304851417166137d757600080fd5b6001826001830304018115150290509392505050565b6060610de98383604051806060016040528060278152602001615a7460279139614122565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b15801561386057600080fd5b505afa158015613874573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b8282028115158415858304851417166138e857600080fd5b0492915050565b60035460009080156133dc576132b38482856138d0565b61391183838361419a565b600954613929906001600160a01b0316333086614282565b613933818361430c565b60408051848152602081018490526001600160a01b0383169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a36122fe838383614366565b600060405163095ea7b360e01b8152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610f8c5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610b9c565b60035460009080156132b8576132b38484836137bf565b63ffffffff83166000908152600f602052604090205460ff1615613a515760405163335894fb60e11b815263ffffffff84166004820152602401610b9c565b63ffffffff831660009081526012602052604090205460ff16613a8f57604051631f9db01d60e31b815263ffffffff84166004820152602401610b9c565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015613ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b1091908101906156b3565b92509250925083151582151514613b4257604051632b1d0bd360e11b815263ffffffff87166004820152602401610b9c565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190613bbc90826157a0565b5060608201516002820190613bd190826157a0565b509050508115613c1257600e54601011613c015760405163f025236d60e01b815260106004820152602401610b9c565b613c0d600e8888612aa7565b613c44565b600d54601011613c385760405163f025236d60e01b815260106004820152602401610b9c565b613c44600d8888612aa7565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90613ca89088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b33600090815260046020526040812080548391908390613cda9084906153d1565b90915550506001600160a01b03831660008181526004602052604090819020805485019055513390600080516020615a9b83398151915290610dc19086815260200190565b613d2b84848484614397565b336001600160a01b03821614613d99576001600160a01b03811660009081526005602090815260408083203384529091529020546000198114613d9757613d7284826153d1565b6001600160a01b03831660009081526005602090815260408083203384529091529020555b505b613da381846143a8565b60408051858152602081018590526001600160a01b03808416929085169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4610f8c848361440a565b6000613e02612c6c565b6001600160a01b0383166000908152601860205260409020548015613e4857600060175482613e3191906153e4565b905042811115613e4657600092505050610c8b565b505b6000613e546000612d0c565b6001600160a01b03861660009081526004602052604081205491925090613e7b908361329c565b90506000613e896001612d0c565b905080821115613e995780613e9b565b815b94508515613eb057613ead85846138ef565b94505b5050505092915050565b63ffffffff8116600090815260106020526040812054600160a01b900460ff1615613ee757506000919050565b63ffffffff82166000908152601060205260409081902080549151637d2872e960e11b81526001600160a01b039092169163fa50e5d291613f339160018201916002019060040161585f565b602060405180830381865afa158015613f50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b919061550f565b60008160ff168360ff1603613f8a575082610de9565b8160ff168360ff161015613fbe57613fa2838361588d565b613fad90600a61598a565b613fb79085615999565b9050610de9565b613fc8828461588d565b613fd390600a61598a565b613fb790856159b8565b815463ffffffff8216811161402a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610b9c565b63ffffffff82165b61403d6001836153d1565b8110156140de57836140508260016153e4565b815481106140605761406061538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff168482815481106140985761409861538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555080806140d6906153b8565b915050614032565b50828054806140ef576140ef6159da565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055505050565b6060600080856001600160a01b03168560405161413f91906159f0565b600060405180830381855af49150503d806000811461417a576040519150601f19603f3d011682016040523d82523d6000602084013e61417f565b606091505b5091509150614190868383876147a5565b9695505050505050565b6141a2613454565b6141aa612c6c565b336001600160a01b0382161461424a57601654604051635551e1b560e01b8152336004820152620100009091046001600160a01b031690635551e1b590602401602060405180830381865afa158015614207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422b919061549d565b61424a576040516334871f2560e21b8152336004820152602401610b9c565b6000614255826113f8565b905080841115610f8c57604051632d21eb8760e21b81526004810185905260248101829052604401610b9c565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806143055760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606401610b9c565b5050505050565b806003600082825461431e91906153e4565b90915550506001600160a01b038216600081815260046020908152604080832080548601905551848152600080516020615a9b83398151915291015b60405180910390a35050565b6011546143799063ffffffff168461481e565b6001600160a01b031660009081526018602052604090204290555050565b61439f612c6c565b610f8c81613478565b6001600160a01b038216600090815260046020526040812080548392906143d09084906153d1565b90915550506003805482900390556040518181526000906001600160a01b03841690600080516020615a9b8339815191529060200161435a565b6144356040518060800160405280600081526020016000815260200160008152602001600081525090565b600c54600954604051630226614760e01b81526001600160a01b039182166004820152911690630226614790602401602060405180830381865afa158015614481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a5919061550f565b604080830191909152600954815163313ce56760e01b815291516001600160a01b039091169163313ce5679160048083019260209291908290030181865afa1580156144f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145199190615590565b61452490600a61598a565b6060820152600d5460005b81811015614782576000600d828154811061454c5761454c61538c565b60009182526020822060088204015460079091166004026101000a900463ffffffff16915061457a82613eba565b90508060000361458b575050614772565b60006145968361333c565b600c54604051630226614760e01b81526001600160a01b038084166004830152929350911690630226614790602401602060405180830381865afa1580156145e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614606919061550f565b866000018181525050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561464d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146719190615590565b61467c90600a61598a565b60208701819052865160009182916146a7916146a087670de0b6b3a7640000615999565b91906138d0565b90506146c688606001518960400151836138d09092919063ffffffff16565b91506146da670de0b6b3a7640000836159b8565b91505060008982111561474057600061470a89604001518a606001518d670de0b6b3a76400006146a09190615999565b60208a01518a51919250614720918391906138d0565b9150614734670de0b6b3a7640000836159b8565b915060009a505061474f565b508261474c828b6153d1565b99505b61475a85828b6148ab565b8960000361476c575050505050614782565b50505050505b61477b816153b8565b905061452f565b508315610f8c5760405163cc5ea39b60e01b815260048101859052602401610b9c565b6060831561481457825160000361480d576001600160a01b0385163b61480d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9c565b5081610e71565b610e7183836148fa565b63ffffffff821660009081526010602052604090819020805491516001600160a01b0390921691610f8c916369445c3160e01b91614869918691600182019160020190602401615a0c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038316906137ed565b63ffffffff831660009081526010602052604090819020805491516001600160a01b03909216916143059163c9111bd760e01b9161486991879187916001810191600290910190602401615a37565b81511561490a5781518083602001fd5b8060405162461bcd60e51b8152600401610b9c91906149be565b5080546149309061532c565b6000825580601f10614940575050565b601f016020900490600052602060002090810190610c7591905b80821115610d62576000815560010161495a565b60005b83811015614989578181015183820152602001614971565b50506000910152565b600081518084526149aa81602086016020860161496e565b601f01601f19169290920160200192915050565b602081526000610de96020830184614992565b803563ffffffff811681146149e557600080fd5b919050565b6000602082840312156149fc57600080fd5b610de9826149d1565b600060208284031215614a1757600080fd5b5035919050565b600081518084526020808501945080840160005b83811015614a575781516001600160a01b031687529582019590820190600101614a32565b509495945050505050565b602081526000610de96020830184614a1e565b6001600160a01b0381168114610c7557600080fd5b60008060408385031215614a9d57600080fd5b8235614aa881614a75565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614aee57614aee614ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1c57614b1c614ab6565b604052919050565b60006001600160401b03821115614b3d57614b3d614ab6565b50601f01601f191660200190565b600082601f830112614b5c57600080fd5b8135614b6f614b6a82614b24565b614af4565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614bb757600080fd5b8435614bc281614a75565b93506020850135614bd281614a75565b92506040850135915060608501356001600160401b03811115614bf457600080fd5b614c0087828801614b4b565b91505092959194509250565b600060208284031215614c1e57600080fd5b8135610de981614a75565b600080600060608486031215614c3e57600080fd5b8335614c4981614a75565b92506020840135614c5981614a75565b929592945050506040919091013590565b8015158114610c7557600080fd5b60008060408385031215614c8b57600080fd5b614c94836149d1565b91506020830135614ca481614c6a565b809150509250929050565b600080600060608486031215614cc457600080fd5b614ccd846149d1565b9250614cdb602085016149d1565b91506040840135614ceb81614c6a565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015614d3457835163ffffffff1683529284019291840191600101614d12565b50909695505050505050565b60006001600160401b03821115614d5957614d59614ab6565b5060051b60200190565b600060208284031215614d7557600080fd5b6001600160401b038083351115614d8b57600080fd5b8235830184601f820112614d9e57600080fd5b614dab614b6a8235614d40565b81358082526020808301929160051b84010187811115614dca57600080fd5b602084015b81811015614ec7578581351115614de557600080fd5b803585016040818b03601f19011215614dfd57600080fd5b614e05614acc565b6020820135614e1381614a75565b8152604082013588811115614e2757600080fd5b8083019250508a603f830112614e3c57600080fd5b6020820135614e4d614b6a82614d40565b81815260059190911b83016040019060208101908d831115614e6e57600080fd5b604085015b83811015614ea7578b81351115614e8957600080fd5b614e998f60408335890101614b4b565b835260209283019201614e73565b508060208501525050508086525050602084019350602081019050614dcf565b5090979650505050505050565b600060208284031215614ee657600080fd5b8135610de981614c6a565b60008060408385031215614f0457600080fd5b823591506020830135614ca481614a75565b6001600160a01b03851681528315156020820152608060408201819052600090614f4290830185614992565b8281036060840152614f548185614992565b979650505050505050565b600081518084526020808501945080840160005b83811015614a5757815187529582019590820190600101614f73565b606081526000614fa26060830186614a1e565b602083820381850152614fb58287614f5f565b8481036040860152855180825282870193509082019060005b81811015614fec578451151583529383019391830191600101614fce565b509098975050505050505050565b60008083601f84011261500c57600080fd5b5081356001600160401b0381111561502357600080fd5b6020830191508360208260051b850101111561503e57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561506357600080fd5b89356001600160401b038082111561507a57600080fd5b6150868d838e01614ffa565b909b50995060208c013591508082111561509f57600080fd5b6150ab8d838e01614ffa565b909950975060408c01359150808211156150c457600080fd5b6150d08d838e01614ffa565b909750955060608c013591506150e582614a75565b90935060808b013590808211156150fb57600080fd5b818c0191508c601f83011261510f57600080fd5b81358181111561511e57600080fd5b8d602082850101111561513057600080fd5b6020830194508093505050509295985092959850929598565b6000806000806080858703121561515f57600080fd5b615168856149d1565b9350615176602086016149d1565b925060408501356001600160401b0381111561519157600080fd5b61519d87828801614b4b565b92505060608501356151ae81614c6a565b939692955090935050565b600080602083850312156151cc57600080fd5b82356001600160401b038111156151e257600080fd5b6151ee85828601614ffa565b90969095509350505050565b60008060006060848603121561520f57600080fd5b83359250602084013561522181614a75565b91506040840135614ceb81614a75565b60006020828403121561524357600080fd5b81356001600160401b0381168114610de957600080fd5b60ff81168114610c7557600080fd5b600080600080600080600060e0888a03121561528457600080fd5b873561528f81614a75565b9650602088013561529f81614a75565b9550604088013594506060880135935060808801356152bd8161525a565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156152ed57600080fd5b82356152f881614a75565b91506020830135614ca481614a75565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b600181811c9082168061534057607f821691505b60208210810361536057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016153ca576153ca6153a2565b5060010190565b81810381811115610c8b57610c8b6153a2565b80820180821115610c8b57610c8b6153a2565b6001600160a01b0383168152604060208201819052600090610e7190830184614992565b600060ff821660ff8103615431576154316153a2565b60010192915050565b60006020828403121561544c57600080fd5b8151610de981614a75565b6000808335601e1984360301811261546e57600080fd5b8301803591506001600160401b0382111561548857600080fd5b60200191503681900382131561503e57600080fd5b6000602082840312156154af57600080fd5b8151610de981614c6a565b6000816154c9576154c96153a2565b506000190190565b6060815260006154e46060830186614a1e565b82810360208401526154f68186614f5f565b91505060018060a01b0383166040830152949350505050565b60006020828403121561552157600080fd5b5051919050565b60a08152600061553b60a0830188614a1e565b828103602084015261554d8188614f5f565b905082810360408401526155618187614a1e565b905082810360608401526155758186614f5f565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156155a257600080fd5b8151610de98161525a565b600081546155ba8161532c565b8085526020600183811680156155d757600181146155f15761561f565b60ff1985168884015283151560051b88018301955061561f565b866000528260002060005b858110156156175781548a82018601529083019084016155fc565b890184019650505b505050505092915050565b602081526000610de960208301846155ad565b600080835461564b8161532c565b600182811680156156635760018114615678576156a7565b60ff19841687528215158302870194506156a7565b8760005260208060002060005b8581101561569e5781548a820152908401908201615685565b50505082870194505b50929695505050505050565b6000806000606084860312156156c857600080fd5b83516156d381614a75565b60208501519093506156e481614c6a565b60408501519092506001600160401b0381111561570057600080fd5b8401601f8101861361571157600080fd5b805161571f614b6a82614b24565b81815287602083850101111561573457600080fd5b61574582602083016020860161496e565b8093505050509250925092565b601f8211156122fe57600081815260208120601f850160051c810160208610156157795750805b601f850160051c820191505b8181101561579857828155600101615785565b505050505050565b81516001600160401b038111156157b9576157b9614ab6565b6157cd816157c7845461532c565b84615752565b602080601f83116001811461580257600084156157ea5750858301515b600019600386901b1c1916600185901b178555615798565b600085815260208120601f198616915b8281101561583157888601518255948401946001909101908401615812565b508582101561584f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061587260408301856155ad565b828103602084015261588481856155ad565b95945050505050565b60ff8281168282160390811115610c8b57610c8b6153a2565b600181815b808511156158e15781600019048211156158c7576158c76153a2565b808516156158d457918102915b93841c93908002906158ab565b509250929050565b6000826158f857506001610c8b565b8161590557506000610c8b565b816001811461591b576002811461592557615941565b6001915050610c8b565b60ff841115615936576159366153a2565b50506001821b610c8b565b5060208310610133831016604e8410600b8410161715615964575081810a610c8b565b61596e83836158a6565b8060001904821115615982576159826153a2565b029392505050565b6000610de960ff8416836158e9565b60008160001904831182151516156159b3576159b36153a2565b500290565b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008251615a0281846020870161496e565b9190910192915050565b838152606060208201526000615a2560608301856155ad565b828103604084015261419081856155ad565b8481526001600160a01b0384166020820152608060408201819052600090615a61908301856155ad565b8281036060840152614f5481856155ad56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dd287b48397cc723182f481f545c67e54374e23ca920649697588f2a1afd3d964736f6c63430008100033\",\n \"sourceMap\": \"1648:1:41:-:0;1624:25;;17289:174;806:60136;17289:174;17334:7;806:60136;17289:174;17368:7;17289:174;;-1:-1:-1;17289:174:41;;;;;;17256:207;;;-1:-1:-1;;;;;;17256:207:41;;;;;;;;-1:-1:-1;;;;;;17256:207:41;;;26580:6;26734:58;;50573:9;50530:52;;54636:68;;;;-1:-1:-1;;;;;;54636:68:41;;;;;;22778:1954;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22977:50;;-1:-1:-1;;;22977:50:41;;21109:1;22977:50;;;2460:25:98;-1:-1:-1;;;;;22977:20:41;;;;;2433:18:98;;22977:50:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22943:6;22951:5;22958:7;22967:2;22951:5;22958:7;22967:2;2064:4:45;:12;22951:5:41;2064:4:45;:12;:::i;:::-;-1:-1:-1;2086:6:45;:16;2095:7;2086:6;:16;:::i;:::-;-1:-1:-1;2112:8:45;:20;;-1:-1:-1;;2112:20:45;;;;;;;2162:13;2143:16;:32;2212:24;:22;:24::i;:::-;2185;:51;-1:-1:-1;;1306:5:46::1;:14:::0;;-1:-1:-1;;;;;1306:14:46;;::::1;-1:-1:-1::0;;;;;;1306:14:46;;::::1;;::::0;;;1045:5:25;:14;;;;;;;;;;;;;-1:-1:-1;;1075:40:25;;1306:5:46::1;::::0;-1:-1:-1;1075:40:25;;-1:-1:-1;1306:5:46;;1075:40:25;-1:-1:-1;23039:8:41::2;:20:::0;;-1:-1:-1;;;;;;23039:20:41::2;::::0;-1:-1:-1;;;;;23039:20:41;;::::2;::::0;::::2;::::0;;;::::2;::::0;;;;23095:47:::2;::::0;-1:-1:-1;;;23095:47:41;;23039:8:::2;23095:47;::::0;::::2;2460:25:98::0;23095:8:41;::::2;;::::0;:19:::2;::::0;2433:18:98;;23095:47:41::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23069:11;;:74;;;;;-1:-1:-1::0;;;;;23069:74:41::2;;;;;-1:-1:-1::0;;;;;23069:74:41::2;;;;;;23186:32;23236:30:::0;23284:39:::2;23341:37:::0;23396:23:::2;23447:6;23436:65;;;;;;;;;;;;:::i;:::-;23168:333;;;;;;;;;;;;23558:8;23553:216;23572:16;:23;23568:1;:27;;;23553:216;;;23620:44;23644:16;23661:1;23644:19;;;;;;;;;;:::i;:::-;;;;;;;23620:23;;;:44;;:::i;:::-;23682:72;23695:1;23698:16;23715:1;23698:19;;;;;;;;;;:::i;:::-;;;;;;;23719:24;23744:1;23719:27;;;;;;;;;;:::i;:::-;;;;;;;23748:5;23682:12;;;:72;;:::i;:::-;23597:3;::::0;::::2;:::i;:::-;;;23553:216;;;;23787:8;23782:207;23801:14;:21;23797:1;:25;;;23782:207;;;23847:42;23871:14;23886:1;23871:17;;;;;;;;;;:::i;23847:42::-;23907:67;23920:1;23923:14;23938:1;23923:17;;;;;;;;;;:::i;:::-;;;;;;;23942:22;23965:1;23942:25;;;;;;;;;;:::i;:::-;;;;;;;23969:4;23907:12;;;:67;;:::i;:::-;23824:3;::::0;::::2;:::i;:::-;;;23782:207;;;-1:-1:-1::0;24172:23:41;;:27;24168:70:::2;;24201:37;24221:16:::0;24201:19:::2;:37::i;:::-;-1:-1:-1::0;;24437:7:41::2;:45:::0;;-1:-1:-1;;;;;;;;24437:45:41::2;-1:-1:-1::0;;;24466:15:41::2;-1:-1:-1::0;;;;;24437:45:41::2;;;::::0;;-1:-1:-1;;24537:126:41;;-1:-1:-1;;;24537:126:41::2;::::0;::::2;::::0;;;;;;;::::2;;:::i;:::-;-1:-1:-1::0;;24674:31:41;:51;;-1:-1:-1;;;;;;24674:51:41::2;-1:-1:-1::0;;;;;24674:51:41;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;806:60136:41;;-1:-1:-1;;;;;;;;;;806:60136:41;5480:446:45;5545:7;5642:95;5775:4;5759:22;;;;;;:::i;:::-;;;;;;;;;;5610:295;;;11978:25:98;;;;12019:18;;12012:34;;;;5803:14:45;12062:18:98;;;12055:34;5839:13:45;12105:18:98;;;12098:34;5882:4:45;12148:19:98;;;12141:61;11950:19;;5610:295:45;;;;;;;;;;;;5583:336;;;;;;5564:355;;5480:446;:::o;8994:290:41:-;9125:8;;:49;;-1:-1:-1;;;9125:49:41;;12387:10:98;12375:23;;9125:49:41;;;12357:42:98;9125:8:41;;;;-1:-1:-1;;;;;9125:8:41;;:37;;12330:18:98;;9125:49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9184:29:41;;;;;;;:17;:29;;;;;;;;;:36;;-1:-1:-1;;9184:36:41;9216:4;9184:36;;;;;;9235:42;;12576::98;;;12634:18;;;12627:50;9235:42:41;;12549:18:98;9235:42:41;;;;;;;8994:290;:::o;10922:1552::-;11102:26;;;;;;;:14;:26;;;;;;;;11098:78;;;11137:39;;-1:-1:-1;;;11137:39:41;;12387:10:98;12375:23;;11137:39:41;;;12357:42:98;12330:18;;11137:39:41;;;;;;;;11098:78;11251:29;;;;;;;:17;:29;;;;;;;;11246:85;;11289:42;;-1:-1:-1;;;11289:42:41;;12387:10:98;12375:23;;11289:42:41;;;12357::98;12330:18;;11289:42:41;12213:192:98;11246:85:41;11515:8;;:40;;-1:-1:-1;;;11515:40:41;;12387:10:98;12375:23;;11515:40:41;;;12357:42:98;11457:15:41;;;;;;11515:8;;;-1:-1:-1;;;;;11515:8:41;;:28;;12330:18:98;;11515:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11515:40:41;;;;;;;;;;;;:::i;:::-;11456:99;;;;;;11580:11;11570:21;;:6;:21;;;11566:66;;11600:32;;-1:-1:-1;;;11600:32:41;;12387:10:98;12375:23;;11600:32:41;;;12357:42:98;12330:18;;11600:32:41;12213:192:98;11566:66:41;11726:179;;;;;;;;-1:-1:-1;;;;;11726:179:41;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:27;;;-1:-1:-1;11696:27:41;;;:15;:27;;;;;;:209;;;;;;;;-1:-1:-1;;;11696:209:41;-1:-1:-1;;;;;;11696:209:41;;;;;;;;;;;;;;11726:179;;11696:27;:209;;;;;;;;:::i;:::-;-1:-1:-1;11696:209:41;;;;;;;;;;;;:::i;:::-;;;;;11920:6;11916:460;;;11946:13;:20;7600:2;-1:-1:-1;11942:90:41;;11992:40;;-1:-1:-1;;;11992:40:41;;7600:2;11992:40;;;2460:25:98;2433:18;;11992:40:41;2314:177:98;11942:90:41;12100:36;12118:5;12125:10;12100:13;:17;;;;;;:36;;;;;:::i;:::-;11916:460;;;12171:15;:22;7600:2;-1:-1:-1;12167:92:41;;12219:40;;-1:-1:-1;;;12219:40:41;;7600:2;12219:40;;;2460:25:98;2433:18;;12219:40:41;2314:177:98;12167:92:41;12327:38;12347:5;12354:10;12327:15;:19;;;;;;:38;;;;;:::i;:::-;12386:26;;;;;;;:14;:26;;;;;;;:33;;-1:-1:-1;;12386:33:41;12415:4;12386:33;;;12435:32;;;;;12401:10;;12461:5;;14865:10:98;14902:15;;;14884:34;;14954:15;;14949:2;14934:18;;14927:43;14843:2;14828:18;;14684:292;12435:32:41;;;;;;;;11036:1438;;;10922:1552;;;;:::o;7943:406::-;8015:26;;;;;;;:14;:26;;;;;;;;8010:75;;8050:35;;-1:-1:-1;;;8050:35:41;;12387:10:98;12375:23;;8050:35:41;;;12357:42:98;12330:18;;8050:35:41;12213:192:98;8010:75:41;8123:5;;-1:-1:-1;;;;;8123:5:41;8099:20;8108:10;8099:8;:20::i;:::-;-1:-1:-1;;;;;8099:29:41;;8095:110;;8167:5;;-1:-1:-1;;;;;8167:5:41;8183:20;8192:10;8183:8;:20::i;:::-;8137:68;;-1:-1:-1;;;8137:68:41;;-1:-1:-1;;;;;15211:15:98;;;8137:68:41;;;15193:34:98;15263:15;;15243:18;;;15236:43;15128:18;;8137:68:41;14981:304:98;8095:110:41;8219:27;;;;;;;:15;:27;;;;;:34;-1:-1:-1;;;8219:34:41;;;;8215:89;;;8262:42;;-1:-1:-1;;;8262:42:41;;12387:10:98;12375:23;;8262:42:41;;;12357::98;12330:18;;8262:42:41;12213:192:98;8215:89:41;8314:15;:28;;-1:-1:-1;;8314:28:41;;;;;;;;;;;;7943:406::o;493:384:97:-;621:12;;648:7;;644:227;;671:5;;688:7;694:1;688:3;:7;:::i;:::-;682:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;671:26;;;;;;;;;;;;;;;;;;;;;;682:14;;;671:26;;;;;682:14;671:26;;;;;;;;;;682:14;;;;;;;;;;;;;;671:26;;;;682:14;729:7;;:3;:7;:::i;:::-;717:19;;712:65;742:5;738:9;;:1;:9;712:65;;;765:5;771;775:1;771;:5;:::i;:::-;765:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:5;760:1;754:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;749:3;;;;;:::i;:::-;;;;712:65;;;;807:5;792;798;792:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;644:227;;;843:17;;;;;;;-1:-1:-1;843:17:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:227;597:280;493:384;;;:::o;59476:217:41:-;59569:25;;;59534:5;59569:25;;;:15;:25;;;;;;:33;;59619:67;;-1:-1:-1;;;59619:67:41;;-1:-1:-1;;;;;59569:33:41;;;;;;59619:28;;:67;;59569:33;59648:37;;59619:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;59612:74;59476:217;-1:-1:-1;;;59476:217:41:o;14:141:98:-;-1:-1:-1;;;;;99:31:98;;89:42;;79:70;;145:1;142;135:12;79:70;14:141;:::o;160:127::-;221:10;216:3;212:20;209:1;202:31;252:4;249:1;242:15;276:4;273:1;266:15;292:275;363:2;357:9;428:2;409:13;;-1:-1:-1;;405:27:98;393:40;;-1:-1:-1;;;;;448:34:98;;484:22;;;445:62;442:88;;;510:18;;:::i;:::-;546:2;539:22;292:275;;-1:-1:-1;292:275:98:o;572:650::-;626:5;679:3;672:4;664:6;660:17;656:27;646:55;;697:1;694;687:12;646:55;720:13;;-1:-1:-1;;;;;745:26:98;;742:52;;;774:18;;:::i;:::-;813:4;841:53;884:2;865:13;;-1:-1:-1;;861:27:98;857:36;;841:53;:::i;:::-;919:2;910:7;903:19;963:3;958:2;953;945:6;941:15;937:24;934:33;931:53;;;980:1;977;970:12;931:53;1002:1;1012:134;1026:2;1023:1;1020:9;1012:134;;;1115:14;;;1111:23;;1105:30;1083:15;;;1079:24;;1072:64;1037:10;;1012:134;;;-1:-1:-1;1189:1:98;1166:16;;;1162:25;;;1155:36;;;;1170:7;572:650;-1:-1:-1;;;572:650:98:o;1227:1082::-;1395:6;1403;1411;1419;1427;1480:3;1468:9;1459:7;1455:23;1451:33;1448:53;;;1497:1;1494;1487:12;1448:53;1529:9;1523:16;1548:41;1583:5;1548:41;:::i;:::-;1658:2;1643:18;;1637:25;1608:5;;-1:-1:-1;1671:43:98;1637:25;1671:43;:::i;:::-;1784:2;1769:18;;1763:25;1733:7;;-1:-1:-1;;;;;;1837:14:98;;;1834:34;;;1864:1;1861;1854:12;1834:34;1887:61;1940:7;1931:6;1920:9;1916:22;1887:61;:::i;:::-;1877:71;;1994:2;1983:9;1979:18;1973:25;1957:41;;2023:2;2013:8;2010:16;2007:36;;;2039:1;2036;2029:12;2007:36;2062:63;2117:7;2106:8;2095:9;2091:24;2062:63;:::i;:::-;2052:73;;2171:3;2160:9;2156:19;2150:26;2134:42;;2201:2;2191:8;2188:16;2185:36;;;2217:1;2214;2207:12;2185:36;;2240:63;2295:7;2284:8;2273:9;2269:24;2240:63;:::i;:::-;2230:73;;;1227:1082;;;;;;;;:::o;2496:261::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2667:9;2661:16;2686:41;2721:5;2686:41;:::i;2762:380::-;2841:1;2837:12;;;;2884;;;2905:61;;2959:4;2951:6;2947:17;2937:27;;2905:61;3012:2;3004:6;3001:14;2981:18;2978:38;2975:161;;3058:10;3053:3;3049:20;3046:1;3039:31;3093:4;3090:1;3083:15;3121:4;3118:1;3111:15;2975:161;;2762:380;;;:::o;3273:545::-;3375:2;3370:3;3367:11;3364:448;;;3411:1;3436:5;3432:2;3425:17;3481:4;3477:2;3467:19;3551:2;3539:10;3535:19;3532:1;3528:27;3522:4;3518:38;3587:4;3575:10;3572:20;3569:47;;;-1:-1:-1;3610:4:98;3569:47;3665:2;3660:3;3656:12;3653:1;3649:20;3643:4;3639:31;3629:41;;3720:82;3738:2;3731:5;3728:13;3720:82;;;3783:17;;;3764:1;3753:13;3720:82;;;3724:3;;;3364:448;3273:545;;;:::o;3994:1352::-;4114:10;;-1:-1:-1;;;;;4136:30:98;;4133:56;;;4169:18;;:::i;:::-;4198:97;4288:6;4248:38;4280:4;4274:11;4248:38;:::i;:::-;4242:4;4198:97;:::i;:::-;4350:4;;4414:2;4403:14;;4431:1;4426:663;;;;5133:1;5150:6;5147:89;;;-1:-1:-1;5202:19:98;;;5196:26;5147:89;-1:-1:-1;;3951:1:98;3947:11;;;3943:24;3939:29;3929:40;3975:1;3971:11;;;3926:57;5249:81;;4396:944;;4426:663;3220:1;3213:14;;;3257:4;3244:18;;-1:-1:-1;;4462:20:98;;;4580:236;4594:7;4591:1;4588:14;4580:236;;;4683:19;;;4677:26;4662:42;;4775:27;;;;4743:1;4731:14;;;;4610:19;;4580:236;;;4584:3;4844:6;4835:7;4832:19;4829:201;;;4905:19;;;4899:26;-1:-1:-1;;4988:1:98;4984:14;;;5000:3;4980:24;4976:37;4972:42;4957:58;4942:74;;4829:201;-1:-1:-1;;;;;5076:1:98;5060:14;;;5056:22;5043:36;;-1:-1:-1;3994:1352:98:o;5351:182::-;5410:4;-1:-1:-1;;;;;5432:30:98;;5429:56;;;5465:18;;:::i;:::-;-1:-1:-1;5510:1:98;5506:14;5522:4;5502:25;;5351:182::o;5538:832::-;5602:5;5655:3;5648:4;5640:6;5636:17;5632:27;5622:55;;5673:1;5670;5663:12;5622:55;5702:6;5696:13;5728:4;5752:59;5768:42;5807:2;5768:42;:::i;:::-;5752:59;:::i;:::-;5845:15;;;5931:1;5927:10;;;;5915:23;;5911:32;;;5876:12;;;;5955:15;;;5952:35;;;5983:1;5980;5973:12;5952:35;6019:2;6011:6;6007:15;6031:310;6047:6;6042:3;6039:15;6031:310;;;6120:3;6114:10;6168;6161:5;6157:22;6150:5;6147:33;6137:131;;6222:1;6251:2;6247;6240:14;6137:131;6281:18;;6319:12;;;;6064;;6031:310;;;-1:-1:-1;6359:5:98;5538:832;-1:-1:-1;;;;;;5538:832:98:o;6375:894::-;6438:5;6491:3;6484:4;6476:6;6472:17;6468:27;6458:55;;6509:1;6506;6499:12;6458:55;6538:6;6532:13;6564:4;6588:59;6604:42;6643:2;6604:42;:::i;6588:59::-;6681:15;;;6767:1;6763:10;;;;6751:23;;6747:32;;;6712:12;;;;6791:15;;;6788:35;;;6819:1;6816;6809:12;6788:35;6855:2;6847:6;6843:15;6867:373;6883:6;6878:3;6875:15;6867:373;;;6956:10;;-1:-1:-1;;;;;6982:35:98;;6979:125;;;7058:1;7087:2;7083;7076:14;6979:125;7129:68;7193:3;7188:2;7174:11;7166:6;7162:24;7158:33;7129:68;:::i;:::-;7117:81;;-1:-1:-1;7218:12:98;;;;6900;;6867:373;;7274:160;7351:13;;7404:4;7393:16;;7383:27;;7373:55;;7424:1;7421;7414:12;7373:55;7274:160;;;:::o;7439:1167::-;7659:6;7667;7675;7683;7691;7744:3;7732:9;7723:7;7719:23;7715:33;7712:53;;;7761:1;7758;7751:12;7712:53;7788:16;;-1:-1:-1;;;;;7853:14:98;;;7850:34;;;7880:1;7877;7870:12;7850:34;7903:71;7966:7;7957:6;7946:9;7942:22;7903:71;:::i;:::-;7893:81;;8020:2;8009:9;8005:18;7999:25;7983:41;;8049:2;8039:8;8036:16;8033:36;;;8065:1;8062;8055:12;8033:36;8088:73;8153:7;8142:8;8131:9;8127:24;8088:73;:::i;:::-;8078:83;;8207:2;8196:9;8192:18;8186:25;8170:41;;8236:2;8226:8;8223:16;8220:36;;;8252:1;8249;8242:12;8220:36;8275:72;8339:7;8328:8;8317:9;8313:24;8275:72;:::i;:::-;8265:82;;8393:2;8382:9;8378:18;8372:25;8356:41;;8422:2;8412:8;8409:16;8406:36;;;8438:1;8435;8428:12;8406:36;;8461:72;8525:7;8514:8;8503:9;8499:24;8461:72;:::i;:::-;8451:82;;;8552:48;8595:3;8584:9;8580:19;8552:48;:::i;:::-;8542:58;;7439:1167;;;;;;;;:::o;8611:127::-;8672:10;8667:3;8663:20;8660:1;8653:31;8703:4;8700:1;8693:15;8727:4;8724:1;8717:15;8743:127;8804:10;8799:3;8795:20;8792:1;8785:31;8835:4;8832:1;8825:15;8859:4;8856:1;8849:15;8875:201;8913:3;8941:10;8986:2;8979:5;8975:14;9013:2;9004:7;9001:15;8998:41;;9019:18;;:::i;:::-;9068:1;9055:15;;8875:201;-1:-1:-1;;;8875:201:98:o;9081:156::-;9168:13;;9190:41;9168:13;9190:41;:::i;9242:177::-;9321:13;;-1:-1:-1;;;;;9363:31:98;;9353:42;;9343:70;;9409:1;9406;9399:12;9424:1441;9679:6;9687;9695;9703;9711;9719;9727;9735;9788:3;9776:9;9767:7;9763:23;9759:33;9756:53;;;9805:1;9802;9795:12;9756:53;9832:16;;-1:-1:-1;;;;;9897:14:98;;;9894:34;;;9924:1;9921;9914:12;9894:34;9947:71;10010:7;10001:6;9990:9;9986:22;9947:71;:::i;:::-;9937:81;;10064:2;10053:9;10049:18;10043:25;10027:41;;10093:2;10083:8;10080:16;10077:36;;;10109:1;10106;10099:12;10077:36;10132:73;10197:7;10186:8;10175:9;10171:24;10132:73;:::i;:::-;10122:83;;10251:2;10240:9;10236:18;10230:25;10214:41;;10280:2;10270:8;10267:16;10264:36;;;10296:1;10293;10286:12;10264:36;10319:72;10383:7;10372:8;10361:9;10357:24;10319:72;:::i;:::-;10309:82;;10437:2;10426:9;10422:18;10416:25;10400:41;;10466:2;10456:8;10453:16;10450:36;;;10482:1;10479;10472:12;10450:36;;10505:72;10569:7;10558:8;10547:9;10543:24;10505:72;:::i;:::-;10495:82;;;10596:48;10639:3;10628:9;10624:19;10596:48;:::i;:::-;10586:58;;10663;10716:3;10705:9;10701:19;10663:58;:::i;:::-;10653:68;;10740:50;10785:3;10774:9;10770:19;10740:50;:::i;:::-;10730:60;;10809:50;10854:3;10843:9;10839:19;10809:50;:::i;:::-;10799:60;;9424:1441;;;;;;;;;;;:::o;10870:844::-;11000:3;11029:1;11062:6;11056:13;11092:36;11118:9;11092:36;:::i;:::-;11147:1;11164:18;;;11191:133;;;;11338:1;11333:356;;;;11157:532;;11191:133;-1:-1:-1;;11224:24:98;;11212:37;;11297:14;;11290:22;11278:35;;11269:45;;;-1:-1:-1;11191:133:98;;11333:356;11364:6;11361:1;11354:17;11394:4;11439:2;11436:1;11426:16;11464:1;11478:165;11492:6;11489:1;11486:13;11478:165;;;11570:14;;11557:11;;;11550:35;11613:16;;;;11507:10;;11478:165;;;11482:3;;;11672:6;11667:3;11663:16;11656:23;;11157:532;-1:-1:-1;11705:3:98;;10870:844;-1:-1:-1;;;;;;10870:844:98:o;12688:636::-;12782:6;12790;12798;12851:2;12839:9;12830:7;12826:23;12822:32;12819:52;;;12867:1;12864;12857:12;12819:52;12899:9;12893:16;12918:41;12953:5;12918:41;:::i;:::-;13028:2;13013:18;;13007:25;12978:5;;-1:-1:-1;13070:15:98;;13063:23;13051:36;;13041:64;;13101:1;13098;13091:12;13041:64;13175:2;13160:18;;13154:25;13124:7;;-1:-1:-1;;;;;;13191:30:98;;13188:50;;;13234:1;13231;13224:12;13188:50;13257:61;13310:7;13301:6;13290:9;13286:22;13257:61;:::i;:::-;13247:71;;;12688:636;;;;;:::o;15290:128::-;15357:9;;;15378:11;;;15375:37;;;15392:18;;:::i;:::-;15290:128;;;;:::o;15423:136::-;15462:3;15490:5;15480:39;;15499:18;;:::i;:::-;-1:-1:-1;;;15535:18:98;;15423:136::o;15564:961::-;15671:4;15700:2;15729;15718:9;15711:21;15752:1;15785:6;15779:13;15815:36;15841:9;15815:36;:::i;:::-;15887:6;15882:2;15871:9;15867:18;15860:34;15913:2;15934:1;15966:2;15955:9;15951:18;15983:1;15978:158;;;;16150:1;16145:354;;;;15944:555;;15978:158;-1:-1:-1;;16026:24:98;;16006:18;;;15999:52;16104:14;;16097:22;16094:1;16090:30;16075:46;;16071:55;;;-1:-1:-1;15978:158:98;;16145:354;16176:6;16173:1;16166:17;16224:2;16221:1;16211:16;16249:1;16263:180;16277:6;16274:1;16271:13;16263:180;;;16370:14;;16346:17;;;16342:26;;16335:50;16413:16;;;;16292:10;;16263:180;;;16467:17;;16463:26;;;-1:-1:-1;;15944:555:98;-1:-1:-1;16516:3:98;;15564:961;-1:-1:-1;;;;;;;;15564:961:98:o;16530:276::-;806:60136:41;;;;;;\",\n \"linkReferences\": {}\n },\n \"deployedBytecode\": {\n \"object\": \"0x608060405234801561001057600080fd5b50600436106104a05760003560e01c80637ecebe001161026d578063ba08765211610151578063d505accf116100ce578063e753e60011610092578063e753e60014610aab578063ebe3c32814610b20578063eef33eca14610b33578063ef8b30f714610b42578063f2fde38b14610b55578063f7b24e0814610b6857600080fd5b8063d505accf14610a34578063d7d4bf4514610a47578063d905777e14610a5a578063dd62ed3e14610a6d578063e1b1acb714610a9857600080fd5b8063cbdf33d011610115578063cbdf33d0146109da578063cd82f8b1146109fd578063ce96cb7714610a05578063cf30901214610a18578063d1e8840414610a2157600080fd5b8063ba0876521461099e578063bf86d690146109b1578063c244245a146109be578063c63d75b614610695578063c6e6f592146109c757600080fd5b80639fdb11b6116101ea578063ac9650d8116101ae578063ac9650d814610937578063b0a75d361461094a578063b187bd261461095d578063b3d7f6b914610965578063b460af9414610978578063b5292a991461098b57600080fd5b80639fdb11b6146108e8578063a03e4bc3146108f1578063a07bee0b14610909578063a8144e481461091c578063a9059cbb1461092457600080fd5b806395d89b411161023157806395d89b41146108985780639955a9d4146108a05780639959af94146108b35780639c552ca8146108c55780639c5f00c2146108d857600080fd5b80637ecebe001461081c5780638da5cb5b1461083c578063920f5c841461084f57806393bbeac01461086257806394bf804d1461088557600080fd5b80633d8ab1e5116103945780635e2c576e116103115780636ff1c02a116102d55780636ff1c02a1461079257806370a08231146107a157806371e99dc2146107c15780637384504f146107c957806378e0233e146107ec5780637b1039991461080357600080fd5b80635e2c576e146107315780635f6b88a014610739578063687c2b501461074c5780636925ba2c1461076c5780636e553f651461077f57600080fd5b80634e84befe116103585780634e84befe146106c8578063501eb4fe146106db578063530a3714146106ee57806359d20b4e146107015780635a400d251461072957600080fd5b80633d8ab1e51461066d5780633e3382ba14610680578063402d267d146106955780634c4602da146106a85780634cdad506146106b557600080fd5b8063150b7a021161042257806333e15be2116103e657806333e15be2146105ed5780633644e51514610600578063379e0b131461060857806338d52e0f1461061b5780633998a6811461064657600080fd5b8063150b7a021461056357806318160ddd1461058f57806318d4c1431461059857806323b872dd146105bb578063313ce567146105ce57600080fd5b806307a2d13a1161046957806307a2d13a146104fd578063087ed83714610510578063095ea7b3146105255780630a28a477146105485780630a680e181461055b57600080fd5b806251a3b7146104a557806301e1d114146104c15780630402ab63146104c957806306fdde03146104d35780630780fd3a146104e8575b600080fd5b6104ae61012c81565b6040519081526020015b60405180910390f35b6104ae610b70565b6104ae6202a30081565b6104db610bb4565b6040516104b891906149be565b6104fb6104f63660046149ea565b610c42565b005b6104ae61050b366004614a05565b610c78565b610518610c91565b6040516104b89190614a62565b610538610533366004614a8a565b610d66565b60405190151581526020016104b8565b6104ae610556366004614a05565b610dd2565b6104fb610df0565b610576610571366004614ba1565b610e68565b6040516001600160e01b031990911681526020016104b8565b6104ae60035481565b6105386105a6366004614c0c565b60136020526000908152604090205460ff1681565b6105386105c9366004614c29565b610e79565b6002546105db9060ff1681565b60405160ff90911681526020016104b8565b6104fb6105fb366004614c78565b610e8f565b6104ae610f92565b6104fb610616366004614caf565b610fac565b60095461062e906001600160a01b031681565b6040516001600160a01b0390911681526020016104b8565b6106556702c68af0bb14000081565b6040516001600160401b0390911681526020016104b8565b6104fb61067b366004614c0c565b611284565b610688611374565b6040516104b89190614cf6565b6104ae6106a3366004614c0c565b6113f8565b601a546105389060ff1681565b6104ae6106c3366004614a05565b611417565b6104fb6106d6366004614d63565b61142e565b6104fb6106e93660046149ea565b611726565b6104fb6106fc366004614a05565b611759565b61071461070f366004614a05565b611803565b60405163ffffffff90911681526020016104b8565b6104ae600281565b6104fb61183d565b6104fb610747366004614c0c565b6118c5565b6104ae61075a366004614c0c565b60186020526000908152604090205481565b6104fb61077a366004614ed4565b611946565b6104ae61078d366004614ef1565b611a89565b61065567016345785d8a000081565b6104ae6107af366004614c0c565b60046020526000908152604090205481565b610688611b03565b6107dc6107d73660046149ea565b611b60565b6040516104b89493929190614f16565b6107f4611ca9565b6040516104b893929190614f8f565b60165461062e906201000090046001600160a01b031681565b6104ae61082a366004614c0c565b60086020526000908152604090205481565b600a5461062e906001600160a01b031681565b61053861085d366004615045565b611f6f565b610538610870366004614a05565b600f6020526000908152604090205460ff1681565b6104ae610893366004614ef1565b612178565b6104db6121e6565b6104fb6108ae366004615149565b6121f3565b60165461053890610100900460ff1681565b6104fb6108d3366004614a05565b612231565b6011546107149063ffffffff1681565b6104ae60175481565b601a5461062e9061010090046001600160a01b031681565b6104fb610917366004614caf565b6122c9565b6104ae612303565b610538610932366004614a8a565b612339565b6104fb6109453660046151b9565b61234e565b6104fb610958366004614c0c565b6123d0565b610538612463565b6104ae610973366004614a05565b6124ec565b6104ae6109863660046151fa565b612503565b6104fb610999366004615231565b61255e565b6104ae6109ac3660046151fa565b612624565b6016546105389060ff1681565b6104ae60195481565b6104ae6109d5366004614a05565b612693565b6105386109e83660046149ea565b60126020526000908152604090205460ff1681565b6104ae600081565b6104ae610a13366004614c0c565b6126a6565b6104ae600b5481565b6104fb610a2f3660046149ea565b6126d5565b6104fb610a42366004615269565b612753565b600c5461062e906001600160a01b031681565b6104ae610a68366004614c0c565b612997565b6104ae610a7b3660046152da565b600560209081526000928352604080842090915290825290205481565b610714610aa6366004614a05565b6129c6565b601454601554610ae7916001600160401b0380821692680100000000000000008304821692600160801b9004909116906001600160a01b031684565b604080516001600160401b039586168152938516602085015291909316908201526001600160a01b0390911660608201526080016104b8565b6104fb610b2e366004614ed4565b6129d6565b610655670de0b6b3a764000081565b6104ae610b50366004614a05565b612a1a565b6104fb610b63366004614c0c565b612a31565b6104ae601081565b6000610b7a612c6c565b600b54600114610ba55760405162461bcd60e51b8152600401610b9c90615308565b60405180910390fd5b610baf6000612d0c565b905090565b60008054610bc19061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed9061532c565b8015610c3a5780601f10610c0f57610100808354040283529160200191610c3a565b820191906000526020600020905b815481529060010190602001808311610c1d57829003601f168201915b505050505081565b600a546001600160a01b03163314610c6c5760405162461bcd60e51b8152600401610b9c90615366565b610c7581613198565b50565b6000610c8b82610c86610b70565b61329c565b92915050565b600d546060906001600160401b03811115610cae57610cae614ab6565b604051908082528060200260200182016040528015610cd7578160200160208202803683370190505b50905060005b600d54811015610d6257610d28600d8281548110610cfd57610cfd61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1661333c565b828281518110610d3a57610d3a61538c565b6001600160a01b0390921660209283029190910190910152610d5b816153b8565b9050610cdd565b5090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dc19086815260200190565b60405180910390a350600192915050565b600080610ddd610b70565b9050610de983826133c5565b9392505050565b600a546001600160a01b03163314610e1a5760405162461bcd60e51b8152600401610b9c90615366565b610e22613454565b6016805460ff191660019081179091556040519081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c906020015b60405180910390a1565b630a85bd0160e11b5b949350505050565b6000610e8484613478565b610e718484846134d7565b600a546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b9c90615366565b600081610f0457600d8363ffffffff1681548110610ed957610ed961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16610f44565b600e8363ffffffff1681548110610f1d57610f1d61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff165b90506000610f51826135b7565b90508015610f8157604051631c7b946d60e31b815263ffffffff8316600482015260248101829052604401610b9c565b610f8c848385613640565b50505050565b60006006544614610fa557610baf613725565b5060075490565b600a546001600160a01b03163314610fd65760405162461bcd60e51b8152600401610b9c90615366565b600080821561110857600e8463ffffffff1681548110610ff857610ff861538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600e8563ffffffff16815481106110395761103961538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600e8763ffffffff168154811061107c5761107c61538c565b9060005260206000209060089182820401919006600402600e8863ffffffff16815481106110ac576110ac61538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff160217905550505061122d565b600d8463ffffffff16815481106111215761112161538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169150600d8563ffffffff16815481106111625761116261538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508181600d8763ffffffff16815481106111a5576111a561538c565b9060005260206000209060089182820401919006600402600d8863ffffffff16815481106111d5576111d561538c565b90600052602060002090600891828204019190066004028491906101000a81548163ffffffff021916908363ffffffff1602179055508391906101000a81548163ffffffff021916908363ffffffff16021790555050505b6040805163ffffffff84811682528381166020830152878116828401528616606082015290517fb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a9181900360800190a15050505050565b600a546001600160a01b031633146112ae5760405162461bcd60e51b8152600401610b9c90615366565b601654604051636777140560e11b81526001600160a01b038381166004830152620100009092049091169063ceee280a9060240160006040518083038186803b1580156112fa57600080fd5b505afa15801561130e573d6000803e3d6000fd5b505050506001600160a01b038116600081815260136020908152604091829020805460ff191660019081179091558251938452908301527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a91015b60405180910390a150565b6060600e8054806020026020016040519081016040528092919081815260200182805480156113ee57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116113b15790505b5050505050905090565b60165460009060ff161561140e57506000919050565b50600019919050565b600080611422610b70565b9050610de9838261329c565b600a546001600160a01b031633146114585760405162461bcd60e51b8152600401610b9c90615366565b600b5460011461147a5760405162461bcd60e51b8152600401610b9c90615308565b6002600b55611487613454565b61148f612c6c565b601a805460ff1916600117905560008080806114aa81612d0c565b90506114d5601954670de0b6b3a76400006114c591906153d1565b8290670de0b6b3a76400006137bf565b93506114f0601954670de0b6b3a76400006114c591906153e4565b925060035491505060005b84518160ff161015611695576000858260ff168151811061151e5761151e61538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661157357604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b868360ff168151811061158b5761158b61538c565b602002602001015160200151518160ff161015611682576115fa878460ff16815181106115ba576115ba61538c565b6020026020010151602001518260ff16815181106115da576115da61538c565b6020026020010151836001600160a01b03166137ed90919063ffffffff16565b507f7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf48382888560ff16815181106116325761163261538c565b6020026020010151602001518360ff16815181106116525761165261538c565b60200260200101516040516116689291906153f7565b60405180910390a18061167a8161541b565b915050611576565b50508061168e9061541b565b90506114fb565b5060006116a26000612d0c565b9050838110806116b157508281115b156116e05760405163628cc47560e11b8152600481018290526024810185905260448101849052606401610b9c565b600354821461171057600354604051632b40145960e21b8152600481019190915260248101839052604401610b9c565b5050601a805460ff1916905550506001600b5550565b600a546001600160a01b031633146117505760405162461bcd60e51b8152600401610b9c90615366565b610c7581613812565b600a546001600160a01b031633146117835760405162461bcd60e51b8152600401610b9c90615366565b67016345785d8a00008111156117bd576040516302d2a90f60e51b81526004810182905267016345785d8a00006024820152604401610b9c565b601980549082905560408051828152602081018490527fdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff91015b60405180910390a15050565b600d818154811061181357600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b600a546001600160a01b031633146118675760405162461bcd60e51b8152600401610b9c90615366565b60165460ff1661188a5760405163ec7165bf60e01b815260040160405180910390fd5b6016805460ff19169055604051600081527fb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c90602001610e5e565b600a546001600160a01b031633146118ef5760405162461bcd60e51b8152600401610b9c90615366565b6001600160a01b0381166000818152601360209081526040808320805460ff191690558051938452908301919091527f572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a9101611369565b600a546001600160a01b031633146119705760405162461bcd60e51b8152600401610b9c90615366565b60008082156119a9576000611983610b70565b90506119948161251c6127106138d0565b92506119a5816129046127106138d0565b9150505b601654604051635c9fcd8560e11b815260026004820152620100009091046001600160a01b03169063b93f9b0a90602401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b919061543a565b600c80546001600160a01b0319166001600160a01b03929092169190911790556000611a45610b70565b90508315610f8c5782811080611a5a57508181115b15610f8c5760405163628cc47560e11b8152600481018290526024810184905260448101839052606401610b9c565b6000600b54600114611aad5760405162461bcd60e51b8152600401610b9c90615308565b6002600b556000611abd81612d0c565b9050611ac984826138ef565b915081600003611aec5760405163426f153760e11b815260040160405180910390fd5b611af7848385613906565b506001600b5592915050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156113ee576000918252602091829020805463ffffffff1684529082028301929091600491018084116113b15790505050505050905090565b601060205260009081526040902080546001820180546001600160a01b03831693600160a01b90930460ff16929190611b989061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc49061532c565b8015611c115780601f10611be657610100808354040283529160200191611c11565b820191906000526020600020905b815481529060010190602001808311611bf457829003601f168201915b505050505090806002018054611c269061532c565b80601f0160208091040260200160405190810160405280929190818152602001828054611c529061532c565b8015611c9f5780601f10611c7457610100808354040283529160200191611c9f565b820191906000526020600020905b815481529060010190602001808311611c8257829003601f168201915b5050505050905084565b600d54600e546060918291829190611cc181836153e4565b6001600160401b03811115611cd857611cd8614ab6565b604051908082528060200260200182016040528015611d01578160200160208202803683370190505b509450611d0e81836153e4565b6001600160401b03811115611d2557611d25614ab6565b604051908082528060200260200182016040528015611d4e578160200160208202803683370190505b509350611d5b81836153e4565b6001600160401b03811115611d7257611d72614ab6565b604051908082528060200260200182016040528015611d9b578160200160208202803683370190505b50925060005b82811015611e8457611dbf600d8281548110610cfd57610cfd61538c565b868281518110611dd157611dd161538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e32600d8281548110611e0757611e0761538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166135b7565b858281518110611e4457611e4461538c565b6020026020010181815250506000848281518110611e6457611e6461538c565b91151560209283029190910190910152611e7d816153b8565b9050611da1565b5060005b81811015611f6757611ea6600e8281548110610cfd57610cfd61538c565b600d548790611eb590846153e4565b81518110611ec557611ec561538c565b60200260200101906001600160a01b031690816001600160a01b031681525050611efb600e8281548110611e0757611e0761538c565b600d548690611f0a90846153e4565b81518110611f1a57611f1a61538c565b6020908102919091010152600d546001908590611f3790846153e4565b81518110611f4757611f4761538c565b91151560209283029190910190910152611f60816153b8565b9050611e88565b505050909192565b60006001600160a01b0384163014611f9a576040516304a246dd60e51b815260040160405180910390fd5b601a5461010090046001600160a01b03163314611fca576040516349456ad960e01b815260040160405180910390fd5b6000611fd883850185614d63565b905060005b81518160ff1610156120c2576000828260ff16815181106120005761200061538c565b602090810291909101810151516001600160a01b0381166000908152601390925260409091205490915060ff1661205557604051635df6b61760e11b81526001600160a01b0382166004820152602401610b9c565b60005b838360ff168151811061206d5761206d61538c565b602002602001015160200151518160ff1610156120af5761209c848460ff16815181106115ba576115ba61538c565b50806120a78161541b565b915050612058565b5050806120bb9061541b565b9050611fdd565b5060005b8881101561216657601a546121569061010090046001600160a01b03168989848181106120f5576120f561538c565b905060200201358c8c8581811061210e5761210e61538c565b9050602002013561211f91906153e4565b8e8e858181106121315761213161538c565b90506020020160208101906121469190614c0c565b6001600160a01b03169190613984565b61215f816153b8565b90506120c6565b5060019b9a5050505050505050505050565b6000600b5460011461219c5760405162461bcd60e51b8152600401610b9c90615308565b6002600b5560006121ac81612d0c565b90506121b884826139fb565b9150816000036121db57604051639768300560e01b815260040160405180910390fd5b611af7828585613906565b60018054610bc19061532c565b600a546001600160a01b0316331461221d5760405162461bcd60e51b8152600401610b9c90615366565b612225613454565b610f8c84848484613a12565b600a546001600160a01b0316331461225b5760405162461bcd60e51b8152600401610b9c90615366565b61012c81108061226d57506202a30081115b1561228b57604051633a60233f60e21b815260040160405180910390fd5b601780549082905560408051828152602081018490527f227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f2491016117f7565b600a546001600160a01b031633146122f35760405162461bcd60e51b8152600401610b9c90615366565b6122fe838383613640565b505050565b600061230d612c6c565b600b5460011461232f5760405162461bcd60e51b8152600401610b9c90615308565b610baf6001612d0c565b600061234433613478565b610de98383613cb9565b60005b818110156122fe576123bd83838381811061236e5761236e61538c565b90506020028101906123809190615457565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525030939250506137ed9050565b50806123c8816153b8565b915050612351565b600a546001600160a01b031633146123fa5760405162461bcd60e51b8152600401610b9c90615366565b601554604080516001600160a01b03928316815291831660208301527f51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d910160405180910390a1601580546001600160a01b0319166001600160a01b0392909216919091179055565b601654600090610100900460ff166124e657601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa1580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baf919061549d565b50600090565b6000806124f7610b70565b9050610de983826139fb565b6000600b546001146125275760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061253781612d0c565b905061254385826133c5565b915061255185838686613d1f565b506001600b559392505050565b600a546001600160a01b031633146125885760405162461bcd60e51b8152600401610b9c90615366565b670de0b6b3a76400006001600160401b03821611156125ba57604051633d0203e560e01b815260040160405180910390fd5b601454604080516001600160401b03928316815291831660208301527fb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868910160405180910390a16014805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000600b546001146126485760405162461bcd60e51b8152600401610b9c90615308565b6002600b55600061265881612d0c565b9050612664858261329c565b91508160000361268757604051639768300560e01b815260040160405180910390fd5b61255182868686613d1f565b6000610c8b826126a1610b70565b6138ef565b6000600b546001146126ca5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826000613df8565b600a546001600160a01b031633146126ff5760405162461bcd60e51b8152600401610b9c90615366565b63ffffffff81166000818152601260209081526040808320805460ff191690558051938452908301919091527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b428410156127a35760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610b9c565b600060016127af610f92565b6001600160a01b038a811660008181526008602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156128bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906128f15750876001600160a01b0316816001600160a01b0316145b61292e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610b9c565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000600b546001146129bb5760405162461bcd60e51b8152600401610b9c90615308565b610c8b826001613df8565b600e818154811061181357600080fd5b600a546001600160a01b03163314612a005760405162461bcd60e51b8152600401610b9c90615366565b601680549115156101000261ff0019909216919091179055565b600080612a25610b70565b9050610de983826138ef565b600a546001600160a01b03163314612a5b5760405162461bcd60e51b8152600401610b9c90615366565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b82548015612c2b578380612abc6001846153d1565b81548110612acc57612acc61538c565b60009182526020808320600880840490910154855460018082018855968652928520918304909101805463ffffffff60046007958616810261010090810a83810219909416969097160290950a9092049093160217905590612b2e90836153d1565b90505b8363ffffffff16811115612bd95784612b4b6001836153d1565b81548110612b5b57612b5b61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16858281548110612b9357612b9361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508080612bd1906154ba565b915050612b31565b5081848463ffffffff1681548110612bf357612bf361538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550610f8c565b508254600181018455600093845260209093206008840401805460079094166004026101000a63ffffffff8181021990951692909416939093021790915550565b601654610100900460ff16612d0a57601654604051630ad85dff60e41b8152306004820152620100009091046001600160a01b03169063ad85dff090602401602060405180830381865afa158015612cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cec919061549d565b15612d0a57604051630f301f8f60e41b815260040160405180910390fd5b565b600d5460009081816001600160401b03811115612d2b57612d2b614ab6565b604051908082528060200260200182016040528015612d54578160200160208202803683370190505b5090506000826001600160401b03811115612d7157612d71614ab6565b604051908082528060200260200182016040528015612d9a578160200160208202803683370190505b5090508415612eeb5760005b83811015612e6b576000600d8281548110612dc357612dc361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612df481613eba565b838381518110612e0657612e0661538c565b6020026020010181815250600003612e1e5750612e5b565b612e278161333c565b848381518110612e3957612e3961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b612e64816153b8565b9050612da6565b50600c5460095460405163b333a17560e01b81526001600160a01b039283169263b333a17592612ea3928792879216906004016154d1565b602060405180830381865afa158015612ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee4919061550f565b9350613190565b600e546000816001600160401b03811115612f0857612f08614ab6565b604051908082528060200260200182016040528015612f31578160200160208202803683370190505b5090506000826001600160401b03811115612f4e57612f4e614ab6565b604051908082528060200260200182016040528015612f77578160200160208202803683370190505b50905060005b86811015613042576000600d8281548110612f9a57612f9a61538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050612fcb816135b7565b868381518110612fdd57612fdd61538c565b6020026020010181815250600003612ff55750613032565b612ffe8161333c565b8783815181106130105761301061538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b61303b816153b8565b9050612f7d565b5060005b8381101561310b576000600e82815481106130635761306361538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050613094816135b7565b8383815181106130a6576130a661538c565b60200260200101818152506000036130be57506130fb565b6130c78161333c565b8483815181106130d9576130d961538c565b60200260200101906001600160a01b031690816001600160a01b031681525050505b613104816153b8565b9050613046565b50600c54600954604051637563738b60e11b81526001600160a01b039283169263eac6e71692613149928a928a928992899290911690600401615528565b602060405180830381865afa158015613166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318a919061550f565b96505050505b505050919050565b63ffffffff81166000908152600f602052604090205460ff166131d6576040516370abe85960e01b815263ffffffff82166004820152602401610b9c565b6009546001600160a01b03166131eb8261333c565b6001600160a01b03161461323a576009546001600160a01b031661320e8261333c565b60405163298473c760e11b81526001600160a01b03928316600482015291166024820152604401610b9c565b63ffffffff8116600090815260106020526040902054600160a01b900460ff161561328057604051630a42c0f960e41b815263ffffffff82166004820152602401610b9c565b6011805463ffffffff191663ffffffff92909216919091179055565b60035460009080156132b8576132b38484836138d0565b610e71565b610e716012600960009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133349190615590565b869190613f74565b63ffffffff81166000908152601060205260408082208054915163e170a9bf60e01b81526001600160a01b0390921691829163e170a9bf91613384916001019060040161562a565b602060405180830381865afa1580156133a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061543a565b60035460009080156133dc576132b38482856137bf565b6009546040805163313ce56760e01b81529051610e71926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015613427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344b9190615590565b85906012613f74565b60165460ff1615612d0a576040516337a5332d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205480156134d3576000601754826134a791906153e4565b9050428111156122fe576040516306f8ee3f60e21b815260048101829052426024820152604401610b9c565b5050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146135335761350e83826153d1565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260408120805485929061355b9084906153d1565b90915550506001600160a01b0380851660008181526004602052604090819020805487019055519091871690600080516020615a9b833981519152906135a49087815260200190565b60405180910390a3506001949350505050565b63ffffffff811660009081526010602052604080822080549151637841536560e01b81526001600160a01b039092169182916378415365916135ff916001019060040161562a565b602060405180830381865afa15801561361c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de9919061550f565b60115463ffffffff9081169083160361366c576040516319ded73160e21b815260040160405180910390fd5b80156136825761367d600e84613fdd565b61368d565b61368d600d84613fdd565b63ffffffff82166000908152600f60209081526040808320805460ff191690556010909152812080546001600160a81b0319168155906136d06001830182614924565b6136de600283016000614924565b50506040805163ffffffff8085168252851660208201527fa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51910160405180910390a1505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051613757919061563d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8282028115158415858304851417166137d757600080fd5b6001826001830304018115150290509392505050565b6060610de98383604051806060016040528060278152602001615a7460279139614122565b601654604051635159d87f60e11b815263ffffffff83166004820152620100009091046001600160a01b03169063a2b3b0fe9060240160006040518083038186803b15801561386057600080fd5b505afa158015613874573d6000803e3d6000fd5b5050505063ffffffff8116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f9101611369565b8282028115158415858304851417166138e857600080fd5b0492915050565b60035460009080156133dc576132b38482856138d0565b61391183838361419a565b600954613929906001600160a01b0316333086614282565b613933818361430c565b60408051848152602081018490526001600160a01b0383169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a36122fe838383614366565b600060405163095ea7b360e01b8152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610f8c5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610b9c565b60035460009080156132b8576132b38484836137bf565b63ffffffff83166000908152600f602052604090205460ff1615613a515760405163335894fb60e11b815263ffffffff84166004820152602401610b9c565b63ffffffff831660009081526012602052604090205460ff16613a8f57604051631f9db01d60e31b815263ffffffff84166004820152602401610b9c565b6016546040516385ae5d5760e01b815263ffffffff85166004820152600091829182916201000090046001600160a01b0316906385ae5d5790602401600060405180830381865afa158015613ae8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b1091908101906156b3565b92509250925083151582151514613b4257604051632b1d0bd360e11b815263ffffffff87166004820152602401610b9c565b604080516080810182526001600160a01b0380861682528415156020808401918252838501868152606085018b905263ffffffff8c16600090815260109092529490208351815492511515600160a01b026001600160a81b031990931693169290921717815591519091906001820190613bbc90826157a0565b5060608201516002820190613bd190826157a0565b509050508115613c1257600e54601011613c015760405163f025236d60e01b815260106004820152602401610b9c565b613c0d600e8888612aa7565b613c44565b600d54601011613c385760405163f025236d60e01b815260106004820152602401610b9c565b613c44600d8888612aa7565b63ffffffff86166000908152600f602052604090819020805460ff19166001179055517fc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb90613ca89088908a9063ffffffff92831681529116602082015260400190565b60405180910390a150505050505050565b33600090815260046020526040812080548391908390613cda9084906153d1565b90915550506001600160a01b03831660008181526004602052604090819020805485019055513390600080516020615a9b83398151915290610dc19086815260200190565b613d2b84848484614397565b336001600160a01b03821614613d99576001600160a01b03811660009081526005602090815260408083203384529091529020546000198114613d9757613d7284826153d1565b6001600160a01b03831660009081526005602090815260408083203384529091529020555b505b613da381846143a8565b60408051858152602081018590526001600160a01b03808416929085169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4610f8c848361440a565b6000613e02612c6c565b6001600160a01b0383166000908152601860205260409020548015613e4857600060175482613e3191906153e4565b905042811115613e4657600092505050610c8b565b505b6000613e546000612d0c565b6001600160a01b03861660009081526004602052604081205491925090613e7b908361329c565b90506000613e896001612d0c565b905080821115613e995780613e9b565b815b94508515613eb057613ead85846138ef565b94505b5050505092915050565b63ffffffff8116600090815260106020526040812054600160a01b900460ff1615613ee757506000919050565b63ffffffff82166000908152601060205260409081902080549151637d2872e960e11b81526001600160a01b039092169163fa50e5d291613f339160018201916002019060040161585f565b602060405180830381865afa158015613f50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b919061550f565b60008160ff168360ff1603613f8a575082610de9565b8160ff168360ff161015613fbe57613fa2838361588d565b613fad90600a61598a565b613fb79085615999565b9050610de9565b613fc8828461588d565b613fd390600a61598a565b613fb790856159b8565b815463ffffffff8216811161402a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610b9c565b63ffffffff82165b61403d6001836153d1565b8110156140de57836140508260016153e4565b815481106140605761406061538c565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff168482815481106140985761409861538c565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555080806140d6906153b8565b915050614032565b50828054806140ef576140ef6159da565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055505050565b6060600080856001600160a01b03168560405161413f91906159f0565b600060405180830381855af49150503d806000811461417a576040519150601f19603f3d011682016040523d82523d6000602084013e61417f565b606091505b5091509150614190868383876147a5565b9695505050505050565b6141a2613454565b6141aa612c6c565b336001600160a01b0382161461424a57601654604051635551e1b560e01b8152336004820152620100009091046001600160a01b031690635551e1b590602401602060405180830381865afa158015614207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422b919061549d565b61424a576040516334871f2560e21b8152336004820152602401610b9c565b6000614255826113f8565b905080841115610f8c57604051632d21eb8760e21b81526004810185905260248101829052604401610b9c565b60006040516323b872dd60e01b81528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806143055760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606401610b9c565b5050505050565b806003600082825461431e91906153e4565b90915550506001600160a01b038216600081815260046020908152604080832080548601905551848152600080516020615a9b83398151915291015b60405180910390a35050565b6011546143799063ffffffff168461481e565b6001600160a01b031660009081526018602052604090204290555050565b61439f612c6c565b610f8c81613478565b6001600160a01b038216600090815260046020526040812080548392906143d09084906153d1565b90915550506003805482900390556040518181526000906001600160a01b03841690600080516020615a9b8339815191529060200161435a565b6144356040518060800160405280600081526020016000815260200160008152602001600081525090565b600c54600954604051630226614760e01b81526001600160a01b039182166004820152911690630226614790602401602060405180830381865afa158015614481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a5919061550f565b604080830191909152600954815163313ce56760e01b815291516001600160a01b039091169163313ce5679160048083019260209291908290030181865afa1580156144f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145199190615590565b61452490600a61598a565b6060820152600d5460005b81811015614782576000600d828154811061454c5761454c61538c565b60009182526020822060088204015460079091166004026101000a900463ffffffff16915061457a82613eba565b90508060000361458b575050614772565b60006145968361333c565b600c54604051630226614760e01b81526001600160a01b038084166004830152929350911690630226614790602401602060405180830381865afa1580156145e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614606919061550f565b866000018181525050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561464d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146719190615590565b61467c90600a61598a565b60208701819052865160009182916146a7916146a087670de0b6b3a7640000615999565b91906138d0565b90506146c688606001518960400151836138d09092919063ffffffff16565b91506146da670de0b6b3a7640000836159b8565b91505060008982111561474057600061470a89604001518a606001518d670de0b6b3a76400006146a09190615999565b60208a01518a51919250614720918391906138d0565b9150614734670de0b6b3a7640000836159b8565b915060009a505061474f565b508261474c828b6153d1565b99505b61475a85828b6148ab565b8960000361476c575050505050614782565b50505050505b61477b816153b8565b905061452f565b508315610f8c5760405163cc5ea39b60e01b815260048101859052602401610b9c565b6060831561481457825160000361480d576001600160a01b0385163b61480d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9c565b5081610e71565b610e7183836148fa565b63ffffffff821660009081526010602052604090819020805491516001600160a01b0390921691610f8c916369445c3160e01b91614869918691600182019160020190602401615a0c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038316906137ed565b63ffffffff831660009081526010602052604090819020805491516001600160a01b03909216916143059163c9111bd760e01b9161486991879187916001810191600290910190602401615a37565b81511561490a5781518083602001fd5b8060405162461bcd60e51b8152600401610b9c91906149be565b5080546149309061532c565b6000825580601f10614940575050565b601f016020900490600052602060002090810190610c7591905b80821115610d62576000815560010161495a565b60005b83811015614989578181015183820152602001614971565b50506000910152565b600081518084526149aa81602086016020860161496e565b601f01601f19169290920160200192915050565b602081526000610de96020830184614992565b803563ffffffff811681146149e557600080fd5b919050565b6000602082840312156149fc57600080fd5b610de9826149d1565b600060208284031215614a1757600080fd5b5035919050565b600081518084526020808501945080840160005b83811015614a575781516001600160a01b031687529582019590820190600101614a32565b509495945050505050565b602081526000610de96020830184614a1e565b6001600160a01b0381168114610c7557600080fd5b60008060408385031215614a9d57600080fd5b8235614aa881614a75565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614aee57614aee614ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1c57614b1c614ab6565b604052919050565b60006001600160401b03821115614b3d57614b3d614ab6565b50601f01601f191660200190565b600082601f830112614b5c57600080fd5b8135614b6f614b6a82614b24565b614af4565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614bb757600080fd5b8435614bc281614a75565b93506020850135614bd281614a75565b92506040850135915060608501356001600160401b03811115614bf457600080fd5b614c0087828801614b4b565b91505092959194509250565b600060208284031215614c1e57600080fd5b8135610de981614a75565b600080600060608486031215614c3e57600080fd5b8335614c4981614a75565b92506020840135614c5981614a75565b929592945050506040919091013590565b8015158114610c7557600080fd5b60008060408385031215614c8b57600080fd5b614c94836149d1565b91506020830135614ca481614c6a565b809150509250929050565b600080600060608486031215614cc457600080fd5b614ccd846149d1565b9250614cdb602085016149d1565b91506040840135614ceb81614c6a565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015614d3457835163ffffffff1683529284019291840191600101614d12565b50909695505050505050565b60006001600160401b03821115614d5957614d59614ab6565b5060051b60200190565b600060208284031215614d7557600080fd5b6001600160401b038083351115614d8b57600080fd5b8235830184601f820112614d9e57600080fd5b614dab614b6a8235614d40565b81358082526020808301929160051b84010187811115614dca57600080fd5b602084015b81811015614ec7578581351115614de557600080fd5b803585016040818b03601f19011215614dfd57600080fd5b614e05614acc565b6020820135614e1381614a75565b8152604082013588811115614e2757600080fd5b8083019250508a603f830112614e3c57600080fd5b6020820135614e4d614b6a82614d40565b81815260059190911b83016040019060208101908d831115614e6e57600080fd5b604085015b83811015614ea7578b81351115614e8957600080fd5b614e998f60408335890101614b4b565b835260209283019201614e73565b508060208501525050508086525050602084019350602081019050614dcf565b5090979650505050505050565b600060208284031215614ee657600080fd5b8135610de981614c6a565b60008060408385031215614f0457600080fd5b823591506020830135614ca481614a75565b6001600160a01b03851681528315156020820152608060408201819052600090614f4290830185614992565b8281036060840152614f548185614992565b979650505050505050565b600081518084526020808501945080840160005b83811015614a5757815187529582019590820190600101614f73565b606081526000614fa26060830186614a1e565b602083820381850152614fb58287614f5f565b8481036040860152855180825282870193509082019060005b81811015614fec578451151583529383019391830191600101614fce565b509098975050505050505050565b60008083601f84011261500c57600080fd5b5081356001600160401b0381111561502357600080fd5b6020830191508360208260051b850101111561503e57600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561506357600080fd5b89356001600160401b038082111561507a57600080fd5b6150868d838e01614ffa565b909b50995060208c013591508082111561509f57600080fd5b6150ab8d838e01614ffa565b909950975060408c01359150808211156150c457600080fd5b6150d08d838e01614ffa565b909750955060608c013591506150e582614a75565b90935060808b013590808211156150fb57600080fd5b818c0191508c601f83011261510f57600080fd5b81358181111561511e57600080fd5b8d602082850101111561513057600080fd5b6020830194508093505050509295985092959850929598565b6000806000806080858703121561515f57600080fd5b615168856149d1565b9350615176602086016149d1565b925060408501356001600160401b0381111561519157600080fd5b61519d87828801614b4b565b92505060608501356151ae81614c6a565b939692955090935050565b600080602083850312156151cc57600080fd5b82356001600160401b038111156151e257600080fd5b6151ee85828601614ffa565b90969095509350505050565b60008060006060848603121561520f57600080fd5b83359250602084013561522181614a75565b91506040840135614ceb81614a75565b60006020828403121561524357600080fd5b81356001600160401b0381168114610de957600080fd5b60ff81168114610c7557600080fd5b600080600080600080600060e0888a03121561528457600080fd5b873561528f81614a75565b9650602088013561529f81614a75565b9550604088013594506060880135935060808801356152bd8161525a565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156152ed57600080fd5b82356152f881614a75565b91506020830135614ca481614a75565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b600181811c9082168061534057607f821691505b60208210810361536057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016153ca576153ca6153a2565b5060010190565b81810381811115610c8b57610c8b6153a2565b80820180821115610c8b57610c8b6153a2565b6001600160a01b0383168152604060208201819052600090610e7190830184614992565b600060ff821660ff8103615431576154316153a2565b60010192915050565b60006020828403121561544c57600080fd5b8151610de981614a75565b6000808335601e1984360301811261546e57600080fd5b8301803591506001600160401b0382111561548857600080fd5b60200191503681900382131561503e57600080fd5b6000602082840312156154af57600080fd5b8151610de981614c6a565b6000816154c9576154c96153a2565b506000190190565b6060815260006154e46060830186614a1e565b82810360208401526154f68186614f5f565b91505060018060a01b0383166040830152949350505050565b60006020828403121561552157600080fd5b5051919050565b60a08152600061553b60a0830188614a1e565b828103602084015261554d8188614f5f565b905082810360408401526155618187614a1e565b905082810360608401526155758186614f5f565b91505060018060a01b03831660808301529695505050505050565b6000602082840312156155a257600080fd5b8151610de98161525a565b600081546155ba8161532c565b8085526020600183811680156155d757600181146155f15761561f565b60ff1985168884015283151560051b88018301955061561f565b866000528260002060005b858110156156175781548a82018601529083019084016155fc565b890184019650505b505050505092915050565b602081526000610de960208301846155ad565b600080835461564b8161532c565b600182811680156156635760018114615678576156a7565b60ff19841687528215158302870194506156a7565b8760005260208060002060005b8581101561569e5781548a820152908401908201615685565b50505082870194505b50929695505050505050565b6000806000606084860312156156c857600080fd5b83516156d381614a75565b60208501519093506156e481614c6a565b60408501519092506001600160401b0381111561570057600080fd5b8401601f8101861361571157600080fd5b805161571f614b6a82614b24565b81815287602083850101111561573457600080fd5b61574582602083016020860161496e565b8093505050509250925092565b601f8211156122fe57600081815260208120601f850160051c810160208610156157795750805b601f850160051c820191505b8181101561579857828155600101615785565b505050505050565b81516001600160401b038111156157b9576157b9614ab6565b6157cd816157c7845461532c565b84615752565b602080601f83116001811461580257600084156157ea5750858301515b600019600386901b1c1916600185901b178555615798565b600085815260208120601f198616915b8281101561583157888601518255948401946001909101908401615812565b508582101561584f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061587260408301856155ad565b828103602084015261588481856155ad565b95945050505050565b60ff8281168282160390811115610c8b57610c8b6153a2565b600181815b808511156158e15781600019048211156158c7576158c76153a2565b808516156158d457918102915b93841c93908002906158ab565b509250929050565b6000826158f857506001610c8b565b8161590557506000610c8b565b816001811461591b576002811461592557615941565b6001915050610c8b565b60ff841115615936576159366153a2565b50506001821b610c8b565b5060208310610133831016604e8410600b8410161715615964575081810a610c8b565b61596e83836158a6565b8060001904821115615982576159826153a2565b029392505050565b6000610de960ff8416836158e9565b60008160001904831182151516156159b3576159b36153a2565b500290565b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008251615a0281846020870161496e565b9190910192915050565b838152606060208201526000615a2560608301856155ad565b828103604084015261419081856155ad565b8481526001600160a01b0384166020820152608060408201819052600090615a61908301856155ad565b8281036060840152614f5481856155ad56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dd287b48397cc723182f481f545c67e54374e23ca920649697588f2a1afd3d964736f6c63430008100033\",\n \"sourceMap\": \"806:60136:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26377:58;;26429:6;26377:58;;;;;160:25:98;;;148:2;133:18;26377:58:41;;;;;;;;41742:183;;;:::i;26528:58::-;;26580:6;26528:58;;1031:18:45;;;:::i;:::-;;;;;;;:::i;7823:114:41:-;;;;;;:::i;:::-;;:::i;:::-;;42549:152;;;;;;:::i;:::-;;:::i;59778:263::-;;;:::i;:::-;;;;;;;:::i;2431:211:45:-;;;;;;:::i;:::-;;:::i;:::-;;;2876:14:98;;2869:22;2851:41;;2839:2;2824:18;2431:211:45;2711:187:98;43724:197:41;;;;;;:::i;:::-;;:::i;20479:146::-;;;:::i;588:200:19:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;5067:33:98;;;5049:52;;5037:2;5022:18;588:200:19;4905:202:98;1294:26:45;;;;;;8633:48:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;28317:191;;;;;;:::i;:::-;;:::i;1083:21:45:-;;;;;;;;;;;;5997:4:98;5985:17;;;5967:36;;5955:2;5940:18;1083:21:45;5825:184:98;12687:508:41;;;;;;:::i;:::-;;:::i;5297:177:45:-;;;:::i;14385:798:41:-;;;;;;:::i;:::-;;:::i;1113:18:46:-;;;;;-1:-1:-1;;;;;1113:18:46;;;;;;-1:-1:-1;;;;;7206:32:98;;;7188:51;;7176:2;7161:18;1113::46;7027:218:98;17556:48:41;;17598:6;17556:48;;;;;-1:-1:-1;;;;;7412:31:98;;;7394:50;;7382:2;7367:18;17556:48:41;7250:200:98;9675:283:41;;;;;;:::i;:::-;;:::i;7344:105::-;;;:::i;:::-;;;;;;;:::i;56208:144::-;;;;;;:::i;:::-;;:::i;51330:33::-;;;;;;;;;44571:195;;;;;;:::i;:::-;;:::i;52415:1775::-;;;;;;:::i;:::-;;:::i;8782:122::-;;;;;;:::i;:::-;;:::i;50744:402::-;;;;;;:::i;:::-;;:::i;6611:31::-;;;;;;:::i;:::-;;:::i;:::-;;;10702:10:98;10690:23;;;10672:42;;10660:2;10645:18;6611:31:41;10528:192:98;21194:54:41;;21247:1;21194:54;;20682:179;;;:::i;10062:176::-;;;;;;:::i;:::-;;:::i;26898:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;2419:739;;;;;;:::i;:::-;;:::i;30724:483::-;;;;;;:::i;:::-;;:::i;50342:55::-;;50391:6;50342:55;;1327:44:45;;;;;;:::i;:::-;;;;;;;;;;;;;;7134:109:41;;;:::i;6967:63::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;60047:893::-;;;:::i;:::-;;;;;;;;;:::i;21374:24::-;;;;;;;;-1:-1:-1;;;;;21374:24:41;;;1721:41:45;;;;;;:::i;:::-;;;;;;;;;;;;;;690:20:25;;;;;-1:-1:-1;;;;;690:20:25;;;54817:1117:41;;;;;;:::i;:::-;;:::i;6846:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;31483:507;;;;;;:::i;:::-;;:::i;1056:20:45:-;;;:::i;10548:269:41:-;;;;;;:::i;:::-;;:::i;19367:23::-;;;;;;;;;;;;27075:366;;;;;;:::i;:::-;;:::i;7711:29::-;;;;;;;;;26734:58;;;;;;54636:68;;;;;;;;-1:-1:-1;;;;;54636:68:41;;;13321:160;;;;;;:::i;:::-;;:::i;42137:185::-;;;:::i;28062:169::-;;;;;;:::i;:::-;;:::i;1239:153::-;;;;;;:::i;:::-;;:::i;18252:215::-;;;;;;:::i;:::-;;:::i;19501:175::-;;;:::i;43304:189::-;;;;;;:::i;:::-;;:::i;33530:497::-;;;;;;:::i;:::-;;:::i;17864:260::-;;;;;;:::i;:::-;;:::i;34905:532::-;;;;;;:::i;:::-;;:::i;19251:22::-;;;;;;;;;50530:52;;;;;;42928:152;;;;;;:::i;:::-;;:::i;8467:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21054:56;;21109:1;21054:56;;46282:165;;;;;;:::i;:::-;;:::i;1624:25::-;;;;;;9389:187;;;;;;:::i;:::-;;:::i;3808:1483:45:-;;;;;;:::i;:::-;;:::i;2032:30:41:-;;;;;-1:-1:-1;;;;;2032:30:41;;;46802:162;;;;;;:::i;:::-;;:::i;1378:64:45:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6736:29:41;;;;;;:::i;:::-;;:::i;17256:207::-;;;;;;;-1:-1:-1;;;;;17256:207:41;;;;;;;;;;-1:-1:-1;;;17256:207:41;;;;;;-1:-1:-1;;;;;17256:207:41;;;;;;;-1:-1:-1;;;;;19453:15:98;;;19435:34;;19505:15;;;19500:2;19485:18;;19478:43;19557:15;;;;19537:18;;;19530:43;-1:-1:-1;;;;;19609:32:98;;;19604:2;19589:18;;19582:60;19385:3;19370:19;17256:207:41;19173:475:98;20035:96:41;;;;;;:::i;:::-;;:::i;17689:41::-;;17726:4;17689:41;;44148:196;;;;;;:::i;:::-;;:::i;1312:161:25:-;;;;;;:::i;:::-;;:::i;7560:42:41:-;;7600:2;7560:42;;41742:183;41795:14;41821:16;:14;:16::i;:::-;41855:6;;41865:1;41855:11;41847:34;;;;-1:-1:-1;;;41847:34:41;;;;;;;:::i;:::-;;;;;;;;;41900:18;41912:5;41900:11;:18::i;:::-;41891:27;;41742:183;:::o;1031:18:45:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7823:114:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;7899:31:41::1;7919:10;7899:19;:31::i;:::-;7823:114:::0;:::o;42549:152::-;42620:14;42655:39;42672:6;42680:13;:11;:13::i;:::-;42655:16;:39::i;:::-;42646:48;42549:152;-1:-1:-1;;42549:152:41:o;59778:263::-;59884:15;:22;59830:21;;-1:-1:-1;;;;;59872:35:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;59872:35:41;;59863:44;;59922:9;59917:118;59941:15;:22;59937:26;;59917:118;;;59996:28;60005:15;60021:1;60005:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;59996:8;:28::i;:::-;59984:6;59991:1;59984:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;59984:40:41;;;:9;;;;;;;;;;;:40;59965:3;;;:::i;:::-;;;59917:118;;;;59778:263;:::o;2431:211:45:-;2531:10;2505:4;2521:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2521:30:45;;;;;;;;;;:39;;;2576:37;2505:4;;2521:30;;2576:37;;;;2554:6;160:25:98;;148:2;133:18;;14:177;2576:37:45;;;;;;;;-1:-1:-1;2631:4:45;2431:211;;;;:::o;43724:197:41:-;43795:14;43821:20;43844:13;:11;:13::i;:::-;43821:36;;43876:38;43893:6;43901:12;43876:16;:38::i;:::-;43867:47;43724:197;-1:-1:-1;;;43724:197:41:o;20479:146::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20536:18:41::1;:16;:18::i;:::-;20564:10;:17:::0;;-1:-1:-1;;20564:17:41::1;20577:4;20564:17:::0;;::::1;::::0;;;20597:21:::1;::::0;2851:41:98;;;20597:21:41::1;::::0;2839:2:98;2824:18;20597:21:41::1;;;;;;;;20479:146::o:0;588:200:19:-;-1:-1:-1;;;588:200:19;;;;;;;:::o;28317:191:41:-;28406:4;28422:26;28443:4;28422:20;:26::i;:::-;28465:36;28484:4;28490:2;28494:6;28465:18;:36::i;12687:508::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;12811:17:41::1;12831:11;:59;;12868:15;12884:5;12868:22;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:59;;;12845:13;12859:5;12845:20;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:59;12811:79;;12987:23;13013:22;13024:10;13013;:22::i;:::-;12987:48:::0;-1:-1:-1;13049:19:41;;13045:85:::1;;13077:53;::::0;-1:-1:-1;;;13077:53:41;;21324:10:98;21312:23;;13077:53:41::1;::::0;::::1;21294:42:98::0;21352:18;;;21345:34;;;21267:18;;13077:53:41::1;21122:263:98::0;13045:85:41::1;13141:47;13157:5;13164:10;13176:11;13141:15;:47::i;:::-;12762:433;;12687:508:::0;;:::o;5297:177:45:-;5354:7;5397:16;;5380:13;:33;:87;;5443:24;:22;:24::i;5380:87::-;-1:-1:-1;5416:24:45;;;5297:177::o;14385:798:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;14546:19:41::1;14575::::0;14609:11:::1;14605:497;;;14651:13;14665:6;14651:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14636:36;;14701:13;14715:6;14701:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14686:36;;14817:12;14831;14768:13;14782:6;14768:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14791:13;14805:6;14791:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14767:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14605:497;;;14890:15;14906:6;14890:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14875:38;;14942:15;14958:6;14942:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14927:38;;15064:12;15078;15011:15;15027:6;15011:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15036:15;15052:6;15036:23;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15010:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14605:497;15117:59;::::0;;21625:10:98;21662:15;;;21644:34;;21714:15;;;21709:2;21694:18;;21687:43;21766:15;;;21746:18;;;21739:43;21818:15;;21813:2;21798:18;;21791:43;15117:59:41;;::::1;::::0;;;;21602:3:98;15117:59:41;;::::1;14475:708;;14385:798:::0;;;:::o;9675:283::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;9811:8:41::1;::::0;:45:::1;::::0;-1:-1:-1;;;9811:45:41;;-1:-1:-1;;;;;7206:32:98;;;9811:45:41::1;::::0;::::1;7188:51:98::0;9811:8:41;;;::::1;::::0;;::::1;::::0;:36:::1;::::0;7161:18:98;;9811:45:41::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;9866:25:41;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:32;;-1:-1:-1;;9866:32:41::1;9894:4;9866:32:::0;;::::1;::::0;;;9913:38;;22013:51:98;;;22080:18;;;22073:50;9913:38:41::1;::::0;21986:18:98;9913:38:41::1;;;;;;;;9675:283:::0;:::o;7344:105::-;7395:15;7429:13;7422:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:105;:::o;56208:144::-;56290:10;;56267:7;;56290:10;;56286:24;;;-1:-1:-1;56309:1:41;;56208:144;-1:-1:-1;56208:144:41:o;56286:24::-;-1:-1:-1;;;56328:17:41;56208:144;-1:-1:-1;56208:144:41:o;44571:195::-;44640:14;44666:20;44689:13;:11;:13::i;:::-;44666:36;;44721:38;44738:6;44746:12;44721:16;:38::i;52415:1775::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;1698:6:41::1;;1708:1;1698:11;1690:34;;;;-1:-1:-1::0;;;1690:34:41::1;;;;;;;:::i;:::-;1744:1;1735:6;:10:::0;52507:18:::2;:16;:18::i;:::-;52535:16;:14;:16::i;:::-;52561:21;:28:::0;;-1:-1:-1;;52561:28:41::2;52585:4;52561:28;::::0;;:21:::2;::::0;;;52837:18:::2;52561:21:::0;52837:11:::2;:18::i;:::-;52803:52;;52892:74;52933:25;;52926:4;:32;;;;:::i;:::-;52892:23:::0;;52961:4:::2;52892:32;:74::i;:::-;52869:97;;53003:74;53044:25;;53037:4;:32;;;;:::i;53003:74::-;52980:97;;53105:11;;53091:25;;52789:338;53176:7;53171:477;53193:4;:11;53189:1;:15;;;53171:477;;;53225:15;53243:4;53248:1;53243:7;;;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;:15;-1:-1:-1;;;;;53350:25:41;::::2;53243:15;53350:25:::0;;;:16:::2;:25:::0;;;;;;;;53243:15;;-1:-1:-1;53350:25:41::2;;53345:79;;53384:40;::::0;-1:-1:-1;;;53384:40:41;;-1:-1:-1;;;;;7206:32:98;;53384:40:41::2;::::0;::::2;7188:51:98::0;7161:18;;53384:40:41::2;7027:218:98::0;53345:79:41::2;53443:7;53438:200;53460:4;53465:1;53460:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;:23;53456:1;:27;;;53438:200;;;53508:49;53537:4;53542:1;53537:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;53554:1;53537:19;;;;;;;;;;:::i;:::-;;;;;;;53508:7;-1:-1:-1::0;;;;;53508:28:41::2;;;:49;;;;:::i;:::-;;53580:43;53594:7;53603:4;53608:1;53603:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;53620:1;53603:19;;;;;;;;;;:::i;:::-;;;;;;;53580:43;;;;;;;:::i;:::-;;;;;;;;53485:3:::0;::::2;::::0;::::2;:::i;:::-;;;;53438:200;;;;53211:437;53206:3;;;;:::i;:::-;;;53171:477;;;;53797:14;53814:18;53826:5;53814:11;:18::i;:::-;53797:35;;53855:20;53846:6;:29;:62;;;;53888:20;53879:6;:29;53846:62;53842:190;;;53931:90;::::0;-1:-1:-1;;;53931:90:41;;::::2;::::0;::::2;23099:25:98::0;;;23140:18;;;23133:34;;;23183:18;;;23176:34;;;23072:18;;53931:90:41::2;22897:319:98::0;53842:190:41::2;54060:11;;54045;:26;54041:102;;54118:11;::::0;54080:63:::2;::::0;-1:-1:-1;;;54080:63:41;;::::2;::::0;::::2;23395:25:98::0;;;;23436:18;;;23429:34;;;23368:18;;54080:63:41::2;23221:248:98::0;54041:102:41::2;-1:-1:-1::0;;54154:21:41::2;:29:::0;;-1:-1:-1;;54154:29:41::2;::::0;;-1:-1:-1;;54154:29:41;1768:6:::1;:10:::0;-1:-1:-1;52415:1775:41:o;8782:122::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;8862:35:41::1;8886:10;8862:23;:35::i;50744:402::-:0;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;50391:6:41::1;50830:38:::0;::::1;50826:135;;;50889:72;::::0;-1:-1:-1;;;50889:72:41;;::::1;::::0;::::1;23647:25:98::0;;;50391:6:41::1;23688:18:98::0;;;23681:59;23620:18;;50889:72:41::1;23474:272:98::0;50826:135:41::1;50995:25;::::0;;51030:40;;;;51086:53:::1;::::0;;23395:25:98;;;23451:2;23436:18;;23429:34;;;51086:53:41::1;::::0;23368:18:98;51086:53:41::1;;;;;;;;50816:330;50744:402:::0;:::o;6611:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20682:179::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20740:10:41::1;::::0;::::1;;20735:53;;20759:29;;-1:-1:-1::0;;;20759:29:41::1;;;;;;;;;;;20735:53;20798:10;:18:::0;;-1:-1:-1;;20798:18:41::1;::::0;;20832:22:::1;::::0;-1:-1:-1;2851:41:98;;20832:22:41::1;::::0;2839:2:98;2824:18;20832:22:41::1;2711:187:98::0;10062:176:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;-1:-1:-1;;;;;10144:25:41;::::1;10172:5;10144:25:::0;;;:16:::1;:25;::::0;;;;;;;:33;;-1:-1:-1;;10144:33:41::1;::::0;;10192:39;;22013:51:98;;;22080:18;;;22073:50;;;;10192:39:41::1;::::0;21986:18:98;10192:39:41::1;21845:284:98::0;2419:739:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;2497:17:41::1;2524::::0;2556:16:::1;2552:261;;;2588:20;2611:13;:11;:13::i;:::-;2588:36:::0;-1:-1:-1;2704:36:41::1;2588::::0;2728:6:::1;2736:3;2704:23;:36::i;:::-;2692:48:::0;-1:-1:-1;2766:36:41::1;:12:::0;2790:6:::1;2798:3;2766:23;:36::i;:::-;2754:48;;2574:239;2552:261;2849:8;::::0;:47:::1;::::0;-1:-1:-1;;;2849:47:41;;:8:::1;:47;::::0;::::1;160:25:98::0;2849:8:41;;;::::1;-1:-1:-1::0;;;;;2849:8:41::1;::::0;:19:::1;::::0;133:18:98;;2849:47:41::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2823:11;:74:::0;;-1:-1:-1;;;;;;2823:74:41::1;-1:-1:-1::0;;;;;2823:74:41;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;2929:13:41::1;:11;:13::i;:::-;2907:35;;2957:16;2953:199;;;3007:9;2993:11;:23;:50;;;;3034:9;3020:11;:23;2993:50;2989:152;;;3068:73;::::0;-1:-1:-1;;;3068:73:41;;::::1;::::0;::::1;23099:25:98::0;;;23140:18;;;23133:34;;;23183:18;;;23176:34;;;23072:18;;3068:73:41::1;22897:319:98::0;30724:483:41;30813:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;30943:20:::1;30966:18;30943:20:::0;30966:11:::1;:18::i;:::-;30943:41;;31084:38;31101:6;31109:12;31084:16;:38::i;:::-;31075:47;;;31127:1;31074:54:::0;31070:87:::1;;31137:20;;-1:-1:-1::0;;;31137:20:41::1;;;;;;;;;;;31070:87;31168:32;31175:6;31183;31191:8;31168:6;:32::i;:::-;-1:-1:-1::0;1777:1:41;1768:6;:10;30724:483;;-1:-1:-1;;30724:483:41:o;7134:109::-;7187:15;7221;7214:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7134:109;:::o;6967:63::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6967:63:41;;;-1:-1:-1;;;6967:63:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;60047:893::-;60232:15;:22;60282:13;:20;60126:21;;;;;;60232:22;60333:19;60282:20;60232:22;60333:19;:::i;:::-;-1:-1:-1;;;;;60321:32:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60321:32:41;-1:-1:-1;60312:41:41;-1:-1:-1;60388:19:41;60400:7;60388:9;:19;:::i;:::-;-1:-1:-1;;;;;60374:34:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60374:34:41;-1:-1:-1;60363:45:41;-1:-1:-1;60438:19:41;60450:7;60438:9;:19;:::i;:::-;-1:-1:-1;;;;;60427:31:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60427:31:41;;60418:40;;60473:9;60468:194;60492:9;60488:1;:13;60468:194;;;60534:28;60543:15;60559:1;60543:18;;;;;;;;:::i;60534:28::-;60522:6;60529:1;60522:9;;;;;;;;:::i;:::-;;;;;;:40;-1:-1:-1;;;;;60522:40:41;;;-1:-1:-1;;;;;60522:40:41;;;;;60590:30;60601:15;60617:1;60601:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;60590:10;:30::i;:::-;60576:8;60585:1;60576:11;;;;;;;;:::i;:::-;;;;;;:44;;;;;60646:5;60634:6;60641:1;60634:9;;;;;;;;:::i;:::-;:17;;;:9;;;;;;;;;;;:17;60503:3;;;:::i;:::-;;;60468:194;;;;60677:9;60672:262;60696:7;60692:1;:11;60672:262;;;60761:26;60770:13;60784:1;60770:16;;;;;;;;:::i;60761:26::-;60735:15;:22;60724:6;;60731:26;;:1;:26;:::i;:::-;60724:34;;;;;;;;:::i;:::-;;;;;;:63;-1:-1:-1;;;;;60724:63:41;;;-1:-1:-1;;;;;60724:63:41;;;;;60840:28;60851:13;60865:1;60851:16;;;;;;;;:::i;60840:28::-;60814:15;:22;60801:8;;60810:26;;:1;:26;:::i;:::-;60801:36;;;;;;;;:::i;:::-;;;;;;;;;;:67;60893:15;:22;60919:4;;60882:6;;60889:26;;:1;:26;:::i;:::-;60882:34;;;;;;;;:::i;:::-;:41;;;:34;;;;;;;;;;;:41;60705:3;;;:::i;:::-;;;60672:262;;;;60202:738;;60047:893;;;:::o;54817:1117::-;55033:4;-1:-1:-1;;;;;55053:26:41;;55074:4;55053:26;55049:66;;55088:27;;-1:-1:-1;;;55088:27:41;;;;;;;;;;;55049:66;55143:8;;;;;-1:-1:-1;;;;;55143:8:41;55129:10;:22;55125:62;;55160:27;;-1:-1:-1;;;55160:27:41;;;;;;;;;;;55125:62;55198:25;55226:35;;;;55237:6;55226:35;:::i;:::-;55198:63;;55311:7;55306:411;55328:4;:11;55324:1;:15;;;55306:411;;;55360:15;55378:4;55383:1;55378:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;-1:-1:-1;;;;;55485:25:41;;55378:15;55485:25;;;:16;:25;;;;;;;;55378:15;;-1:-1:-1;55485:25:41;;55480:79;;55519:40;;-1:-1:-1;;;55519:40:41;;-1:-1:-1;;;;;7206:32:98;;55519:40:41;;;7188:51:98;7161:18;;55519:40:41;7027:218:98;55480:79:41;55578:7;55573:134;55595:4;55600:1;55595:7;;;;;;;;;;:::i;:::-;;;;;;;:16;;;:23;55591:1;:27;;;55573:134;;;55643:49;55672:4;55677:1;55672:7;;;;;;;;;;:::i;55643:49::-;-1:-1:-1;55620:3:41;;;;:::i;:::-;;;;55573:134;;;;55346:371;55341:3;;;;:::i;:::-;;;55306:411;;;;55775:9;55770:136;55790:18;;;55770:136;;;55858:8;;55829:66;;55858:8;;;-1:-1:-1;;;;;55858:8:41;55882;;55891:1;55882:11;;;;;;;:::i;:::-;;;;;;;55869:7;;55877:1;55869:10;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;55835:6;;55842:1;55835:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;55829:28:41;;:66;:28;:66::i;:::-;55810:3;;;:::i;:::-;;;55770:136;;;-1:-1:-1;55923:4:41;;54817:1117;-1:-1:-1;;;;;;;;;;;54817:1117:41:o;31483:507::-;31569:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;31699:20:::1;31722:18;31699:20:::0;31722:11:::1;:18::i;:::-;31699:41;;31871:34;31884:6;31892:12;31871;:34::i;:::-;31862:43;;;31910:1;31861:50:::0;31857:83:::1;;31920:20;;-1:-1:-1::0;;;31920:20:41::1;;;;;;;;;;;31857:83;31951:32;31958:6;31966;31974:8;31951:6;:32::i;1056:20:45:-:0;;;;;;;:::i;10548:269:41:-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;10719:18:41::1;:16;:18::i;:::-;10747:63;10760:5;10767:10;10779:17;10798:11;10747:12;:63::i;27075:366::-:0;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;26429:6:41::1;27153:7;:35;:74;;;;26580:6;27192:7;:35;27153:74;27149:131;;;27248:32;;-1:-1:-1::0;;;27248:32:41::1;;;;;;;;;;;27149:131;27317:15;::::0;;27342:25;;;;27382:52:::1;::::0;;23395:25:98;;;23451:2;23436:18;;23429:34;;;27382:52:41::1;::::0;23368:18:98;27382:52:41::1;23221:248:98::0;13321:160:41;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;13427:47:41::1;13443:5;13450:10;13462:11;13427:15;:47::i;:::-;13321:160:::0;;;:::o;42137:185::-;42193:14;42219:16;:14;:16::i;:::-;42253:6;;42263:1;42253:11;42245:34;;;;-1:-1:-1;;;42245:34:41;;;;;;;:::i;:::-;42298:17;42310:4;42298:11;:17::i;28062:169::-;28133:4;28149:32;28170:10;28149:20;:32::i;:::-;28198:26;28213:2;28217:6;28198:14;:26::i;1239:153::-;1305:9;1300:85;1320:15;;;1300:85;;;1342:43;1377:4;;1382:1;1377:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1342:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1350:4:41;;1342:43;-1:-1:-1;;1342:34:41;:43;-1:-1:-1;1342:43:41:i;:::-;-1:-1:-1;1337:3:41;;;;:::i;:::-;;;;1300:85;;18252:215;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;18369:31:41;;18338:71:::1;::::0;;-1:-1:-1;;;;;18369:31:41;;::::1;24745:34:98::0;;24815:15;;;24810:2;24795:18;;24788:43;18338:71:41::1;::::0;24680:18:98;18338:71:41::1;;;;;;;18420:31:::0;:40;;-1:-1:-1;;;;;;18420:40:41::1;-1:-1:-1::0;;;;;18420:40:41;;;::::1;::::0;;;::::1;::::0;;18252:215::o;19501:175::-;19565:11;;19544:4;;19565:11;;;;;19560:88;;19599:8;;:38;;-1:-1:-1;;;19599:38:41;;19631:4;19599:38;;;7188:51:98;19599:8:41;;;;-1:-1:-1;;;;;19599:8:41;;:23;;7161:18:98;;19599:38:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19560:88::-;-1:-1:-1;19664:5:41;;19501:175::o;43304:189::-;43371:14;43397:20;43420:13;:11;:13::i;:::-;43397:36;;43452:34;43465:6;43473:12;43452;:34::i;33530:497::-;33665:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;33795:20:::1;33818:18;33795:20:::0;33818:11:::1;:18::i;:::-;33795:41;;33933:38;33950:6;33958:12;33933:16;:38::i;:::-;33924:47;;33982:38;33988:6;33996;34004:8;34014:5;33982;:38::i;:::-;-1:-1:-1::0;1777:1:41;1768:6;:10;33530:497;;-1:-1:-1;;;33530:497:41:o;17864:260::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;17726:4:41::1;-1:-1:-1::0;;;;;17943:17:41;::::1;;17939:53;;;17969:23;;-1:-1:-1::0;;;17969:23:41::1;;;;;;;;;;;17939:53;18036:7;:29:::0;18007:64:::1;::::0;;-1:-1:-1;;;;;18036:29:41;;::::1;25299:34:98::0;;25369:15;;;25364:2;25349:18;;25342:43;18007:64:41::1;::::0;25235:18:98;18007:64:41::1;;;;;;;18082:7;:35:::0;;-1:-1:-1;;18082:35:41::1;-1:-1:-1::0;;;;;18082:35:41;;;::::1;::::0;;;::::1;::::0;;17864:260::o;34905:532::-;35038:14;1698:6;;1708:1;1698:11;1690:34;;;;-1:-1:-1;;;1690:34:41;;;;;;;:::i;:::-;1744:1;1735:6;:10;35168:20:::1;35191:18;35168:20:::0;35191:11:::1;:18::i;:::-;35168:41;;35308:38;35325:6;35333:12;35308:16;:38::i;:::-;35299:47;;;35351:1;35298:54:::0;35294:87:::1;;35361:20;;-1:-1:-1::0;;;35361:20:41::1;;;;;;;;;;;35294:87;35392:38;35398:6;35406;35414:8;35424:5;35392;:38::i;42928:152::-:0;42999:14;43034:39;43051:6;43059:13;:11;:13::i;:::-;43034:16;:39::i;46282:165::-;46348:7;46375:6;;46385:1;46375:11;46367:34;;;;-1:-1:-1;;;46367:34:41;;;;;;;:::i;:::-;46418:22;46427:5;46434;46418:8;:22::i;9389:187::-;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;9474:29:41::1;::::0;::::1;9506:5;9474:29:::0;;;:17:::1;:29;::::0;;;;;;;:37;;-1:-1:-1;;9474:37:41::1;::::0;;9526:43;;25562:42:98;;;25620:18;;;25613:50;;;;9526:43:41::1;::::0;25535:18:98;9526:43:41::1;25396:273:98::0;3808:1483:45;4027:15;4015:8;:27;;4007:63;;;;-1:-1:-1;;;4007:63:45;;25876:2:98;4007:63:45;;;25858:21:98;25915:2;25895:18;;;25888:30;25954:25;25934:18;;;25927:53;25997:18;;4007:63:45;25674:347:98;4007:63:45;4235:24;4262:805;4398:18;:16;:18::i;:::-;-1:-1:-1;;;;;4843:13:45;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4481:449;;4525:165;4481:449;;;26313:25:98;26392:18;;;26385:43;;;;26464:15;;;26444:18;;;26437:43;26496:18;;;26489:34;;;26539:19;;;26532:35;;;;26583:19;;;;26576:35;;;4481:449:45;;;;;;;;;;26285:19:98;;;4481:449:45;;;4442:514;;;;;;;;-1:-1:-1;;;4320:658:45;;;26880:27:98;26923:11;;;26916:27;;;;26959:12;;;26952:28;;;;26996:12;;4320:658:45;;;-1:-1:-1;;4320:658:45;;;;;;;;;4289:707;;4320:658;4289:707;;;;4262:805;;;;;;;;;27246:25:98;27319:4;27307:17;;27287:18;;;27280:45;27341:18;;;27334:34;;;27384:18;;;27377:34;;;27218:19;;4262:805:45;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4262:805:45;;-1:-1:-1;;4262:805:45;;;-1:-1:-1;;;;;;;5090:30:45;;;;;;:59;;;5144:5;-1:-1:-1;;;;;5124:25:45;:16;-1:-1:-1;;;;;5124:25:45;;5090:59;5082:86;;;;-1:-1:-1;;;5082:86:45;;27624:2:98;5082:86:45;;;27606:21:98;27663:2;27643:18;;;27636:30;-1:-1:-1;;;27682:18:98;;;27675:44;27736:18;;5082:86:45;27422:338:98;5082:86:45;-1:-1:-1;;;;;5183:27:45;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5253:31;160:25:98;;;5183:36:45;;5253:31;;;;;133:18:98;5253:31:45;;;;;;;3808:1483;;;;;;;:::o;46802:162:41:-;46866:7;46893:6;;46903:1;46893:11;46885:34;;;;-1:-1:-1;;;46885:34:41;;;;;;;:::i;:::-;46936:21;46945:5;46952:4;46936:8;:21::i;6736:29::-;;;;;;;;;;;;20035:96;778:5:25;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;20104:11:41::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;20104:20:41;;::::1;::::0;;;::::1;::::0;;20035:96::o;44148:196::-;44218:14;44244:20;44267:13;:11;:13::i;:::-;44244:36;;44299:38;44316:6;44324:12;44299:16;:38::i;1312:161:25:-;778:5;;-1:-1:-1;;;;;778:5:25;764:10;:19;756:44;;;;-1:-1:-1;;;756:44:25;;;;;;;:::i;:::-;1392:5:::1;:16:::0;;-1:-1:-1;;;;;;1392:16:25::1;-1:-1:-1::0;;;;;1392:16:25;::::1;::::0;;::::1;::::0;;;1424:42:::1;::::0;1445:10:::1;::::0;1424:42:::1;::::0;-1:-1:-1;;1424:42:25::1;1312:161:::0;:::o;493:384:97:-;621:12;;648:7;;644:227;;671:5;;688:7;694:1;688:3;:7;:::i;:::-;682:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;671:26;;;;;;;;;;;;;;;;;;;;;;682:14;;;671:26;;;;;682:14;671:26;;;;;;;;;;682:14;;;;;;;;;;;;;;671:26;;;;682:14;729:7;;:3;:7;:::i;:::-;717:19;;712:65;742:5;738:9;;:1;:9;712:65;;;765:5;771;775:1;771;:5;:::i;:::-;765:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:5;760:1;754:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;749:3;;;;;:::i;:::-;;;;712:65;;;;807:5;792;798;792:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;644:227;;;-1:-1:-1;843:17:97;;;;;;;-1:-1:-1;843:17:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:384:97:o;19769:166:41:-;19824:11;;;;;;;19819:110;;19855:8;;:38;;-1:-1:-1;;;19855:38:41;;19887:4;19855:38;;;7188:51:98;19855:8:41;;;;-1:-1:-1;;;;;19855:8:41;;:23;;7161:18:98;;19855:38:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19851:67;;;19902:16;;-1:-1:-1;;;19902:16:41;;;;;;;;;;;19851:67;19769:166::o;39162:1998::-;39288:15;:22;39231:14;;;39288:22;-1:-1:-1;;;;;39350:33:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39350:33:41;;39320:63;;39393:31;39441:20;-1:-1:-1;;;;;39427:35:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39427:35:41;;39393:69;;39552:18;39548:1606;;;39591:9;39586:385;39606:20;39602:1;:24;39586:385;;;39651:15;39669;39685:1;39669:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;39651:36;;39859:27;39877:8;39859:17;:27::i;:::-;39839:14;39854:1;39839:17;;;;;;;;:::i;:::-;;;;;;:47;;;;39891:1;39838:54;39834:68;;39894:8;;;39834:68;39938:18;39947:8;39938;:18::i;:::-;39920:12;39933:1;39920:15;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;39920:36:41;;;-1:-1:-1;;;;;39920:36:41;;;;;39633:338;39586:385;39628:3;;;:::i;:::-;;;39586:385;;;-1:-1:-1;39993:11:41;;40045:5;;39993:58;;-1:-1:-1;;;39993:58:41;;-1:-1:-1;;;;;39993:11:41;;;;:21;;:58;;40015:12;;40029:14;;40045:5;;39993:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39984:67;;39548:1606;;;40111:13;:20;40082:26;40111:20;-1:-1:-1;;;;;40173:31:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40173:31:41;;40145:59;;40218:29;40264:18;-1:-1:-1;;;;;40250:33:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40250:33:41;;40218:65;;40302:9;40297:365;40317:20;40313:1;:24;40297:365;;;40362:15;40380;40396:1;40380:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;40362:36;;40557:20;40568:8;40557:10;:20::i;:::-;40537:14;40552:1;40537:17;;;;;;;;:::i;:::-;;;;;;:40;;;;40582:1;40536:47;40532:61;;40585:8;;;40532:61;40629:18;40638:8;40629;:18::i;:::-;40611:12;40624:1;40611:15;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;40611:36:41;;;-1:-1:-1;;;;;40611:36:41;;;;;40344:318;40297:365;40339:3;;;:::i;:::-;;;40297:365;;;;40680:9;40675:357;40695:18;40691:1;:22;40675:357;;;40738:15;40756:13;40770:1;40756:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;40738:34;;40929:20;40940:8;40929:10;:20::i;:::-;40911:12;40924:1;40911:15;;;;;;;;:::i;:::-;;;;;;:38;;;;40954:1;40910:45;40906:59;;40957:8;;;40906:59;40999:18;41008:8;40999;:18::i;:::-;40983:10;40994:1;40983:13;;;;;;;;:::i;:::-;;;;;;:34;-1:-1:-1;;;;;40983:34:41;;;-1:-1:-1;;;;;40983:34:41;;;;;40720:312;40675:357;40715:3;;;:::i;:::-;;;40675:357;;;-1:-1:-1;41054:11:41;;41137:5;;41054:89;;-1:-1:-1;;;41054:89:41;;-1:-1:-1;;;;;41054:11:41;;;;:26;;:89;;41081:12;;41095:14;;41111:10;;41123:12;;41137:5;;;;41054:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41045:98;;40068:1086;;;39548:1606;39247:1913;;;39162:1998;;;:::o;7943:406::-;8015:26;;;;;;;:14;:26;;;;;;;;8010:75;;8050:35;;-1:-1:-1;;;8050:35:41;;10702:10:98;10690:23;;8050:35:41;;;10672:42:98;10645:18;;8050:35:41;10528:192:98;8010:75:41;8123:5;;-1:-1:-1;;;;;8123:5:41;8099:20;8108:10;8099:8;:20::i;:::-;-1:-1:-1;;;;;8099:29:41;;8095:110;;8167:5;;-1:-1:-1;;;;;8167:5:41;8183:20;8192:10;8183:8;:20::i;:::-;8137:68;;-1:-1:-1;;;8137:68:41;;-1:-1:-1;;;;;24763:15:98;;;8137:68:41;;;24745:34:98;24815:15;;24795:18;;;24788:43;24680:18;;8137:68:41;24533:304:98;8095:110:41;8219:27;;;;;;;:15;:27;;;;;:34;-1:-1:-1;;;8219:34:41;;;;8215:89;;;8262:42;;-1:-1:-1;;;8262:42:41;;10702:10:98;10690:23;;8262:42:41;;;10672::98;10645:18;;8262:42:41;10528:192:98;8215:89:41;8314:15;:28;;-1:-1:-1;;8314:28:41;;;;;;;;;;;;7943:406::o;47094:306::-;47229:11;;47181:14;;47260:16;;:133;;47349:44;:6;47367:12;47381:11;47349:17;:44::i;:::-;47260:133;;;47291:43;47313:2;47317:5;;;;;;;;;-1:-1:-1;;;;;47317:5:41;-1:-1:-1;;;;;47317:14:41;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47291:6;;:43;:21;:43::i;59476:217::-;59569:25;;;59534:5;59569:25;;;:15;:25;;;;;;:33;;59619:67;;-1:-1:-1;;;59619:67:41;;-1:-1:-1;;;;;59569:33:41;;;;;;59619:28;;:67;;59569:33;59648:37;;59619:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;48378:304::-;48513:11;;48465:14;;48544:16;;:131;;48633:42;:6;48649:11;48662:12;48633:15;:42::i;48544:131::-;48597:5;;:16;;;-1:-1:-1;;;48597:16:41;;;;48575:43;;-1:-1:-1;;;;;48597:5:41;;:14;;:16;;;;;;;;;;;;;;:5;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48575:6;;48615:2;48575:21;:43::i;20224:108::-;20280:10;;;;20276:49;;;20299:26;;-1:-1:-1;;;20299:26:41;;;;;;;;;;;27600:380;-1:-1:-1;;;;;27688:29:41;;27669:16;27688:29;;;:22;:29;;;;;;27731:13;;27727:247;;27760:29;27803:15;;27792:8;:26;;;;:::i;:::-;27760:58;;27860:15;27836:21;:39;27832:131;;;27900:63;;-1:-1:-1;;;27900:63:41;;;;;23395:25:98;;;27947:15:41;23436:18:98;;;23429:34;23368:18;;27900:63:41;23221:248:98;27727:247:41;27659:321;27600:380;:::o;3027:592:45:-;-1:-1:-1;;;;;3179:15:45;;3145:4;3179:15;;;:9;:15;;;;;;;;3195:10;3179:27;;;;;;;;-1:-1:-1;;3257:28:45;;3253:80;;3317:16;3327:6;3317:7;:16;:::i;:::-;-1:-1:-1;;;;;3287:15:45;;;;;;:9;:15;;;;;;;;3303:10;3287:27;;;;;;;:46;3253:80;-1:-1:-1;;;;;3344:15:45;;;;;;:9;:15;;;;;:25;;3363:6;;3344:15;:25;;3363:6;;3344:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3515:13:45;;;;;;;:9;:13;;;;;;;:23;;;;;;3564:26;3515:13;;3564:26;;;-1:-1:-1;;;;;;;;;;;3564:26:45;;;3532:6;160:25:98;;148:2;133:18;;14:177;3564:26:45;;;;;;;;-1:-1:-1;3608:4:45;;3027:592;-1:-1:-1;;;;3027:592:45:o;59116:223:41:-;59213:25;;;59176:7;59213:25;;;:15;:25;;;;;;:33;;59263:69;;-1:-1:-1;;;59263:69:41;;-1:-1:-1;;;;;59213:33:41;;;;;;59263:30;;:69;;59213:33;59294:37;;59263:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13592:506::-;13705:15;;;;;;13691:29;;;;13687:75;;13729:33;;-1:-1:-1;;;13729:33:41;;;;;;;;;;;13687:75;13777:11;13773:180;;;13855:27;:13;13876:5;13855:20;:27::i;:::-;13773:180;;;13913:29;:15;13936:5;13913:22;:29::i;:::-;13963:26;;;13992:5;13963:26;;;:14;:26;;;;;;;;:34;;-1:-1:-1;;13963:34:41;;;14014:15;:27;;;;;14007:34;;-1:-1:-1;;;;;;14007:34:41;;;14014:27;14007:34;13963;14007;;13992:5;14007:34;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;14057:34:41;;;31568:10:98;31605:15;;;31587:34;;31657:15;;31652:2;31637:18;;31630:43;14057:34:41;;31531:18:98;14057:34:41;;;;;;;13592:506;;;:::o;5480:446:45:-;5545:7;5642:95;5775:4;5759:22;;;;;;:::i;:::-;;;;;;;;;;5610:295;;;32792:25:98;;;;32833:18;;32826:34;;;;5803:14:45;32876:18:98;;;32869:34;5839:13:45;32919:18:98;;;32912:34;5882:4:45;32962:19:98;;;32955:61;32764:19;;5610:295:45;;;;;;;;;;;;5583:336;;;;;;5564:355;;5480:446;:::o;1898:752:96:-;2102:9;;;2233:19;;2226:27;2258:9;;2272;;;2269:16;;2255:31;2222:65;2212:121;;2317:1;2314;2307:12;2212:121;2631:1;2617:11;2613:1;2610;2606:9;2602:27;2598:35;2593:1;2586:9;2579:17;2575:59;2570:64;;1898:752;;;;;:::o;6468:198:20:-;6551:12;6582:77;6603:6;6611:4;6582:77;;;;;;;;;;;;;;;;;:20;:77::i;8994:290:41:-;9125:8;;:49;;-1:-1:-1;;;9125:49:41;;10702:10:98;10690:23;;9125:49:41;;;10672:42:98;9125:8:41;;;;-1:-1:-1;;;;;9125:8:41;;:37;;10645:18:98;;9125:49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9184:29:41;;;;;;;:17;:29;;;;;;;;;:36;;-1:-1:-1;;9184:36:41;9216:4;9184:36;;;;;;9235:42;;25562::98;;;25620:18;;;25613:50;9235:42:41;;25535:18:98;9235:42:41;25396:273:98;1357:535:96;1563:9;;;1694:19;;1687:27;1719:9;;1733;;;1730:16;;1716:31;1683:65;1673:121;;1778:1;1775;1768:12;1673:121;1857:19;;1357:535;-1:-1:-1;;1357:535:96:o;47530:306:41:-;47665:11;;47617:14;;47696:16;;:133;;47785:44;:6;47803:11;47816:12;47785:17;:44::i;30041:412::-;30126:39;30140:6;30148;30156:8;30126:13;:39::i;:::-;30245:5;;:57;;-1:-1:-1;;;;;30245:5:41;30268:10;30288:4;30295:6;30245:22;:57::i;:::-;30313:23;30319:8;30329:6;30313:5;:23::i;:::-;30352:45;;;23395:25:98;;;23451:2;23436:18;;23429:34;;;-1:-1:-1;;;;;30352:45:41;;;30360:10;;30352:45;;23368:18:98;30352:45:41;;;;;;;30408:38;30421:6;30429;30437:8;30408:12;:38::i;4327:1454:48:-;4438:12;4565:4;4559:11;-1:-1:-1;;;4688:17:48;4681:93;4821:2;4817:1;4798:17;4794:25;4787:37;4901:6;4896:2;4877:17;4873:26;4866:42;5703:2;5700:1;5696:2;5677:17;5674:1;5667:5;5660;5655:51;5224:16;5217:24;5211:2;5193:16;5190:24;5186:1;5182;5176:8;5173:15;5169:46;5166:76;4966:754;4955:765;;;5748:7;5740:34;;;;-1:-1:-1;;;5740:34:48;;33229:2:98;5740:34:48;;;33211:21:98;33268:2;33248:18;;;33241:30;-1:-1:-1;;;33287:18:98;;;33280:44;33341:18;;5740:34:48;33027:338:98;47955:300:41;48086:11;;48038:14;;48117:16;;:131;;48206:42;:6;48222:12;48236:11;48206:15;:42::i;10922:1552::-;11102:26;;;;;;;:14;:26;;;;;;;;11098:78;;;11137:39;;-1:-1:-1;;;11137:39:41;;10702:10:98;10690:23;;11137:39:41;;;10672:42:98;10645:18;;11137:39:41;10528:192:98;11098:78:41;11251:29;;;;;;;:17;:29;;;;;;;;11246:85;;11289:42;;-1:-1:-1;;;11289:42:41;;10702:10:98;10690:23;;11289:42:41;;;10672::98;10645:18;;11289:42:41;10528:192:98;11246:85:41;11515:8;;:40;;-1:-1:-1;;;11515:40:41;;10702:10:98;10690:23;;11515:40:41;;;10672:42:98;11457:15:41;;;;;;11515:8;;;-1:-1:-1;;;;;11515:8:41;;:28;;10645:18:98;;11515:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11515:40:41;;;;;;;;;;;;:::i;:::-;11456:99;;;;;;11580:11;11570:21;;:6;:21;;;11566:66;;11600:32;;-1:-1:-1;;;11600:32:41;;10702:10:98;10690:23;;11600:32:41;;;10672:42:98;10645:18;;11600:32:41;10528:192:98;11566:66:41;11726:179;;;;;;;;-1:-1:-1;;;;;11726:179:41;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:27;;;-1:-1:-1;11696:27:41;;;:15;:27;;;;;;:209;;;;;;;;-1:-1:-1;;;11696:209:41;-1:-1:-1;;;;;;11696:209:41;;;;;;;;;;;;;;11726:179;;11696:27;:209;;;;;;;;:::i;:::-;-1:-1:-1;11696:209:41;;;;;;;;;;;;:::i;:::-;;;;;11920:6;11916:460;;;11946:13;:20;7600:2;-1:-1:-1;11942:90:41;;11992:40;;-1:-1:-1;;;11992:40:41;;7600:2;11992:40;;;160:25:98;133:18;;11992:40:41;14:177:98;11942:90:41;12100:36;:13;12118:5;12125:10;12100:17;:36::i;:::-;11916:460;;;12171:15;:22;7600:2;-1:-1:-1;12167:92:41;;12219:40;;-1:-1:-1;;;12219:40:41;;7600:2;12219:40;;;160:25:98;133:18;;12219:40:41;14:177:98;12167:92:41;12327:38;:15;12347:5;12354:10;12327:19;:38::i;:::-;12386:26;;;;;;;:14;:26;;;;;;;:33;;-1:-1:-1;;12386:33:41;12415:4;12386:33;;;12435:32;;;;;12401:10;;12461:5;;31568:10:98;31605:15;;;31587:34;;31657:15;;31652:2;31637:18;;31630:43;31546:2;31531:18;;31387:292;12435:32:41;;;;;;;;11036:1438;;;10922:1552;;;;:::o;2648:373:45:-;2744:10;2718:4;2734:21;;;:9;:21;;;;;:31;;2759:6;;2734:21;2718:4;;2734:31;;2759:6;;2734:31;:::i;:::-;;;;-1:-1:-1;;;;;;;2911:13:45;;;;;;:9;:13;;;;;;;:23;;;;;;2960:32;2969:10;;-1:-1:-1;;;;;;;;;;;2960:32:45;;;2928:6;160:25:98;;148:2;133:18;;14:177;31996:654:41;32095:47;32110:6;32118;32126:8;32136:5;32095:14;:47::i;:::-;32157:10;-1:-1:-1;;;;;32157:19:41;;;32153:228;;-1:-1:-1;;;;;32210:16:41;;32192:15;32210:16;;;:9;:16;;;;;;;;32227:10;32210:28;;;;;;;;-1:-1:-1;;32293:28:41;;32289:81;;32354:16;32364:6;32354:7;:16;:::i;:::-;-1:-1:-1;;;;;32323:16:41;;;;;;:9;:16;;;;;;;;32340:10;32323:28;;;;;;;:47;32289:81;32178:203;32153:228;32391:20;32397:5;32404:6;32391:5;:20::i;:::-;32427:53;;;23395:25:98;;;23451:2;23436:18;;23429:34;;;-1:-1:-1;;;;;32427:53:41;;;;;;;;32436:10;;32427:53;;23368:18:98;32427:53:41;;;;;;;32490:34;32507:6;32515:8;32490:16;:34::i;45071:825::-;45142:14;45168:16;:14;:16::i;:::-;-1:-1:-1;;;;;45274:29:41;;45255:16;45274:29;;;:22;:29;;;;;;45317:13;;45313:169;;45346:29;45389:15;;45378:8;:26;;;;:::i;:::-;45346:58;;45446:15;45422:21;:39;45418:53;;;45470:1;45463:8;;;;;;45418:53;45332:150;45313:169;45536:20;45559:18;45571:5;45559:11;:18::i;:::-;-1:-1:-1;;;;;45621:16:41;;45587:14;45621:16;;;:9;:16;;;;;;45536:41;;-1:-1:-1;45587:14:41;45604:48;;45536:41;45604:16;:48::i;:::-;45587:65;;45663:20;45686:17;45698:4;45686:11;:17::i;:::-;45663:40;;45732:12;45722:6;:22;;:46;;45756:12;45722:46;;;45747:6;45722:46;45713:55;;45783:8;45779:61;;;45802:38;45819:6;45827:12;45802:16;:38::i;:::-;45793:47;;45779:61;45158:738;;;;45071:825;;;;:::o;58357:427::-;58513:25;;;58424:7;58513:25;;;:15;:25;;;;;:32;-1:-1:-1;;;58513:32:41;;;;58509:46;;;-1:-1:-1;58554:1:41;;58357:427;-1:-1:-1;58357:427:41:o;58509:46::-;58596:25;;;;;;;:15;:25;;;;;;;:33;;58584:193;;-1:-1:-1;;;58584:193:41;;-1:-1:-1;;;;;58596:33:41;;;;58584:63;;:193;;58596:33;58665:37;;;58720:43;;;58584:193;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;371:413:96:-;502:7;541:10;525:26;;:12;:26;;;521:257;;-1:-1:-1;574:6:96;567:13;;521:257;616:10;601:25;;:12;:25;;;597:181;;;663:25;676:12;663:10;:25;:::i;:::-;658:31;;:2;:31;:::i;:::-;649:40;;:6;:40;:::i;:::-;642:47;;;;597:181;741:25;756:10;741:12;:25;:::i;:::-;736:31;;:2;:31;:::i;:::-;727:40;;:6;:40;:::i;1072:258:97:-;1159:12;;1190:11;;;;-1:-1:-1;1182:43:97;;;;-1:-1:-1;;;1182:43:97;;38879:2:98;1182:43:97;;;38861:21:98;38918:2;38898:18;;;38891:30;-1:-1:-1;;;38937:18:98;;;38930:49;38996:18;;1182:43:97;38677:343:98;1182:43:97;1241:17;;;1236:65;1264:7;1270:1;1264:3;:7;:::i;:::-;1260:1;:11;1236:65;;;1289:5;1295;:1;1299;1295:5;:::i;:::-;1289:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1278:5;1284:1;1278:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1273:3;;;;;:::i;:::-;;;;1236:65;;;;1312:5;:11;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1312:11:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1072:258:97:o;6852:325:20:-;6993:12;7018;7032:23;7059:6;-1:-1:-1;;;;;7059:19:20;7079:4;7059:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7017:67;;;;7101:69;7128:6;7136:7;7145:10;7157:12;7101:26;:69::i;:::-;7094:76;6852:325;-1:-1:-1;;;;;;6852:325:20:o;28961:472:41:-;29060:18;:16;:18::i;:::-;29088:16;:14;:16::i;:::-;29118:10;-1:-1:-1;;;;;29118:22:41;;;29114:178;;29161:8;;:47;;-1:-1:-1;;;29161:47:41;;29197:10;29161:47;;;7188:51:98;29161:8:41;;;;-1:-1:-1;;;;;29161:8:41;;:35;;7161:18:98;;29161:47:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29156:125;;29233:48;;-1:-1:-1;;;29233:48:41;;29270:10;29233:48;;;7188:51:98;7161:18;;29233:48:41;7027:218:98;29156:125:41;29301:17;29321:20;29332:8;29321:10;:20::i;:::-;29301:40;;29364:9;29355:6;:18;29351:75;;;29382:44;;-1:-1:-1;;;29382:44:41;;;;;23395:25:98;;;23436:18;;;23429:34;;;23368:18;;29382:44:41;23221:248:98;1286:1573:48;1424:12;1551:4;1545:11;-1:-1:-1;;;1674:17:48;1667:93;1807:4;1803:1;1784:17;1780:25;1773:39;1891:2;1886;1867:17;1863:26;1856:38;1971:6;1966:2;1947:17;1943:26;1936:42;2775:2;2772:1;2767:3;2748:17;2745:1;2738:5;2731;2726:52;2294:16;2287:24;2281:2;2263:16;2260:24;2256:1;2252;2246:8;2243:15;2239:46;2236:76;2036:756;2025:767;;;2820:7;2812:40;;;;-1:-1:-1;;;2812:40:48;;39651:2:98;2812:40:48;;;39633:21:98;39690:2;39670:18;;;39663:30;-1:-1:-1;;;39709:18:98;;;39702:50;39769:18;;2812:40:48;39449:344:98;2812:40:48;1414:1445;1286:1573;;;;:::o;6120:325:45:-;6205:6;6190:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6357:13:45;;;;;;:9;:13;;;;;;;;:23;;;;;;6406:32;160:25:98;;;-1:-1:-1;;;;;;;;;;;6406:32:45;133:18:98;6406:32:45;;;;;;;;6120:325;;:::o;29557:195:41:-;29661:15;;29650:35;;29661:15;;29678:6;29650:10;:35::i;:::-;-1:-1:-1;;;;;29695:32:41;;;;;:22;:32;;;;;29730:15;29695:50;;-1:-1:-1;;29557:195:41:o;29826:209::-;29925:16;:14;:16::i;:::-;30001:27;30022:5;30001:20;:27::i;6451:328:45:-;-1:-1:-1;;;;;6523:15:45;;;;;;:9;:15;;;;;:25;;6542:6;;6523:15;:25;;6542:6;;6523:25;:::i;:::-;;;;-1:-1:-1;;6691:11:45;:21;;;;;;;6738:34;;160:25:98;;;-1:-1:-1;;;;;;;6738:34:45;;;-1:-1:-1;;;;;;;;;;;6738:34:45;148:2:98;133:18;6738:34:45;14:177:98;36220:2540:41;36374:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36374:34:41;36446:11;;36472:5;;36446:32;;-1:-1:-1;;;36446:32:41;;-1:-1:-1;;;;;36472:5:41;;;36446:32;;;7188:51:98;36446:11:41;;;:25;;7161:18:98;;36446:32:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36418:25;;;;:60;;;;36517:5;;:16;;-1:-1:-1;;;36517:16:41;;;;-1:-1:-1;;;;;36517:5:41;;;;:14;;:16;;;;;;;;;;;;;;:5;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36511:22;;:2;:22;:::i;:::-;36488:20;;;:45;36566:15;:22;36543:20;36598:2026;36618:12;36614:1;:16;36598:2026;;;36651:15;36669;36685:1;36669:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36731:27:41;36669:18;36731:17;:27::i;:::-;36701:57;;36838:19;36861:1;36838:24;36834:38;;36864:8;;;;36834:38;36886:19;36908:18;36917:8;36908;:18::i;:::-;36968:11;;:40;;-1:-1:-1;;;36968:40:41;;-1:-1:-1;;;;;7206:32:98;;;36968:40:41;;;7188:51:98;36886:40:41;;-1:-1:-1;36968:11:41;;;:25;;7161:18:98;;36968:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36941:11;:24;;:67;;;;;37050:13;-1:-1:-1;;;;;37050:22:41;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37044:30;;:2;:30;:::i;:::-;37022:19;;;:52;;;37272:24;;37088:40;;;;37195:160;;37196:42;37219:19;35905:4;37196:42;:::i;:::-;37195:55;:160;:55;:160::i;:::-;37160:195;;37408:142;37465:11;:20;;;37507:11;:25;;;37408:24;:35;;:142;;;;;:::i;:::-;37373:177;-1:-1:-1;37603:55:41;35905:4;37373:177;37603:55;:::i;:::-;37568:90;;37142:531;37781:14;37849:6;37814:32;:41;37810:621;;;37930:19;37952:149;38016:11;:25;;;38063:11;:20;;;37976:6;35905:4;37953:29;;;;:::i;37952:149::-;38151:19;;;;38172:24;;37930:171;;-1:-1:-1;38128:69:41;;37930:171;;38151:19;38128:22;:69::i;:::-;38119:78;-1:-1:-1;38224:29:41;35905:4;38119:78;38224:29;:::i;:::-;38215:38;;38280:1;38271:10;;37857:439;37810:621;;;-1:-1:-1;38329:19:41;38375:41;38384:32;38375:6;:41;:::i;:::-;38366:50;;37810:621;38484:41;38498:8;38508:6;38516:8;38484:13;:41::i;:::-;38595:6;38605:1;38595:11;38591:22;;38608:5;;;;;;;38591:22;36637:1987;;;;;36598:2026;36632:3;;;:::i;:::-;;;36598:2026;;;-1:-1:-1;38700:10:41;;38696:57;;38719:34;;-1:-1:-1;;;38719:34:41;;;;;160:25:98;;;133:18;;38719:34:41;14:177:98;7465:628:20;7645:12;7673:7;7669:418;;;7700:10;:17;7721:1;7700:22;7696:286;;-1:-1:-1;;;;;1465:19:20;;;7907:60;;;;-1:-1:-1;;;7907:60:20;;40000:2:98;7907:60:20;;;39982:21:98;40039:2;40019:18;;;40012:30;40078:31;40058:18;;;40051:59;40127:18;;7907:60:20;39798:353:98;7907:60:20;-1:-1:-1;8002:10:20;7995:17;;7669:418;8043:33;8051:10;8063:12;8043:7;:33::i;57000:414:41:-;57090:25;;;57072:15;57090:25;;;:15;:25;;;;;;;:33;;57175:222;;-1:-1:-1;;;;;57090:33:41;;;;57133:274;;-1:-1:-1;;;57215:28:41;57175:222;;57261:6;;57090:33;57285:37;;;57340:43;;;57175:222;;;:::i;:::-;;;;-1:-1:-1;;57175:222:41;;;;;;;;;;;;;;-1:-1:-1;;;;;57175:222:41;-1:-1:-1;;;;;;57175:222:41;;;;;;;;;;-1:-1:-1;;;;;57133:28:41;;;;:274::i;57719:462::-;57830:25;;;57812:15;57830:25;;;:15;:25;;;;;;;:33;;57915:249;;-1:-1:-1;;;;;57830:33:41;;;;57873:301;;-1:-1:-1;;;57955:29:41;57915:249;;58002:6;;58026:8;;57830:33;58052:37;;;58107:43;;;;;57915:249;;;:::i;8615:540:20:-;8774:17;;:21;8770:379;;9002:10;8996:17;9058:15;9045:10;9041:2;9037:19;9030:44;8770:379;9125:12;9118:20;;-1:-1:-1;;;9118:20:20;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:250:98;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:98;420:16;;413:27;196:250::o;451:271::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;704:2;683:15;-1:-1:-1;;679:29:98;670:39;;;;711:4;666:50;;451:271;-1:-1:-1;;451:271:98:o;727:220::-;876:2;865:9;858:21;839:4;896:45;937:2;926:9;922:18;914:6;896:45;:::i;952:163::-;1019:20;;1079:10;1068:22;;1058:33;;1048:61;;1105:1;1102;1095:12;1048:61;952:163;;;:::o;1120:184::-;1178:6;1231:2;1219:9;1210:7;1206:23;1202:32;1199:52;;;1247:1;1244;1237:12;1199:52;1270:28;1288:9;1270:28;:::i;1309:180::-;1368:6;1421:2;1409:9;1400:7;1396:23;1392:32;1389:52;;;1437:1;1434;1427:12;1389:52;-1:-1:-1;1460:23:98;;1309:180;-1:-1:-1;1309:180:98:o;1494:468::-;1554:3;1592:5;1586:12;1619:6;1614:3;1607:19;1645:4;1674:2;1669:3;1665:12;1658:19;;1711:2;1704:5;1700:14;1732:1;1742:195;1756:6;1753:1;1750:13;1742:195;;;1821:13;;-1:-1:-1;;;;;1817:39:98;1805:52;;1877:12;;;;1912:15;;;;1853:1;1771:9;1742:195;;;-1:-1:-1;1953:3:98;;1494:468;-1:-1:-1;;;;;1494:468:98:o;1967:283::-;2161:2;2150:9;2143:21;2124:4;2181:63;2240:2;2229:9;2225:18;2217:6;2181:63;:::i;2255:131::-;-1:-1:-1;;;;;2330:31:98;;2320:42;;2310:70;;2376:1;2373;2366:12;2391:315;2459:6;2467;2520:2;2508:9;2499:7;2495:23;2491:32;2488:52;;;2536:1;2533;2526:12;2488:52;2575:9;2562:23;2594:31;2619:5;2594:31;:::i;:::-;2644:5;2696:2;2681:18;;;;2668:32;;-1:-1:-1;;;2391:315:98:o;2903:127::-;2964:10;2959:3;2955:20;2952:1;2945:31;2995:4;2992:1;2985:15;3019:4;3016:1;3009:15;3035:257;3107:4;3101:11;;;3139:17;;-1:-1:-1;;;;;3171:34:98;;3207:22;;;3168:62;3165:88;;;3233:18;;:::i;:::-;3269:4;3262:24;3035:257;:::o;3297:275::-;3368:2;3362:9;3433:2;3414:13;;-1:-1:-1;;3410:27:98;3398:40;;-1:-1:-1;;;;;3453:34:98;;3489:22;;;3450:62;3447:88;;;3515:18;;:::i;:::-;3551:2;3544:22;3297:275;;-1:-1:-1;3297:275:98:o;3577:186::-;3625:4;-1:-1:-1;;;;;3650:6:98;3647:30;3644:56;;;3680:18;;:::i;:::-;-1:-1:-1;3746:2:98;3725:15;-1:-1:-1;;3721:29:98;3752:4;3717:40;;3577:186::o;3768:462::-;3810:5;3863:3;3856:4;3848:6;3844:17;3840:27;3830:55;;3881:1;3878;3871:12;3830:55;3917:6;3904:20;3948:48;3964:31;3992:2;3964:31;:::i;:::-;3948:48;:::i;:::-;4021:2;4012:7;4005:19;4067:3;4060:4;4055:2;4047:6;4043:15;4039:26;4036:35;4033:55;;;4084:1;4081;4074:12;4033:55;4149:2;4142:4;4134:6;4130:17;4123:4;4114:7;4110:18;4097:55;4197:1;4172:16;;;4190:4;4168:27;4161:38;;;;4176:7;3768:462;-1:-1:-1;;;3768:462:98:o;4235:665::-;4330:6;4338;4346;4354;4407:3;4395:9;4386:7;4382:23;4378:33;4375:53;;;4424:1;4421;4414:12;4375:53;4463:9;4450:23;4482:31;4507:5;4482:31;:::i;:::-;4532:5;-1:-1:-1;4589:2:98;4574:18;;4561:32;4602:33;4561:32;4602:33;:::i;:::-;4654:7;-1:-1:-1;4708:2:98;4693:18;;4680:32;;-1:-1:-1;4763:2:98;4748:18;;4735:32;-1:-1:-1;;;;;4779:30:98;;4776:50;;;4822:1;4819;4812:12;4776:50;4845:49;4886:7;4877:6;4866:9;4862:22;4845:49;:::i;:::-;4835:59;;;4235:665;;;;;;;:::o;5112:247::-;5171:6;5224:2;5212:9;5203:7;5199:23;5195:32;5192:52;;;5240:1;5237;5230:12;5192:52;5279:9;5266:23;5298:31;5323:5;5298:31;:::i;5364:456::-;5441:6;5449;5457;5510:2;5498:9;5489:7;5485:23;5481:32;5478:52;;;5526:1;5523;5516:12;5478:52;5565:9;5552:23;5584:31;5609:5;5584:31;:::i;:::-;5634:5;-1:-1:-1;5691:2:98;5676:18;;5663:32;5704:33;5663:32;5704:33;:::i;:::-;5364:456;;5756:7;;-1:-1:-1;;;5810:2:98;5795:18;;;;5782:32;;5364:456::o;6014:118::-;6100:5;6093:13;6086:21;6079:5;6076:32;6066:60;;6122:1;6119;6112:12;6137:313;6201:6;6209;6262:2;6250:9;6241:7;6237:23;6233:32;6230:52;;;6278:1;6275;6268:12;6230:52;6301:28;6319:9;6301:28;:::i;:::-;6291:38;;6379:2;6368:9;6364:18;6351:32;6392:28;6414:5;6392:28;:::i;:::-;6439:5;6429:15;;;6137:313;;;;;:::o;6637:385::-;6709:6;6717;6725;6778:2;6766:9;6757:7;6753:23;6749:32;6746:52;;;6794:1;6791;6784:12;6746:52;6817:28;6835:9;6817:28;:::i;:::-;6807:38;;6864:37;6897:2;6886:9;6882:18;6864:37;:::i;:::-;6854:47;;6951:2;6940:9;6936:18;6923:32;6964:28;6986:5;6964:28;:::i;:::-;7011:5;7001:15;;;6637:385;;;;;:::o;7455:647::-;7624:2;7676:21;;;7746:13;;7649:18;;;7768:22;;;7595:4;;7624:2;7847:15;;;;7821:2;7806:18;;;7595:4;7890:186;7904:6;7901:1;7898:13;7890:186;;;7969:13;;7984:10;7965:30;7953:43;;8051:15;;;;8016:12;;;;7926:1;7919:9;7890:186;;;-1:-1:-1;8093:3:98;;7455:647;-1:-1:-1;;;;;;7455:647:98:o;8107:194::-;8178:4;-1:-1:-1;;;;;8203:6:98;8200:30;8197:56;;;8233:18;;:::i;:::-;-1:-1:-1;8278:1:98;8274:14;8290:4;8270:25;;8107:194::o;8306:2217::-;8420:6;8473:2;8461:9;8452:7;8448:23;8444:32;8441:52;;;8489:1;8486;8479:12;8441:52;-1:-1:-1;;;;;8570:2:98;8558:9;8545:23;8542:31;8539:51;;;8586:1;8583;8576:12;8539:51;8637:9;8624:23;8613:9;8609:39;8686:7;8679:4;8675:2;8671:13;8667:27;8657:55;;8708:1;8705;8698:12;8657:55;8732:85;8748:68;8812:2;8799:16;8748:68;:::i;8732:85::-;8863:16;;8851:29;;;8905:2;8896:12;;;;8839:3;8947:1;8943:24;8935:33;;8931:42;8985:19;;;8982:39;;;9017:1;9014;9007:12;8982:39;9049:2;9045;9041:11;9061:1432;9077:6;9072:3;9069:15;9061:1432;;;9156:2;9150:3;9137:17;9134:25;9131:45;;;9172:1;9169;9162:12;9131:45;9207:17;;9199:26;;9277:4;9249:16;;;-1:-1:-1;;9245:30:98;9241:41;9238:61;;;9295:1;9292;9285:12;9238:61;9325:22;;:::i;:::-;9396:2;9392;9388:11;9375:25;9413:33;9438:7;9413:33;:::i;:::-;9459:22;;9529:4;9521:13;;9508:27;9551:14;;;9548:34;;;9578:1;9575;9568:12;9548:34;9613:6;9609:2;9605:15;9595:25;;;9660:7;9655:2;9651;9647:11;9643:25;9633:53;;9682:1;9679;9672:12;9633:53;9730:2;9726;9722:11;9709:25;9760:71;9776:54;9827:2;9776:54;:::i;9760:71::-;9875:17;;;9973:1;9969:10;;;;9961:19;;9982:4;9957:30;;9925:2;9914:14;;;10003:21;;;10000:41;;;10037:1;10034;10027:12;10000:41;10075:4;10071:2;10067:13;10093:285;10111:8;10104:5;10101:19;10093:285;;;10206:2;10198:5;10185:19;10182:27;10179:47;;;10222:1;10219;10212:12;10179:47;10257:66;10315:7;10308:4;10299:5;10286:19;10282:2;10278:28;10274:39;10257:66;:::i;:::-;10243:81;;10361:2;10350:14;;;;10132;10093:285;;;10097:3;10414:5;10409:2;10402:5;10398:14;10391:29;;;;10445:5;10440:3;10433:18;;;10480:2;10475:3;10471:12;10464:19;;9103:2;9098:3;9094:12;9087:19;;9061:1432;;;-1:-1:-1;10512:5:98;;8306:2217;-1:-1:-1;;;;;;;8306:2217:98:o;10725:241::-;10781:6;10834:2;10822:9;10813:7;10809:23;10805:32;10802:52;;;10850:1;10847;10840:12;10802:52;10889:9;10876:23;10908:28;10930:5;10908:28;:::i;10971:315::-;11039:6;11047;11100:2;11088:9;11079:7;11075:23;11071:32;11068:52;;;11116:1;11113;11106:12;11068:52;11152:9;11139:23;11129:33;;11212:2;11201:9;11197:18;11184:32;11225:31;11250:5;11225:31;:::i;11291:559::-;-1:-1:-1;;;;;11534:32:98;;11516:51;;11610:14;;11603:22;11598:2;11583:18;;11576:50;11662:3;11657:2;11642:18;;11635:31;;;-1:-1:-1;;11689:46:98;;11715:19;;11707:6;11689:46;:::i;:::-;11783:9;11775:6;11771:22;11766:2;11755:9;11751:18;11744:50;11811:33;11837:6;11829;11811:33;:::i;:::-;11803:41;11291:559;-1:-1:-1;;;;;;;11291:559:98:o;11855:435::-;11908:3;11946:5;11940:12;11973:6;11968:3;11961:19;11999:4;12028:2;12023:3;12019:12;12012:19;;12065:2;12058:5;12054:14;12086:1;12096:169;12110:6;12107:1;12104:13;12096:169;;;12171:13;;12159:26;;12205:12;;;;12240:15;;;;12132:1;12125:9;12096:169;;12295:1040;12639:2;12628:9;12621:21;12602:4;12665:63;12724:2;12713:9;12709:18;12701:6;12665:63;:::i;:::-;12747:2;12797:9;12789:6;12785:22;12780:2;12769:9;12765:18;12758:50;12831:44;12868:6;12860;12831:44;:::i;:::-;12911:22;;;12906:2;12891:18;;12884:50;12983:13;;13005:22;;;13081:15;;;;-1:-1:-1;13043:15:98;;;;13114:1;13124:185;13138:6;13135:1;13132:13;13124:185;;;13213:13;;13206:21;13199:29;13187:42;;13284:15;;;;13249:12;;;;13160:1;13153:9;13124:185;;;-1:-1:-1;13326:3:98;;12295:1040;-1:-1:-1;;;;;;;;12295:1040:98:o;13774:367::-;13837:8;13847:6;13901:3;13894:4;13886:6;13882:17;13878:27;13868:55;;13919:1;13916;13909:12;13868:55;-1:-1:-1;13942:20:98;;-1:-1:-1;;;;;13974:30:98;;13971:50;;;14017:1;14014;14007:12;13971:50;14054:4;14046:6;14042:17;14030:29;;14114:3;14107:4;14097:6;14094:1;14090:14;14082:6;14078:27;14074:38;14071:47;14068:67;;;14131:1;14128;14121:12;14068:67;13774:367;;;;;:::o;14146:1673::-;14333:6;14341;14349;14357;14365;14373;14381;14389;14397;14450:3;14438:9;14429:7;14425:23;14421:33;14418:53;;;14467:1;14464;14457:12;14418:53;14507:9;14494:23;-1:-1:-1;;;;;14577:2:98;14569:6;14566:14;14563:34;;;14593:1;14590;14583:12;14563:34;14632:70;14694:7;14685:6;14674:9;14670:22;14632:70;:::i;:::-;14721:8;;-1:-1:-1;14606:96:98;-1:-1:-1;14809:2:98;14794:18;;14781:32;;-1:-1:-1;14825:16:98;;;14822:36;;;14854:1;14851;14844:12;14822:36;14893:72;14957:7;14946:8;14935:9;14931:24;14893:72;:::i;:::-;14984:8;;-1:-1:-1;14867:98:98;-1:-1:-1;15072:2:98;15057:18;;15044:32;;-1:-1:-1;15088:16:98;;;15085:36;;;15117:1;15114;15107:12;15085:36;15156:72;15220:7;15209:8;15198:9;15194:24;15156:72;:::i;:::-;15247:8;;-1:-1:-1;15130:98:98;-1:-1:-1;15332:2:98;15317:18;;15304:32;;-1:-1:-1;15345:31:98;15304:32;15345:31;:::i;:::-;15395:5;;-1:-1:-1;15453:3:98;15438:19;;15425:33;;15470:16;;;15467:36;;;15499:1;15496;15489:12;15467:36;15537:8;15526:9;15522:24;15512:34;;15584:7;15577:4;15573:2;15569:13;15565:27;15555:55;;15606:1;15603;15596:12;15555:55;15646:2;15633:16;15672:2;15664:6;15661:14;15658:34;;;15688:1;15685;15678:12;15658:34;15733:7;15728:2;15719:6;15715:2;15711:15;15707:24;15704:37;15701:57;;;15754:1;15751;15744:12;15701:57;15785:2;15781;15777:11;15767:21;;15807:6;15797:16;;;;;14146:1673;;;;;;;;;;;:::o;15824:594::-;15914:6;15922;15930;15938;15991:3;15979:9;15970:7;15966:23;15962:33;15959:53;;;16008:1;16005;15998:12;15959:53;16031:28;16049:9;16031:28;:::i;:::-;16021:38;;16078:37;16111:2;16100:9;16096:18;16078:37;:::i;:::-;16068:47;;16166:2;16155:9;16151:18;16138:32;-1:-1:-1;;;;;16185:6:98;16182:30;16179:50;;;16225:1;16222;16215:12;16179:50;16248:49;16289:7;16280:6;16269:9;16265:22;16248:49;:::i;:::-;16238:59;;;16347:2;16336:9;16332:18;16319:32;16360:28;16382:5;16360:28;:::i;:::-;15824:594;;;;-1:-1:-1;15824:594:98;;-1:-1:-1;;15824:594:98:o;16423:448::-;16520:6;16528;16581:2;16569:9;16560:7;16556:23;16552:32;16549:52;;;16597:1;16594;16587:12;16549:52;16637:9;16624:23;-1:-1:-1;;;;;16662:6:98;16659:30;16656:50;;;16702:1;16699;16692:12;16656:50;16741:70;16803:7;16794:6;16783:9;16779:22;16741:70;:::i;:::-;16830:8;;16715:96;;-1:-1:-1;16423:448:98;-1:-1:-1;;;;16423:448:98:o;16876:456::-;16953:6;16961;16969;17022:2;17010:9;17001:7;16997:23;16993:32;16990:52;;;17038:1;17035;17028:12;16990:52;17074:9;17061:23;17051:33;;17134:2;17123:9;17119:18;17106:32;17147:31;17172:5;17147:31;:::i;:::-;17197:5;-1:-1:-1;17254:2:98;17239:18;;17226:32;17267:33;17226:32;17267:33;:::i;17337:284::-;17395:6;17448:2;17436:9;17427:7;17423:23;17419:32;17416:52;;;17464:1;17461;17454:12;17416:52;17503:9;17490:23;-1:-1:-1;;;;;17546:5:98;17542:30;17535:5;17532:41;17522:69;;17587:1;17584;17577:12;17626:114;17710:4;17703:5;17699:16;17692:5;17689:27;17679:55;;17730:1;17727;17720:12;17745:801;17856:6;17864;17872;17880;17888;17896;17904;17957:3;17945:9;17936:7;17932:23;17928:33;17925:53;;;17974:1;17971;17964:12;17925:53;18013:9;18000:23;18032:31;18057:5;18032:31;:::i;:::-;18082:5;-1:-1:-1;18139:2:98;18124:18;;18111:32;18152:33;18111:32;18152:33;:::i;:::-;18204:7;-1:-1:-1;18258:2:98;18243:18;;18230:32;;-1:-1:-1;18309:2:98;18294:18;;18281:32;;-1:-1:-1;18365:3:98;18350:19;;18337:33;18379:31;18337:33;18379:31;:::i;:::-;17745:801;;;;-1:-1:-1;17745:801:98;;;;18429:7;18483:3;18468:19;;18455:33;;-1:-1:-1;18535:3:98;18520:19;;;18507:33;;17745:801;-1:-1:-1;;17745:801:98:o;18780:388::-;18848:6;18856;18909:2;18897:9;18888:7;18884:23;18880:32;18877:52;;;18925:1;18922;18915:12;18877:52;18964:9;18951:23;18983:31;19008:5;18983:31;:::i;:::-;19033:5;-1:-1:-1;19090:2:98;19075:18;;19062:32;19103:33;19062:32;19103:33;:::i;19653:334::-;19855:2;19837:21;;;19894:2;19874:18;;;19867:30;-1:-1:-1;;;19928:2:98;19913:18;;19906:40;19978:2;19963:18;;19653:334::o;19992:380::-;20071:1;20067:12;;;;20114;;;20135:61;;20189:4;20181:6;20177:17;20167:27;;20135:61;20242:2;20234:6;20231:14;20211:18;20208:38;20205:161;;20288:10;20283:3;20279:20;20276:1;20269:31;20323:4;20320:1;20313:15;20351:4;20348:1;20341:15;20205:161;;19992:380;;;:::o;20377:336::-;20579:2;20561:21;;;20618:2;20598:18;;;20591:30;-1:-1:-1;;;20652:2:98;20637:18;;20630:42;20704:2;20689:18;;20377:336::o;20718:127::-;20779:10;20774:3;20770:20;20767:1;20760:31;20810:4;20807:1;20800:15;20834:4;20831:1;20824:15;20850:127;20911:10;20906:3;20902:20;20899:1;20892:31;20942:4;20939:1;20932:15;20966:4;20963:1;20956:15;20982:135;21021:3;21042:17;;;21039:43;;21062:18;;:::i;:::-;-1:-1:-1;21109:1:98;21098:13;;20982:135::o;22134:128::-;22201:9;;;22222:11;;;22219:37;;;22236:18;;:::i;22267:125::-;22332:9;;;22353:10;;;22350:36;;;22366:18;;:::i;22397:315::-;-1:-1:-1;;;;;22572:32:98;;22554:51;;22641:2;22636;22621:18;;22614:30;;;-1:-1:-1;;22661:45:98;;22687:18;;22679:6;22661:45;:::i;22717:175::-;22754:3;22798:4;22791:5;22787:16;22827:4;22818:7;22815:17;22812:43;;22835:18;;:::i;:::-;22884:1;22871:15;;22717:175;-1:-1:-1;;22717:175:98:o;23751:251::-;23821:6;23874:2;23862:9;23853:7;23849:23;23845:32;23842:52;;;23890:1;23887;23880:12;23842:52;23922:9;23916:16;23941:31;23966:5;23941:31;:::i;24007:521::-;24084:4;24090:6;24150:11;24137:25;24244:2;24240:7;24229:8;24213:14;24209:29;24205:43;24185:18;24181:68;24171:96;;24263:1;24260;24253:12;24171:96;24290:33;;24342:20;;;-1:-1:-1;;;;;;24374:30:98;;24371:50;;;24417:1;24414;24407:12;24371:50;24450:4;24438:17;;-1:-1:-1;24481:14:98;24477:27;;;24467:38;;24464:58;;;24518:1;24515;24508:12;24842:245;24909:6;24962:2;24950:9;24941:7;24937:23;24933:32;24930:52;;;24978:1;24975;24968:12;24930:52;25010:9;25004:16;25029:28;25051:5;25029:28;:::i;27765:136::-;27804:3;27832:5;27822:39;;27841:18;;:::i;:::-;-1:-1:-1;;;27877:18:98;;27765:136::o;27906:599::-;28221:2;28210:9;28203:21;28184:4;28247:63;28306:2;28295:9;28291:18;28283:6;28247:63;:::i;:::-;28358:9;28350:6;28346:22;28341:2;28330:9;28326:18;28319:50;28386:44;28423:6;28415;28386:44;:::i;:::-;28378:52;;;28495:1;28491;28486:3;28482:11;28478:19;28470:6;28466:32;28461:2;28450:9;28446:18;28439:60;27906:599;;;;;;:::o;28510:184::-;28580:6;28633:2;28621:9;28612:7;28608:23;28604:32;28601:52;;;28649:1;28646;28639:12;28601:52;-1:-1:-1;28672:16:98;;28510:184;-1:-1:-1;28510:184:98:o;28699:1032::-;29185:3;29174:9;29167:22;29148:4;29212:64;29271:3;29260:9;29256:19;29248:6;29212:64;:::i;:::-;29324:9;29316:6;29312:22;29307:2;29296:9;29292:18;29285:50;29358:44;29395:6;29387;29358:44;:::i;:::-;29344:58;;29450:9;29442:6;29438:22;29433:2;29422:9;29418:18;29411:50;29484:51;29528:6;29520;29484:51;:::i;:::-;29470:65;;29583:9;29575:6;29571:22;29566:2;29555:9;29551:18;29544:50;29611:44;29648:6;29640;29611:44;:::i;:::-;29603:52;;;29721:1;29717;29712:3;29708:11;29704:19;29696:6;29692:32;29686:3;29675:9;29671:19;29664:61;28699:1032;;;;;;;;:::o;29736:247::-;29804:6;29857:2;29845:9;29836:7;29832:23;29828:32;29825:52;;;29873:1;29870;29863:12;29825:52;29905:9;29899:16;29924:29;29947:5;29924:29;:::i;30113:771::-;30162:3;30203:5;30197:12;30232:36;30258:9;30232:36;:::i;:::-;30277:19;;;30315:4;30338:1;30355:18;;;30382:146;;;;30542:1;30537:341;;;;30348:530;;30382:146;-1:-1:-1;;30424:24:98;;30410:12;;;30403:46;30496:14;;30489:22;30486:1;30482:30;30473:40;;30469:49;;;-1:-1:-1;30382:146:98;;30537:341;30568:5;30565:1;30558:16;30615:2;30612:1;30602:16;30640:1;30654:174;30668:6;30665:1;30662:13;30654:174;;;30755:14;;30737:11;;;30733:20;;30726:44;30798:16;;;;30683:10;;30654:174;;;30852:11;;30848:20;;;-1:-1:-1;;30348:530:98;;;;;;30113:771;;;;:::o;30889:222::-;31033:2;31022:9;31015:21;30996:4;31053:52;31101:2;31090:9;31086:18;31078:6;31053:52;:::i;31684:844::-;31814:3;31843:1;31876:6;31870:13;31906:36;31932:9;31906:36;:::i;:::-;31961:1;31978:18;;;32005:133;;;;32152:1;32147:356;;;;31971:532;;32005:133;-1:-1:-1;;32038:24:98;;32026:37;;32111:14;;32104:22;32092:35;;32083:45;;;-1:-1:-1;32005:133:98;;32147:356;32178:6;32175:1;32168:17;32208:4;32253:2;32250:1;32240:16;32278:1;32292:165;32306:6;32303:1;32300:13;32292:165;;;32384:14;;32371:11;;;32364:35;32427:16;;;;32321:10;;32292:165;;;32296:3;;;32486:6;32481:3;32477:16;32470:23;;31971:532;-1:-1:-1;32519:3:98;;31684:844;-1:-1:-1;;;;;;31684:844:98:o;33370:903::-;33464:6;33472;33480;33533:2;33521:9;33512:7;33508:23;33504:32;33501:52;;;33549:1;33546;33539:12;33501:52;33581:9;33575:16;33600:31;33625:5;33600:31;:::i;:::-;33700:2;33685:18;;33679:25;33650:5;;-1:-1:-1;33713:30:98;33679:25;33713:30;:::i;:::-;33813:2;33798:18;;33792:25;33762:7;;-1:-1:-1;;;;;;33829:30:98;;33826:50;;;33872:1;33869;33862:12;33826:50;33895:22;;33948:4;33940:13;;33936:27;-1:-1:-1;33926:55:98;;33977:1;33974;33967:12;33926:55;34006:2;34000:9;34031:48;34047:31;34075:2;34047:31;:::i;34031:48::-;34102:2;34095:5;34088:17;34142:7;34137:2;34132;34128;34124:11;34120:20;34117:33;34114:53;;;34163:1;34160;34153:12;34114:53;34176:67;34240:2;34235;34228:5;34224:14;34219:2;34215;34211:11;34176:67;:::i;:::-;34262:5;34252:15;;;;;33370:903;;;;;:::o;34278:544::-;34379:2;34374:3;34371:11;34368:448;;;34415:1;34440:5;34436:2;34429:17;34485:4;34481:2;34471:19;34555:2;34543:10;34539:19;34536:1;34532:27;34526:4;34522:38;34591:4;34579:10;34576:20;34573:47;;;-1:-1:-1;34614:4:98;34573:47;34669:2;34664:3;34660:12;34657:1;34653:20;34647:4;34643:31;34633:41;;34724:82;34742:2;34735:5;34732:13;34724:82;;;34787:17;;;34768:1;34757:13;34724:82;;;34728:3;;;34278:544;;;:::o;34998:1348::-;35122:3;35116:10;-1:-1:-1;;;;;35141:6:98;35138:30;35135:56;;;35171:18;;:::i;:::-;35200:96;35289:6;35249:38;35281:4;35275:11;35249:38;:::i;:::-;35243:4;35200:96;:::i;:::-;35351:4;;35415:2;35404:14;;35432:1;35427:662;;;;36133:1;36150:6;36147:89;;;-1:-1:-1;36202:19:98;;;36196:26;36147:89;-1:-1:-1;;34955:1:98;34951:11;;;34947:24;34943:29;34933:40;34979:1;34975:11;;;34930:57;36249:81;;35397:943;;35427:662;30060:1;30053:14;;;30097:4;30084:18;;-1:-1:-1;;35463:20:98;;;35580:236;35594:7;35591:1;35588:14;35580:236;;;35683:19;;;35677:26;35662:42;;35775:27;;;;35743:1;35731:14;;;;35610:19;;35580:236;;;35584:3;35844:6;35835:7;35832:19;35829:201;;;35905:19;;;35899:26;-1:-1:-1;;35988:1:98;35984:14;;;36000:3;35980:24;35976:37;35972:42;35957:58;35942:74;;35829:201;-1:-1:-1;;;;;36076:1:98;36060:14;;;36056:22;36043:36;;-1:-1:-1;34998:1348:98:o;36351:387::-;36538:2;36527:9;36520:21;36501:4;36564:52;36612:2;36601:9;36597:18;36589:6;36564:52;:::i;:::-;36664:9;36656:6;36652:22;36647:2;36636:9;36632:18;36625:50;36692:40;36725:6;36717;36692:40;:::i;:::-;36684:48;36351:387;-1:-1:-1;;;;;36351:387:98:o;36743:151::-;36833:4;36826:12;;;36812;;;36808:31;;36851:14;;36848:40;;;36868:18;;:::i;36899:422::-;36988:1;37031:5;36988:1;37045:270;37066:7;37056:8;37053:21;37045:270;;;37125:4;37121:1;37117:6;37113:17;37107:4;37104:27;37101:53;;;37134:18;;:::i;:::-;37184:7;37174:8;37170:22;37167:55;;;37204:16;;;;37167:55;37283:22;;;;37243:15;;;;37045:270;;;37049:3;36899:422;;;;;:::o;37326:806::-;37375:5;37405:8;37395:80;;-1:-1:-1;37446:1:98;37460:5;;37395:80;37494:4;37484:76;;-1:-1:-1;37531:1:98;37545:5;;37484:76;37576:4;37594:1;37589:59;;;;37662:1;37657:130;;;;37569:218;;37589:59;37619:1;37610:10;;37633:5;;;37657:130;37694:3;37684:8;37681:17;37678:43;;;37701:18;;:::i;:::-;-1:-1:-1;;37757:1:98;37743:16;;37772:5;;37569:218;;37871:2;37861:8;37858:16;37852:3;37846:4;37843:13;37839:36;37833:2;37823:8;37820:16;37815:2;37809:4;37806:12;37802:35;37799:77;37796:159;;;-1:-1:-1;37908:19:98;;;37940:5;;37796:159;37987:34;38012:8;38006:4;37987:34;:::i;:::-;38057:6;38053:1;38049:6;38045:19;38036:7;38033:32;38030:58;;;38068:18;;:::i;:::-;38106:20;;37326:806;-1:-1:-1;;;37326:806:98:o;38137:140::-;38195:5;38224:47;38265:4;38255:8;38251:19;38245:4;38224:47;:::i;38282:168::-;38322:7;38388:1;38384;38380:6;38376:14;38373:1;38370:21;38365:1;38358:9;38351:17;38347:45;38344:71;;;38395:18;;:::i;:::-;-1:-1:-1;38435:9:98;;38282:168::o;38455:217::-;38495:1;38521;38511:132;;38565:10;38560:3;38556:20;38553:1;38546:31;38600:4;38597:1;38590:15;38628:4;38625:1;38618:15;38511:132;-1:-1:-1;38657:9:98;;38455:217::o;39025:127::-;39086:10;39081:3;39077:20;39074:1;39067:31;39117:4;39114:1;39107:15;39141:4;39138:1;39131:15;39157:287;39286:3;39324:6;39318:13;39340:66;39399:6;39394:3;39387:4;39379:6;39375:17;39340:66;:::i;:::-;39422:16;;;;;39157:287;-1:-1:-1;;39157:287:98:o;40156:458::-;40371:6;40360:9;40353:25;40414:2;40409;40398:9;40394:18;40387:30;40334:4;40440:52;40488:2;40477:9;40473:18;40465:6;40440:52;:::i;:::-;40540:9;40532:6;40528:22;40523:2;40512:9;40508:18;40501:50;40568:40;40601:6;40593;40568:40;:::i;40619:557::-;40844:25;;;-1:-1:-1;;;;;40905:32:98;;40900:2;40885:18;;40878:60;40974:3;40969:2;40954:18;;40947:31;;;-1:-1:-1;;41001:53:98;;41034:19;;41026:6;41001:53;:::i;:::-;41102:9;41094:6;41090:22;41085:2;41074:9;41070:18;41063:50;41130:40;41163:6;41155;41130:40;:::i\",\n \"linkReferences\": {}\n },\n \"methodIdentifiers\": {\n \"DOMAIN_SEPARATOR()\": \"3644e515\",\n \"GRAVITY_BRIDGE_REGISTRY_SLOT()\": \"cd82f8b1\",\n \"MAXIMUM_SHARE_LOCK_PERIOD()\": \"0402ab63\",\n \"MAX_FEE_CUT()\": \"eef33eca\",\n \"MAX_PLATFORM_FEE()\": \"3998a681\",\n \"MAX_POSITIONS()\": \"f7b24e08\",\n \"MAX_REBALANCE_DEVIATION()\": \"6ff1c02a\",\n \"MINIMUM_SHARE_LOCK_PERIOD()\": \"0051a3b7\",\n \"PRICE_ROUTER_REGISTRY_SLOT()\": \"5a400d25\",\n \"aavePool()\": \"a03e4bc3\",\n \"adaptorCatalogue(address)\": \"18d4c143\",\n \"addAdaptorToCatalogue(address)\": \"3d8ab1e5\",\n \"addPosition(uint32,uint32,bytes,bool)\": \"9955a9d4\",\n \"addPositionToCatalogue(uint32)\": \"501eb4fe\",\n \"allowance(address,address)\": \"dd62ed3e\",\n \"allowedRebalanceDeviation()\": \"c244245a\",\n \"approve(address,uint256)\": \"095ea7b3\",\n \"asset()\": \"38d52e0f\",\n \"balanceOf(address)\": \"70a08231\",\n \"blockExternalReceiver()\": \"4c4602da\",\n \"cachePriceRouter(bool)\": \"6925ba2c\",\n \"callOnAdaptor((address,bytes[])[])\": \"4e84befe\",\n \"convertToAssets(uint256)\": \"07a2d13a\",\n \"convertToShares(uint256)\": \"c6e6f592\",\n \"creditPositions(uint256)\": \"59d20b4e\",\n \"debtPositions(uint256)\": \"e1b1acb7\",\n \"decimals()\": \"313ce567\",\n \"deposit(uint256,address)\": \"6e553f65\",\n \"executeOperation(address[],uint256[],uint256[],address,bytes)\": \"920f5c84\",\n \"feeData()\": \"e753e600\",\n \"forcePositionOut(uint32,uint32,bool)\": \"a07bee0b\",\n \"getCreditPositions()\": \"71e99dc2\",\n \"getDebtPositions()\": \"3e3382ba\",\n \"getPositionAssets()\": \"087ed837\",\n \"getPositionData(uint32)\": \"7384504f\",\n \"holdingPosition()\": \"9c5f00c2\",\n \"ignorePause()\": \"9959af94\",\n \"initiateShutdown()\": \"0a680e18\",\n \"isPaused()\": \"b187bd26\",\n \"isPositionUsed(uint256)\": \"93bbeac0\",\n \"isShutdown()\": \"bf86d690\",\n \"liftShutdown()\": \"5e2c576e\",\n \"locked()\": \"cf309012\",\n \"maxDeposit(address)\": \"402d267d\",\n \"maxMint(address)\": \"c63d75b6\",\n \"maxRedeem(address)\": \"d905777e\",\n \"maxWithdraw(address)\": \"ce96cb77\",\n \"mint(uint256,address)\": \"94bf804d\",\n \"multicall(bytes[])\": \"ac9650d8\",\n \"name()\": \"06fdde03\",\n \"nonces(address)\": \"7ecebe00\",\n \"onERC721Received(address,address,uint256,bytes)\": \"150b7a02\",\n \"owner()\": \"8da5cb5b\",\n \"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\": \"d505accf\",\n \"positionCatalogue(uint32)\": \"cbdf33d0\",\n \"previewDeposit(uint256)\": \"ef8b30f7\",\n \"previewMint(uint256)\": \"b3d7f6b9\",\n \"previewRedeem(uint256)\": \"4cdad506\",\n \"previewWithdraw(uint256)\": \"0a28a477\",\n \"priceRouter()\": \"d7d4bf45\",\n \"redeem(uint256,address,address)\": \"ba087652\",\n \"registry()\": \"7b103999\",\n \"removeAdaptorFromCatalogue(address)\": \"5f6b88a0\",\n \"removePosition(uint32,bool)\": \"33e15be2\",\n \"removePositionFromCatalogue(uint32)\": \"d1e88404\",\n \"setHoldingPosition(uint32)\": \"0780fd3a\",\n \"setRebalanceDeviation(uint256)\": \"530a3714\",\n \"setShareLockPeriod(uint256)\": \"9c552ca8\",\n \"setStrategistPayoutAddress(address)\": \"b0a75d36\",\n \"setStrategistPlatformCut(uint64)\": \"b5292a99\",\n \"shareLockPeriod()\": \"9fdb11b6\",\n \"swapPositions(uint32,uint32,bool)\": \"379e0b13\",\n \"symbol()\": \"95d89b41\",\n \"toggleIgnorePause(bool)\": \"ebe3c328\",\n \"totalAssets()\": \"01e1d114\",\n \"totalAssetsWithdrawable()\": \"a8144e48\",\n \"totalSupply()\": \"18160ddd\",\n \"transfer(address,uint256)\": \"a9059cbb\",\n \"transferFrom(address,address,uint256)\": \"23b872dd\",\n \"transferOwnership(address)\": \"f2fde38b\",\n \"userShareLockStartTime(address)\": \"687c2b50\",\n \"viewPositionBalances()\": \"78e0233e\",\n \"withdraw(uint256,address,address)\": \"b460af94\"\n },\n \"rawMetadata\": \"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.16+commit.07a7930e\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"contract Registry\\\",\\\"name\\\":\\\"_registry\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"contract ERC20\\\",\\\"name\\\":\\\"_asset\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"string\\\",\\\"name\\\":\\\"_name\\\",\\\"type\\\":\\\"string\\\"},{\\\"internalType\\\":\\\"string\\\",\\\"name\\\":\\\"_symbol\\\",\\\"type\\\":\\\"string\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"params\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"asset\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"expectedAsset\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Cellar__AssetMismatch\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Cellar__CallToAdaptorNotAllowed\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__CallerNotAavePool\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__ContractNotShutdown\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__ContractShutdown\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"Cellar__DebtMismatch\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"maxDeposit\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__DepositRestricted\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__ExternalInitiator\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"illiquidPosition\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Cellar__IlliquidWithdraw\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assetsOwed\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__IncompleteWithdraw\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__InvalidFee\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__InvalidFeeCut\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"Cellar__InvalidHoldingPosition\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"requested\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"max\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__InvalidRebalanceDeviation\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__InvalidShareLockPeriod\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"depositor\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Cellar__NotApprovedToDepositOnBehalf\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__Paused\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"Cellar__PositionAlreadyUsed\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"maxPositions\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__PositionArrayFull\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"sharesRemaining\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__PositionNotEmpty\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"Cellar__PositionNotInCatalogue\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"Cellar__PositionNotUsed\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__RemovingHoldingPosition\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"timeSharesAreUnlocked\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"currentBlock\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__SharesAreLocked\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"min\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"max\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__TotalAssetDeviatedOutsideRange\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"current\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"expected\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Cellar__TotalSharesMustRemainConstant\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__ZeroAssets\\\",\\\"type\\\":\\\"error\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"Cellar__ZeroShares\\\",\\\"type\\\":\\\"error\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"AdaptorCalled\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inCatalogue\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"AdaptorCatalogueAltered\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"spender\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"amount\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Approval\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"caller\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Deposit\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"user\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newOwner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"OwnershipTransferred\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"oldPlatformFee\\\",\\\"type\\\":\\\"uint64\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"newPlatformFee\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"name\\\":\\\"PlatformFeeChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"index\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"PositionAdded\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inCatalogue\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"PositionCatalogueAltered\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"position\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"index\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"PositionRemoved\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"newPosition1\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"newPosition2\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"index1\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"index2\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"PositionSwapped\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"oldDeviation\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"newDeviation\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"RebalanceDeviationChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"oldPeriod\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"newPeriod\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"ShareLockingPeriodChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"isShutdown\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"ShutdownChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"oldPayoutAddress\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newPayoutAddress\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"StrategistPayoutAddressChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"oldPlatformCut\\\",\\\"type\\\":\\\"uint64\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"newPlatformCut\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"name\\\":\\\"StrategistPlatformCutChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"from\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"to\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"amount\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Transfer\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"caller\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"receiver\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"Withdraw\\\",\\\"type\\\":\\\"event\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"DOMAIN_SEPARATOR\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes32\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"GRAVITY_BRIDGE_REGISTRY_SLOT\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MAXIMUM_SHARE_LOCK_PERIOD\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MAX_FEE_CUT\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MAX_PLATFORM_FEE\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MAX_POSITIONS\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MAX_REBALANCE_DEVIATION\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"MINIMUM_SHARE_LOCK_PERIOD\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"PRICE_ROUTER_REGISTRY_SLOT\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"aavePool\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"adaptorCatalogue\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"addAdaptorToCatalogue\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"index\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"configurationData\\\",\\\"type\\\":\\\"bytes\\\"},{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inDebtArray\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"addPosition\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"addPositionToCatalogue\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"allowance\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"allowedRebalanceDeviation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"spender\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"amount\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"approve\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"asset\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"contract ERC20\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"balanceOf\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"blockExternalReceiver\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"checkTotalAssets\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"cachePriceRouter\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"components\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes[]\\\",\\\"name\\\":\\\"callData\\\",\\\"type\\\":\\\"bytes[]\\\"}],\\\"internalType\\\":\\\"struct Cellar.AdaptorCall[]\\\",\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"tuple[]\\\"}],\\\"name\\\":\\\"callOnAdaptor\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"convertToAssets\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"convertToShares\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"creditPositions\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"debtPositions\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"decimals\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint8\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint8\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"receiver\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"deposit\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address[]\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"address[]\\\"},{\\\"internalType\\\":\\\"uint256[]\\\",\\\"name\\\":\\\"amounts\\\",\\\"type\\\":\\\"uint256[]\\\"},{\\\"internalType\\\":\\\"uint256[]\\\",\\\"name\\\":\\\"premiums\\\",\\\"type\\\":\\\"uint256[]\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"initiator\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"params\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"executeOperation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"feeData\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"strategistPlatformCut\\\",\\\"type\\\":\\\"uint64\\\"},{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"platformFee\\\",\\\"type\\\":\\\"uint64\\\"},{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"lastAccrual\\\",\\\"type\\\":\\\"uint64\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"strategistPayoutAddress\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"index\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inDebtArray\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"forcePositionOut\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"getCreditPositions\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint32[]\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32[]\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"getDebtPositions\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint32[]\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32[]\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"getPositionAssets\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"contract ERC20[]\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"address[]\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"getPositionData\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"isDebt\\\",\\\"type\\\":\\\"bool\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"adaptorData\\\",\\\"type\\\":\\\"bytes\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"configurationData\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"holdingPosition\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"ignorePause\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"initiateShutdown\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"isPaused\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"isPositionUsed\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"isShutdown\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"liftShutdown\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"locked\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"maxDeposit\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"maxMint\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"maxRedeem\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"maxWithdraw\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"receiver\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"mint\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"bytes[]\\\",\\\"name\\\":\\\"data\\\",\\\"type\\\":\\\"bytes[]\\\"}],\\\"name\\\":\\\"multicall\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"name\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"string\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"string\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"nonces\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"onERC721Received\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes4\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes4\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"owner\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"spender\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"value\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"deadline\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"uint8\\\",\\\"name\\\":\\\"v\\\",\\\"type\\\":\\\"uint8\\\"},{\\\"internalType\\\":\\\"bytes32\\\",\\\"name\\\":\\\"r\\\",\\\"type\\\":\\\"bytes32\\\"},{\\\"internalType\\\":\\\"bytes32\\\",\\\"name\\\":\\\"s\\\",\\\"type\\\":\\\"bytes32\\\"}],\\\"name\\\":\\\"permit\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"positionCatalogue\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"previewDeposit\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"previewMint\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"previewRedeem\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"previewWithdraw\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"priceRouter\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"contract PriceRouter\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"receiver\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"redeem\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"registry\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"contract Registry\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"adaptor\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"removeAdaptorFromCatalogue\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"index\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inDebtArray\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"removePosition\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"removePositionFromCatalogue\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"positionId\\\",\\\"type\\\":\\\"uint32\\\"}],\\\"name\\\":\\\"setHoldingPosition\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"newDeviation\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"setRebalanceDeviation\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"newLock\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"setShareLockPeriod\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"payout\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"setStrategistPayoutAddress\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint64\\\",\\\"name\\\":\\\"cut\\\",\\\"type\\\":\\\"uint64\\\"}],\\\"name\\\":\\\"setStrategistPlatformCut\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"shareLockPeriod\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"index1\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"uint32\\\",\\\"name\\\":\\\"index2\\\",\\\"type\\\":\\\"uint32\\\"},{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"inDebtArray\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"swapPositions\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"symbol\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"string\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"string\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"toggle\\\",\\\"type\\\":\\\"bool\\\"}],\\\"name\\\":\\\"toggleIgnorePause\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"totalAssets\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"totalAssetsWithdrawable\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"totalSupply\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"to\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"amount\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"transfer\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"from\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"to\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"amount\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"name\\\":\\\"transferFrom\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bool\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bool\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newOwner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"transferOwnership\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"userShareLockStartTime\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"viewPositionBalances\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"contract ERC20[]\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"address[]\\\"},{\\\"internalType\\\":\\\"uint256[]\\\",\\\"name\\\":\\\"balances\\\",\\\"type\\\":\\\"uint256[]\\\"},{\\\"internalType\\\":\\\"bool[]\\\",\\\"name\\\":\\\"isDebt\\\",\\\"type\\\":\\\"bool[]\\\"}],\\\"stateMutability\\\":\\\"view\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"assets\\\",\\\"type\\\":\\\"uint256\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"receiver\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"owner\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"withdraw\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"uint256\\\",\\\"name\\\":\\\"shares\\\",\\\"type\\\":\\\"uint256\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"author\\\":\\\"crispymangoes\\\",\\\"errors\\\":{\\\"Cellar__AssetMismatch(address,address)\\\":[{\\\"params\\\":{\\\"asset\\\":\\\"address of the asset\\\",\\\"expectedAsset\\\":\\\"address of the expected asset\\\"}}],\\\"Cellar__CallToAdaptorNotAllowed(address)\\\":[{\\\"params\\\":{\\\"adaptor\\\":\\\"the adaptor address that is paused or not trusted.\\\"}}],\\\"Cellar__DebtMismatch(uint32)\\\":[{\\\"params\\\":{\\\"position\\\":\\\"the posiiton id that was mismatched\\\"}}],\\\"Cellar__DepositRestricted(uint256,uint256)\\\":[{\\\"params\\\":{\\\"assets\\\":\\\"the assets user attempted to deposit\\\",\\\"maxDeposit\\\":\\\"the max assets that can be deposited\\\"}}],\\\"Cellar__IlliquidWithdraw(address)\\\":[{\\\"params\\\":{\\\"illiquidPosition\\\":\\\"the illiquid position.\\\"}}],\\\"Cellar__IncompleteWithdraw(uint256)\\\":[{\\\"params\\\":{\\\"assetsOwed\\\":\\\"the remaining assets owed that were not withdrawn.\\\"}}],\\\"Cellar__InvalidHoldingPosition(uint32)\\\":[{\\\"params\\\":{\\\"positionId\\\":\\\"the id of the invalid position.\\\"}}],\\\"Cellar__InvalidRebalanceDeviation(uint256,uint256)\\\":[{\\\"params\\\":{\\\"max\\\":\\\"the max rebalance deviation.\\\",\\\"requested\\\":\\\"the requested rebalance deviation\\\"}}],\\\"Cellar__PositionAlreadyUsed(uint32)\\\":[{\\\"params\\\":{\\\"position\\\":\\\"id of the position\\\"}}],\\\"Cellar__PositionArrayFull(uint256)\\\":[{\\\"params\\\":{\\\"maxPositions\\\":\\\"maximum number of positions that can be used\\\"}}],\\\"Cellar__PositionNotEmpty(uint32,uint256)\\\":[{\\\"params\\\":{\\\"position\\\":\\\"address of the non-empty position\\\",\\\"sharesRemaining\\\":\\\"amount of shares remaining in the position\\\"}}],\\\"Cellar__PositionNotInCatalogue(uint32)\\\":[{\\\"params\\\":{\\\"position\\\":\\\"id of the position\\\"}}],\\\"Cellar__PositionNotUsed(uint32)\\\":[{\\\"params\\\":{\\\"position\\\":\\\"id of the position\\\"}}],\\\"Cellar__SharesAreLocked(uint256,uint256)\\\":[{\\\"params\\\":{\\\"currentBlock\\\":\\\"the current block number.\\\",\\\"timeSharesAreUnlocked\\\":\\\"time when caller can transfer/redeem shares\\\"}}],\\\"Cellar__TotalAssetDeviatedOutsideRange(uint256,uint256,uint256)\\\":[{\\\"params\\\":{\\\"assets\\\":\\\"the total assets in the cellar\\\",\\\"max\\\":\\\"the maximum allowed assets\\\",\\\"min\\\":\\\"the minimum allowed assets\\\"}}],\\\"Cellar__TotalSharesMustRemainConstant(uint256,uint256)\\\":[{\\\"params\\\":{\\\"current\\\":\\\"the current amount of total shares\\\",\\\"expected\\\":\\\"the expected amount of total shares\\\"}}]},\\\"events\\\":{\\\"PlatformFeeChanged(uint64,uint64)\\\":{\\\"params\\\":{\\\"newPlatformFee\\\":\\\"value platform fee was changed to\\\",\\\"oldPlatformFee\\\":\\\"value platform fee was changed from\\\"}},\\\"PositionAdded(uint32,uint256)\\\":{\\\"params\\\":{\\\"index\\\":\\\"index that position was added at\\\",\\\"position\\\":\\\"id of position that was added\\\"}},\\\"PositionRemoved(uint32,uint256)\\\":{\\\"params\\\":{\\\"index\\\":\\\"index that position was removed from\\\",\\\"position\\\":\\\"id of position that was removed\\\"}},\\\"PositionSwapped(uint32,uint32,uint256,uint256)\\\":{\\\"params\\\":{\\\"index1\\\":\\\"index of first position involved in the swap\\\",\\\"index2\\\":\\\"index of second position involved in the swap.\\\",\\\"newPosition1\\\":\\\"id of position (previously at index2) that replaced index1.\\\",\\\"newPosition2\\\":\\\"id of position (previously at index1) that replaced index2.\\\"}},\\\"RebalanceDeviationChanged(uint256,uint256)\\\":{\\\"params\\\":{\\\"newDeviation\\\":\\\"the new rebalance deviation\\\",\\\"oldDeviation\\\":\\\"the old rebalance deviation\\\"}},\\\"ShareLockingPeriodChanged(uint256,uint256)\\\":{\\\"params\\\":{\\\"newPeriod\\\":\\\"the new locking period\\\",\\\"oldPeriod\\\":\\\"the old locking period\\\"}},\\\"ShutdownChanged(bool)\\\":{\\\"params\\\":{\\\"isShutdown\\\":\\\"whether the cellar is shutdown\\\"}},\\\"StrategistPayoutAddressChanged(address,address)\\\":{\\\"params\\\":{\\\"newPayoutAddress\\\":\\\"value strategists payout address was changed to\\\",\\\"oldPayoutAddress\\\":\\\"value strategists payout address was changed from\\\"}},\\\"StrategistPlatformCutChanged(uint64,uint64)\\\":{\\\"params\\\":{\\\"newPlatformCut\\\":\\\"value strategist platform fee cut was changed to\\\",\\\"oldPlatformCut\\\":\\\"value strategist platform fee cut was changed from\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"addPosition(uint32,uint32,bytes,bool)\\\":{\\\"params\\\":{\\\"configurationData\\\":\\\"data used to configure how the position behaves\\\",\\\"index\\\":\\\"index at which to insert the position\\\",\\\"positionId\\\":\\\"id of position to add\\\"}},\\\"cachePriceRouter(bool)\\\":{\\\"params\\\":{\\\"checkTotalAssets\\\":\\\"If true totalAssets is checked before and after updating the price router, and is verified to be withing a +- 5% envelope. If false totalAssets is only called after updating the price router.\\\"}},\\\"callOnAdaptor((address,bytes[])[])\\\":{\\\"details\\\":\\\"There are several safety checks in this function to prevent strategists from abusing it. - `blockExternalReceiver` - `totalAssets` must not change by much - `totalShares` must remain constant - adaptors must be set up to be used with this cellarSince `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending multiple `callOnAdaptor` calls rapidly, to gradually change the share price. To mitigate this, rate limiting will be put in place on the Sommelier side.\\\"},\\\"constructor\\\":{\\\"details\\\":\\\"Owner should be set to the Gravity Bridge, which relays instructions from the Steward module to the cellars. https://github.com/PeggyJV/steward https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol\\\",\\\"params\\\":{\\\"_asset\\\":\\\"address of underlying token used for the for accounting, depositing, and withdrawing\\\",\\\"_name\\\":\\\"name of this cellar's share token\\\",\\\"_registry\\\":\\\"address of the platform's registry contract\\\",\\\"_symbol\\\":\\\"symbol of this cellar's share token\\\",\\\"params\\\":\\\"abi encode values. - _creditPositions ids of the credit positions to initialize the cellar with - _debtPositions ids of the credit positions to initialize the cellar with - _creditConfigurationData configuration data for each position - _debtConfigurationData configuration data for each position - _holdingIndex the index in _creditPositions to use as the holding position. - _strategistPayout the address to send the strategists fee shares. - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to - _protocolRiskTolerance this cellars risk tolerance for protocols it will use\\\"}},\\\"convertToAssets(uint256)\\\":{\\\"params\\\":{\\\"shares\\\":\\\"amount of shares to convert\\\"},\\\"returns\\\":{\\\"assets\\\":\\\"the shares can be exchanged for\\\"}},\\\"convertToShares(uint256)\\\":{\\\"params\\\":{\\\"assets\\\":\\\"amount of assets to convert\\\"},\\\"returns\\\":{\\\"shares\\\":\\\"the assets can be exchanged for\\\"}},\\\"deposit(uint256,address)\\\":{\\\"params\\\":{\\\"assets\\\":\\\"amount of assets deposited by user.\\\",\\\"receiver\\\":\\\"address to receive the shares.\\\"},\\\"returns\\\":{\\\"shares\\\":\\\"amount of shares given for deposit.\\\"}},\\\"initiateShutdown()\\\":{\\\"details\\\":\\\"In the case where\\\"},\\\"maxDeposit(address)\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"assets maximum amount of assets that can be deposited\\\"}},\\\"maxMint(address)\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"shares maximum amount of shares that can be minted\\\"}},\\\"maxRedeem(address)\\\":{\\\"details\\\":\\\"EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\\\",\\\"params\\\":{\\\"owner\\\":\\\"address to check maxRedeem of.\\\"},\\\"returns\\\":{\\\"_0\\\":\\\"the max amount of shares redeemable by `owner`.\\\"}},\\\"maxWithdraw(address)\\\":{\\\"details\\\":\\\"EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\\\",\\\"params\\\":{\\\"owner\\\":\\\"address to check maxWithdraw of.\\\"},\\\"returns\\\":{\\\"_0\\\":\\\"the max amount of assets withdrawable by `owner`.\\\"}},\\\"mint(uint256,address)\\\":{\\\"params\\\":{\\\"receiver\\\":\\\"address to receive the shares.\\\",\\\"shares\\\":\\\"amount of shares requested by user.\\\"},\\\"returns\\\":{\\\"assets\\\":\\\"amount of assets deposited into the cellar.\\\"}},\\\"multicall(bytes[])\\\":{\\\"details\\\":\\\"Does NOT return the function return values.\\\"},\\\"onERC721Received(address,address,uint256,bytes)\\\":{\\\"details\\\":\\\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\\\"},\\\"previewDeposit(uint256)\\\":{\\\"params\\\":{\\\"assets\\\":\\\"amount of assets to deposit\\\"},\\\"returns\\\":{\\\"shares\\\":\\\"that will be minted\\\"}},\\\"previewMint(uint256)\\\":{\\\"params\\\":{\\\"shares\\\":\\\"amount of shares to mint\\\"},\\\"returns\\\":{\\\"assets\\\":\\\"that will be deposited\\\"}},\\\"previewRedeem(uint256)\\\":{\\\"params\\\":{\\\"shares\\\":\\\"amount of shares to redeem\\\"},\\\"returns\\\":{\\\"assets\\\":\\\"that will be returned\\\"}},\\\"previewWithdraw(uint256)\\\":{\\\"params\\\":{\\\"assets\\\":\\\"amount of assets to withdraw\\\"},\\\"returns\\\":{\\\"shares\\\":\\\"that will be redeemed\\\"}},\\\"redeem(uint256,address,address)\\\":{\\\"details\\\":\\\"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\\\",\\\"params\\\":{\\\"owner\\\":\\\"address that owns the shares being redeemed\\\",\\\"receiver\\\":\\\"address that will receive withdrawn assets\\\",\\\"shares\\\":\\\"amount of shares to redeem\\\"},\\\"returns\\\":{\\\"assets\\\":\\\"equivalent value of the assets withdrawn, denominated in the cellar's asset\\\"}},\\\"removePosition(uint32,bool)\\\":{\\\"details\\\":\\\"Called by strategist.\\\",\\\"params\\\":{\\\"index\\\":\\\"index at which to remove the position\\\"}},\\\"setRebalanceDeviation(uint256)\\\":{\\\"params\\\":{\\\"newDeviation\\\":\\\"the new rebalance deviation value.\\\"}},\\\"setShareLockPeriod(uint256)\\\":{\\\"params\\\":{\\\"newLock\\\":\\\"the new lock period\\\"}},\\\"setStrategistPayoutAddress(address)\\\":{\\\"params\\\":{\\\"payout\\\":\\\"the new strategist payout address\\\"}},\\\"setStrategistPlatformCut(uint64)\\\":{\\\"params\\\":{\\\"cut\\\":\\\"the platform cut for the strategist\\\"}},\\\"swapPositions(uint32,uint32,bool)\\\":{\\\"params\\\":{\\\"inDebtArray\\\":\\\"bool indicating to switch positions in the debt array, or the credit array.\\\",\\\"index1\\\":\\\"index of first position to swap\\\",\\\"index2\\\":\\\"index of second position to swap\\\"}},\\\"totalAssets()\\\":{\\\"details\\\":\\\"EIP4626 states totalAssets needs to be inclusive of fees. Since performance fees mint shares, total assets remains unchanged, so this implementation is inclusive of fees even though it does not explicitly show it.EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws.\\\"},\\\"totalAssetsWithdrawable()\\\":{\\\"details\\\":\\\"Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws.\\\"},\\\"withdraw(uint256,address,address)\\\":{\\\"details\\\":\\\"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\\\",\\\"params\\\":{\\\"assets\\\":\\\"equivalent value of the assets withdrawn, denominated in the cellar's asset\\\",\\\"owner\\\":\\\"address that owns the shares being redeemed\\\",\\\"receiver\\\":\\\"address that will receive withdrawn assets\\\"},\\\"returns\\\":{\\\"shares\\\":\\\"amount of shares redeemed\\\"}}},\\\"stateVariables\\\":{\\\"priceRouter\\\":{\\\"details\\\":\\\"This way cellar has to \\\\\\\"opt in\\\\\\\" to price router changes.\\\"}},\\\"title\\\":\\\"Sommelier Cellar\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"errors\\\":{\\\"Cellar__AssetMismatch(address,address)\\\":[{\\\"notice\\\":\\\"Attempted an operation with an asset that was different then the one expected.\\\"}],\\\"Cellar__CallToAdaptorNotAllowed(address)\\\":[{\\\"notice\\\":\\\"Strategist attempted to use an adaptor that is either paused or is not trusted by governance.\\\"}],\\\"Cellar__CallerNotAavePool()\\\":[{\\\"notice\\\":\\\"executeOperation was not called by the Aave Pool.\\\"}],\\\"Cellar__ContractNotShutdown()\\\":[{\\\"notice\\\":\\\"Attempted action was prevented due to contract not being shutdown.\\\"}],\\\"Cellar__ContractShutdown()\\\":[{\\\"notice\\\":\\\"Attempted action was prevented due to contract being shutdown.\\\"}],\\\"Cellar__DebtMismatch(uint32)\\\":[{\\\"notice\\\":\\\"Attempted to add a position, with mismatched debt.\\\"}],\\\"Cellar__DepositRestricted(uint256,uint256)\\\":[{\\\"notice\\\":\\\"Attempted deposit more than the max deposit.\\\"}],\\\"Cellar__ExternalInitiator()\\\":[{\\\"notice\\\":\\\"External contract attempted to initiate a flash loan.\\\"}],\\\"Cellar__IlliquidWithdraw(address)\\\":[{\\\"notice\\\":\\\"Attempted to withdraw an illiquid position.\\\"}],\\\"Cellar__IncompleteWithdraw(uint256)\\\":[{\\\"notice\\\":\\\"Withdraw did not withdraw all assets.\\\"}],\\\"Cellar__InvalidFee()\\\":[{\\\"notice\\\":\\\"Attempted to change platform fee with invalid value.\\\"}],\\\"Cellar__InvalidFeeCut()\\\":[{\\\"notice\\\":\\\"Attempted to change strategist fee cut with invalid value.\\\"}],\\\"Cellar__InvalidHoldingPosition(uint32)\\\":[{\\\"notice\\\":\\\"Attempted to add an invalid holding position.\\\"}],\\\"Cellar__InvalidRebalanceDeviation(uint256,uint256)\\\":[{\\\"notice\\\":\\\"Total shares in a cellar changed when they should stay constant.\\\"}],\\\"Cellar__InvalidShareLockPeriod()\\\":[{\\\"notice\\\":\\\"Attempted to set `shareLockPeriod` to an invalid number.\\\"}],\\\"Cellar__NotApprovedToDepositOnBehalf(address)\\\":[{\\\"notice\\\":\\\"Attempted deposit on behalf of a user without being approved.\\\"}],\\\"Cellar__Paused()\\\":[{\\\"notice\\\":\\\"Attempted to interact with the cellar when it is paused.\\\"}],\\\"Cellar__PositionAlreadyUsed(uint32)\\\":[{\\\"notice\\\":\\\"Attempted to add a position that is already being used.\\\"}],\\\"Cellar__PositionArrayFull(uint256)\\\":[{\\\"notice\\\":\\\"Attempted to add a position when the position array is full.\\\"}],\\\"Cellar__PositionNotEmpty(uint32,uint256)\\\":[{\\\"notice\\\":\\\"Attempted an action on a position that is required to be empty before the action can be performed.\\\"}],\\\"Cellar__PositionNotInCatalogue(uint32)\\\":[{\\\"notice\\\":\\\"Attempted to add a position that is not in the catalogue.\\\"}],\\\"Cellar__PositionNotUsed(uint32)\\\":[{\\\"notice\\\":\\\"Attempted to make an unused position the holding position.\\\"}],\\\"Cellar__RemovingHoldingPosition()\\\":[{\\\"notice\\\":\\\"Attempted to remove the Cellars holding position.\\\"}],\\\"Cellar__SharesAreLocked(uint256,uint256)\\\":[{\\\"notice\\\":\\\"Attempted to burn shares when they are locked.\\\"}],\\\"Cellar__TotalAssetDeviatedOutsideRange(uint256,uint256,uint256)\\\":[{\\\"notice\\\":\\\"totalAssets deviated outside the range set by `allowedRebalanceDeviation`.\\\"}],\\\"Cellar__TotalSharesMustRemainConstant(uint256,uint256)\\\":[{\\\"notice\\\":\\\"Total shares in a cellar changed when they should stay constant.\\\"}],\\\"Cellar__ZeroAssets()\\\":[{\\\"notice\\\":\\\"Attempted an action with zero assets.\\\"}],\\\"Cellar__ZeroShares()\\\":[{\\\"notice\\\":\\\"Attempted an action with zero shares.\\\"}]},\\\"events\\\":{\\\"AdaptorCatalogueAltered(address,bool)\\\":{\\\"notice\\\":\\\"Emitted when Governance adds/removes an adaptor to/from the cellars catalogue.\\\"},\\\"PlatformFeeChanged(uint64,uint64)\\\":{\\\"notice\\\":\\\"Emitted when platform fees is changed.\\\"},\\\"PositionAdded(uint32,uint256)\\\":{\\\"notice\\\":\\\"Emitted when a position is added.\\\"},\\\"PositionCatalogueAltered(uint32,bool)\\\":{\\\"notice\\\":\\\"Emitted when Governance adds/removes a position to/from the cellars catalogue.\\\"},\\\"PositionRemoved(uint32,uint256)\\\":{\\\"notice\\\":\\\"Emitted when a position is removed.\\\"},\\\"PositionSwapped(uint32,uint32,uint256,uint256)\\\":{\\\"notice\\\":\\\"Emitted when the positions at two indexes are swapped.\\\"},\\\"RebalanceDeviationChanged(uint256,uint256)\\\":{\\\"notice\\\":\\\"Emitted on when the rebalance deviation is changed.\\\"},\\\"ShareLockingPeriodChanged(uint256,uint256)\\\":{\\\"notice\\\":\\\"Emitted when share locking period is changed.\\\"},\\\"ShutdownChanged(bool)\\\":{\\\"notice\\\":\\\"Emitted when cellar emergency state is changed.\\\"},\\\"StrategistPayoutAddressChanged(address,address)\\\":{\\\"notice\\\":\\\"Emitted when strategists payout address is changed.\\\"},\\\"StrategistPlatformCutChanged(uint64,uint64)\\\":{\\\"notice\\\":\\\"Emitted when strategist platform fee cut is changed.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"GRAVITY_BRIDGE_REGISTRY_SLOT()\\\":{\\\"notice\\\":\\\"Id to get the gravity bridge from the registry.\\\"},\\\"MAXIMUM_SHARE_LOCK_PERIOD()\\\":{\\\"notice\\\":\\\"Shares can be locked for at most 2 days after minting.\\\"},\\\"MAX_FEE_CUT()\\\":{\\\"notice\\\":\\\"Sets the max possible fee cut for this cellar.\\\"},\\\"MAX_PLATFORM_FEE()\\\":{\\\"notice\\\":\\\"Sets the max possible performance fee for this cellar.\\\"},\\\"MAX_POSITIONS()\\\":{\\\"notice\\\":\\\"Maximum amount of positions a cellar can have in it's credit/debt arrays.\\\"},\\\"MAX_REBALANCE_DEVIATION()\\\":{\\\"notice\\\":\\\"Stores the max possible rebalance deviation for this cellar.\\\"},\\\"MINIMUM_SHARE_LOCK_PERIOD()\\\":{\\\"notice\\\":\\\"Shares must be locked for at least 5 minutes after minting.\\\"},\\\"PRICE_ROUTER_REGISTRY_SLOT()\\\":{\\\"notice\\\":\\\"Id to get the price router from the registry.\\\"},\\\"aavePool()\\\":{\\\"notice\\\":\\\"The Aave V2 Pool contract on Ethereum Mainnet.\\\"},\\\"adaptorCatalogue(address)\\\":{\\\"notice\\\":\\\"Adaptors the strategist is approved to use without any governance intervention.\\\"},\\\"addAdaptorToCatalogue(address)\\\":{\\\"notice\\\":\\\"Allows Governance to add adaptors to this cellar's catalogue.\\\"},\\\"addPosition(uint32,uint32,bytes,bool)\\\":{\\\"notice\\\":\\\"Insert a trusted position to the list of positions used by the cellar at a given index.\\\"},\\\"addPositionToCatalogue(uint32)\\\":{\\\"notice\\\":\\\"Allows Governance to add positions to this cellar's catalogue.\\\"},\\\"allowedRebalanceDeviation()\\\":{\\\"notice\\\":\\\"The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.\\\"},\\\"blockExternalReceiver()\\\":{\\\"notice\\\":\\\"This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw).\\\"},\\\"cachePriceRouter(bool)\\\":{\\\"notice\\\":\\\"Updates the cellar to use the lastest price router in the registry.\\\"},\\\"callOnAdaptor((address,bytes[])[])\\\":{\\\"notice\\\":\\\"Allows strategists to manage their Cellar using arbitrary logic calls to adaptors.\\\"},\\\"convertToAssets(uint256)\\\":{\\\"notice\\\":\\\"The amount of assets that the cellar would exchange for the amount of shares provided.\\\"},\\\"convertToShares(uint256)\\\":{\\\"notice\\\":\\\"The amount of shares that the cellar would exchange for the amount of assets provided.\\\"},\\\"creditPositions(uint256)\\\":{\\\"notice\\\":\\\"Array of uint32s made up of cellars credit positions Ids.\\\"},\\\"debtPositions(uint256)\\\":{\\\"notice\\\":\\\"Array of uint32s made up of cellars debt positions Ids.\\\"},\\\"deposit(uint256,address)\\\":{\\\"notice\\\":\\\"Deposits assets into the cellar, and returns shares to receiver.\\\"},\\\"executeOperation(address[],uint256[],uint256[],address,bytes)\\\":{\\\"notice\\\":\\\"Allows strategist to utilize Aave flashloans while rebalancing the cellar.\\\"},\\\"feeData()\\\":{\\\"notice\\\":\\\"Stores all fee data for cellar.\\\"},\\\"forcePositionOut(uint32,uint32,bool)\\\":{\\\"notice\\\":\\\"Allows Governance to force a cellar out of a position without making ANY external calls.\\\"},\\\"getCreditPositions()\\\":{\\\"notice\\\":\\\"Get the ids of the credit positions currently used by the cellar.\\\"},\\\"getDebtPositions()\\\":{\\\"notice\\\":\\\"Get the ids of the debt positions currently used by the cellar.\\\"},\\\"getPositionAssets()\\\":{\\\"notice\\\":\\\"Get all the credit positions underlying assets.\\\"},\\\"getPositionData(uint32)\\\":{\\\"notice\\\":\\\"Get position data given position id.\\\"},\\\"holdingPosition()\\\":{\\\"notice\\\":\\\"Stores the index of the holding position in the creditPositions array.\\\"},\\\"ignorePause()\\\":{\\\"notice\\\":\\\"Pauses all user entry/exits, and strategist rebalances.\\\"},\\\"initiateShutdown()\\\":{\\\"notice\\\":\\\"Shutdown the cellar. Used in an emergency or if the cellar has been deprecated.\\\"},\\\"isPaused()\\\":{\\\"notice\\\":\\\"View function external contracts can use to see if the cellar is paused.\\\"},\\\"isPositionUsed(uint256)\\\":{\\\"notice\\\":\\\"Tell whether a position is currently used.\\\"},\\\"isShutdown()\\\":{\\\"notice\\\":\\\"Whether or not the contract is shutdown in case of an emergency.\\\"},\\\"liftShutdown()\\\":{\\\"notice\\\":\\\"Restart the cellar.\\\"},\\\"locked()\\\":{\\\"notice\\\":\\\"`locked` is public, so that the state can be checked even during view function calls.\\\"},\\\"maxDeposit(address)\\\":{\\\"notice\\\":\\\"Total amount of assets that can be deposited for a user.\\\"},\\\"maxMint(address)\\\":{\\\"notice\\\":\\\"Total amount of shares that can be minted for a user.\\\"},\\\"maxRedeem(address)\\\":{\\\"notice\\\":\\\"Returns the max amount shares redeemable by a user\\\"},\\\"maxWithdraw(address)\\\":{\\\"notice\\\":\\\"Returns the max amount withdrawable by a user inclusive of performance fees\\\"},\\\"mint(uint256,address)\\\":{\\\"notice\\\":\\\"Mints shares from the cellar, and returns shares to receiver.\\\"},\\\"multicall(bytes[])\\\":{\\\"notice\\\":\\\"Allows caller to call multiple functions in a single TX.\\\"},\\\"positionCatalogue(uint32)\\\":{\\\"notice\\\":\\\"Positions the strategist is approved to use without any governance intervention.\\\"},\\\"previewDeposit(uint256)\\\":{\\\"notice\\\":\\\"Simulate the effects of depositing assets at the current block, given current on-chain conditions.\\\"},\\\"previewMint(uint256)\\\":{\\\"notice\\\":\\\"Simulate the effects of minting shares at the current block, given current on-chain conditions.\\\"},\\\"previewRedeem(uint256)\\\":{\\\"notice\\\":\\\"Simulate the effects of redeeming shares at the current block, given current on-chain conditions.\\\"},\\\"previewWithdraw(uint256)\\\":{\\\"notice\\\":\\\"Simulate the effects of withdrawing assets at the current block, given current on-chain conditions.\\\"},\\\"priceRouter()\\\":{\\\"notice\\\":\\\"Cached price router contract.\\\"},\\\"redeem(uint256,address,address)\\\":{\\\"notice\\\":\\\"Redeem shares to withdraw assets from the cellar.\\\"},\\\"registry()\\\":{\\\"notice\\\":\\\"Address of the platform's registry contract. Used to get the latest address of modules.\\\"},\\\"removeAdaptorFromCatalogue(address)\\\":{\\\"notice\\\":\\\"Allows Governance to remove adaptors from this cellar's catalogue.\\\"},\\\"removePosition(uint32,bool)\\\":{\\\"notice\\\":\\\"Remove the position at a given index from the list of positions used by the cellar.\\\"},\\\"removePositionFromCatalogue(uint32)\\\":{\\\"notice\\\":\\\"Allows Governance to remove positions from this cellar's catalogue.\\\"},\\\"setHoldingPosition(uint32)\\\":{\\\"notice\\\":\\\"Allows owner to change the holding position.\\\"},\\\"setRebalanceDeviation(uint256)\\\":{\\\"notice\\\":\\\"Allows governance to change this cellars rebalance deviation.\\\"},\\\"setShareLockPeriod(uint256)\\\":{\\\"notice\\\":\\\"Allows share lock period to be updated.\\\"},\\\"setStrategistPayoutAddress(address)\\\":{\\\"notice\\\":\\\"Sets the Strategists payout address\\\"},\\\"setStrategistPlatformCut(uint64)\\\":{\\\"notice\\\":\\\"Sets the Strategists cut of platform fees\\\"},\\\"shareLockPeriod()\\\":{\\\"notice\\\":\\\"After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares.\\\"},\\\"swapPositions(uint32,uint32,bool)\\\":{\\\"notice\\\":\\\"Swap the positions at two given indexes.\\\"},\\\"toggleIgnorePause(bool)\\\":{\\\"notice\\\":\\\"Allows governance to choose whether or not to respect a pause.\\\"},\\\"totalAssets()\\\":{\\\"notice\\\":\\\"The total amount of assets in the cellar.\\\"},\\\"totalAssetsWithdrawable()\\\":{\\\"notice\\\":\\\"The total amount of withdrawable assets in the cellar.\\\"},\\\"transfer(address,uint256)\\\":{\\\"notice\\\":\\\"Override `transfer` to add share lock check.\\\"},\\\"transferFrom(address,address,uint256)\\\":{\\\"notice\\\":\\\"Override `transferFrom` to add share lock check.\\\"},\\\"userShareLockStartTime(address)\\\":{\\\"notice\\\":\\\"mapping that stores every users last time stamp they minted shares.\\\"},\\\"withdraw(uint256,address,address)\\\":{\\\"notice\\\":\\\"Withdraw assets from the cellar by redeeming shares.\\\"}},\\\"notice\\\":\\\"A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"src/base/Cellar.sol\\\":\\\"Cellar\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"ipfs\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":200},\\\"remappings\\\":[\\\":@chainlink/=lib/chainlink/\\\",\\\":@ds-test/=lib/forge-std/lib/ds-test/src/\\\",\\\":@forge-std/=lib/forge-std/src/\\\",\\\":@openzeppelin/=lib/openzeppelin-contracts/\\\",\\\":@solmate/=lib/solmate/src/\\\",\\\":@uniswap/v3-core/=lib/v3-core/\\\",\\\":@uniswap/v3-periphery/=lib/v3-periphery/\\\",\\\":@uniswapV3C/=lib/v3-core.git/contracts/\\\",\\\":@uniswapV3P/=lib/v3-periphery.git/contracts/\\\",\\\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\\\",\\\":ds-test/=lib/forge-std/lib/ds-test/src/\\\",\\\":forge-std/=lib/forge-std/src/\\\",\\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\\",\\\":solmate/=lib/solmate/src/\\\",\\\":v3-core.git/=lib/v3-core.git/contracts/\\\",\\\":v3-periphery.git/=lib/v3-periphery.git/contracts/\\\"]},\\\"sources\\\":{\\\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\\\":{\\\"keccak256\\\":\\\"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://f39ad60071af2c115e064ebeb1686097efa83b26da0e2c814c635538538b7465\\\",\\\"dweb:/ipfs/QmYRARVDA1XZUqZNKNnArYHWbffNeeSVZQjt67ZXKGm85a\\\"]},\\\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\\\":{\\\"keccak256\\\":\\\"0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://7c3f481f69f3ee07d6bb91b38d1cd61f9fa72de29c63d778c98956db70ecd57b\\\",\\\"dweb:/ipfs/QmPeJrNHTZF8CrXk3BgLJCamwf1dUEzHyQsMYrdd4v1NEG\\\"]},\\\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\\\":{\\\"keccak256\\\":\\\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7\\\",\\\"dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c\\\"]},\\\"lib/chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol\\\":{\\\"keccak256\\\":\\\"0x67076747c6f66d8d43472a56e72879c350056bff82e069addaf9064922863340\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://b738dba680a6fbc4afc85819743f13f5b7f4790ec8634c9894e1160327b11b6e\\\",\\\"dweb:/ipfs/Qmbv3euvQppeBm2g61khcJSRMZWi78xUWzbnjKAvDBnka4\\\"]},\\\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\\\":{\\\"keccak256\\\":\\\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\\\",\\\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\\\"]},\\\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\\\":{\\\"keccak256\\\":\\\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\\\",\\\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\\\"]},\\\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\\\":{\\\"keccak256\\\":\\\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\\\",\\\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\\\"]},\\\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\\\":{\\\"keccak256\\\":\\\"0x0108bf6a6ebd5f96678bed33a35947537263f96766131ee91461fb6485805028\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://ae2d274bf3d56a6d49a9bbd0a4871c54997a82551eb3eb1c0c39dc98698ff8bf\\\",\\\"dweb:/ipfs/QmTT7ty5DPGAmRnx94Xu3TUDYGSPDVLN2bppJAjjedrg1e\\\"]},\\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\\":{\\\"keccak256\\\":\\\"0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de\\\",\\\"dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V\\\"]},\\\"lib/openzeppelin-contracts/contracts/utils/Context.sol\\\":{\\\"keccak256\\\":\\\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\\\",\\\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\\\"]},\\\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\\\":{\\\"keccak256\\\":\\\"0x182ad835742e188a50bc98b938287d28bf74ad87d01e2bbc1d207c2ba36e1adb\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://c2ba26b6252bb52b39ffb18b2de027544619e3f71b78e5476eba52becfaae929\\\",\\\"dweb:/ipfs/Qmb7NqEzs7aWkrzpskxXCRb799XmPenZMDtpzRvNUph1Bg\\\"]},\\\"lib/solmate/src/auth/Owned.sol\\\":{\\\"keccak256\\\":\\\"0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea\\\",\\\"license\\\":\\\"AGPL-3.0-only\\\",\\\"urls\\\":[\\\"bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4\\\",\\\"dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx\\\"]},\\\"src/Registry.sol\\\":{\\\"keccak256\\\":\\\"0x72690631323f459be3da7dd7c4644a7678a509ff6fd9a76fc6f77124ba96bcb3\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://237231d6746fbf8d95ec0fc07ee1ddc0978ae77ef12fe00f445e9f22232d1108\\\",\\\"dweb:/ipfs/QmbSKScTxX8nxNnjogci32r3fRexDfFG4sH4myE85AewQp\\\"]},\\\"src/base/Cellar.sol\\\":{\\\"keccak256\\\":\\\"0x851d6f03d13fcd1e4e55d40ab04908677ef1ec92dbcaf3c02ee492602c368d67\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://0eff90da37039eb4fb743024373d46ce6ccc198b5cb5c61c628f7a160d94fd0b\\\",\\\"dweb:/ipfs/QmUoLuGxVU5UqKNUB75BxMvYnpTxxcq8ZiUskrTTx8WbJA\\\"]},\\\"src/base/ERC20.sol\\\":{\\\"keccak256\\\":\\\"0x6aeb5d5df72734774379b54cf7fdce21206275047f4fcaa536448fefb1bd7b02\\\",\\\"license\\\":\\\"AGPL-3.0-only\\\",\\\"urls\\\":[\\\"bzz-raw://e9d380b96bb23fe5e04a4a1f97e047c43dab65c9bbb69c9e0bf0def04fa042e4\\\",\\\"dweb:/ipfs/QmdNwDQXnNxbvxaAhiNDjvEdLC8qtom43H2d68NMAyrtyf\\\"]},\\\"src/base/ERC4626.sol\\\":{\\\"keccak256\\\":\\\"0x13989d2c6e0dcda91407ffb7c28a52ab627db289a4d75dd5f3e4deb219dca9e7\\\",\\\"license\\\":\\\"AGPL-3.0-only\\\",\\\"urls\\\":[\\\"bzz-raw://d493aa7fdcb779cd22f6b89089964ece46ea6d4fa0f99858cf181efb4cbee469\\\",\\\"dweb:/ipfs/QmZ2zHAHNmGi3iGcynGcPSppW97xYPh3yHDnxW7Ev7RasE\\\"]},\\\"src/base/Multicall.sol\\\":{\\\"keccak256\\\":\\\"0xcbb4381e9a730f94f98b2712167a6b369c27088d56dc1c1c45dff3b9f67626b9\\\",\\\"license\\\":\\\"GPL-2.0-or-later\\\",\\\"urls\\\":[\\\"bzz-raw://b44d36d06c372cd871596a1147f69cc4a5fee42a0619517797db1c4426cc7b8c\\\",\\\"dweb:/ipfs/QmYeevkoTG2RmUPNzjikoJwp4SQkdSs9iPj7hjQh2Y9e5K\\\"]},\\\"src/base/SafeTransferLib.sol\\\":{\\\"keccak256\\\":\\\"0xb57fc6788a996b929a66b113fc47e5819778ce05e9f29beb9dd9ab2e26b22324\\\",\\\"license\\\":\\\"AGPL-3.0-only\\\",\\\"urls\\\":[\\\"bzz-raw://5dbce65cf972cbb4ea1173b4590ccbbdd134c24ad144484d2b9eb3006fdb860a\\\",\\\"dweb:/ipfs/QmeRkh21aTiZ9kiFr8grzFDzJvbydWeowZEBkG5kxtfQN3\\\"]},\\\"src/interfaces/IMulticall.sol\\\":{\\\"keccak256\\\":\\\"0xd10f58af0778cfc7f3758154066fc0ebbd3e360b1a6959c283ccf7c2a9e9634e\\\",\\\"license\\\":\\\"GPL-2.0-or-later\\\",\\\"urls\\\":[\\\"bzz-raw://b218fd6c1571e3a16e8dc75f0237f797905b9a449d523e48d9dcb99473ed6ba0\\\",\\\"dweb:/ipfs/Qmet1GzEJ3Fq1FbKhr3MNFb8LpUkx37ynFCvoFKjkmBCU5\\\"]},\\\"src/interfaces/external/IAaveToken.sol\\\":{\\\"keccak256\\\":\\\"0x77cd64637e4c0fd379b2d4d826bcd9f64fc706a291ce77d023f693d1eb8e45d8\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://e87630603401ff3374cb610b765e46a3a235ef294fab212cf3116a35db7c4d58\\\",\\\"dweb:/ipfs/Qma8awSuYptmpBsWUMz9NZBogVRtVQwXF5cvfsVWpNKhc3\\\"]},\\\"src/interfaces/external/IChainlinkAggregator.sol\\\":{\\\"keccak256\\\":\\\"0x5fc642cff679c1cc6e93b5eadd2089b6adb85a1a8c46106388c836a1447e228d\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://9f6a5dc12a8d3c06463eb6ed638349fd0502d7fedb75da873f888416755ea3b2\\\",\\\"dweb:/ipfs/QmdDnsLaaGvKKxuvdGTiroKrXMP3eW75GjSW3HK7GySfVs\\\"]},\\\"src/interfaces/external/ICurvePool.sol\\\":{\\\"keccak256\\\":\\\"0x9ae71865252aeca89fd6c74013eded1d8029eccc46e3604291be16e97b89a5da\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://f504248ab846844bcd771226f7b2984455ddcc746357924fce50a41b65eec9e2\\\",\\\"dweb:/ipfs/QmQVe1VZUgxUab9ocsbrX42Ust3hs83BU3bpA1j6Cx1xo6\\\"]},\\\"src/interfaces/external/IGravity.sol\\\":{\\\"keccak256\\\":\\\"0xb862f0644274b9c268f508e9dc880770962b9095f340695a97a1cb2eb9789a11\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://533a9626cafd2260be6aa9cd9fbe305eb60e4208e43119c17ac0d33d41d07c51\\\",\\\"dweb:/ipfs/QmdmsXd9oozXdmCP4Fyt59VtKqm1spMgtU21LeuS85nG4c\\\"]},\\\"src/interfaces/external/IUniswapV2Router02.sol\\\":{\\\"keccak256\\\":\\\"0xee672165cfe63278b41b7e9c0ae34ad18d75f432c6c5583e9940c207a1a2464f\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://10443d195fd79197bb27b110345d5cef5b49fc1acff5e82164abd8cd04cbf47a\\\",\\\"dweb:/ipfs/QmNnVhv7YNuMWUS7S1kDpZLAcoKdmSm9ADwGoxL5wgzTGo\\\"]},\\\"src/interfaces/external/IUniswapV3Router.sol\\\":{\\\"keccak256\\\":\\\"0x2c8578bd46f2de289ca1eb8c7a5c4412f3abdc6d61acbb07ec565ff1e5e80355\\\",\\\"license\\\":\\\"GPL-2.0-or-later\\\",\\\"urls\\\":[\\\"bzz-raw://f2b82a6d1fc71e09611d80dce96286f0546d1629bdee4e3686d6d528473187fd\\\",\\\"dweb:/ipfs/QmciPSKvHDjnFHRtjDwmdoiihwtDCFRZu1wfjnxuhYivMK\\\"]},\\\"src/modules/adaptors/BaseAdaptor.sol\\\":{\\\"keccak256\\\":\\\"0xb45700da63110e41cbb1879c3d261763644bc851effa798721cf7eca3e039f9a\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://7810084abb53310d5d50f5ca55557e9dcdc8fef6c987e55d82a7748aad467e27\\\",\\\"dweb:/ipfs/QmaieqMfgwWJvFy8q3jVrx8Fifo6M9UZM8cBjpmyNFPc5j\\\"]},\\\"src/modules/price-router/PriceRouter.sol\\\":{\\\"keccak256\\\":\\\"0x3d0fb1c107cfbd5b72660b548a9749dfd0d07d9a0b5abdf554d593ee00569550\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://f90a60a3097007a1dcd2871db79b0df74cf2a18de5126fc2bd2896f2715e93af\\\",\\\"dweb:/ipfs/QmTDqnNN9Rv29MYHCAzZsKzsDbTBMYYQi17VEwhmbE6KYC\\\"]},\\\"src/modules/swap-router/SwapRouter.sol\\\":{\\\"keccak256\\\":\\\"0x2cc9c40333f0cb43d937124d8db088334e48280c8af2b9ebef7675daf167eb80\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://87efec51915ae91561e3ee7ea97f3a0daff4826c0f5974ba404f4fa25aa46818\\\",\\\"dweb:/ipfs/QmSig68SbFz12nvm3MkLVvtyKQMFX8W1tMNqn6RCNhAVGr\\\"]},\\\"src/utils/Math.sol\\\":{\\\"keccak256\\\":\\\"0xdec791a31325162117ed7856d7042f3f58885d29044a5ab7fa266a68551c485f\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://87be5c0da99226925af33c0121802fc009ddee39becdcce2e60db01813bc8312\\\",\\\"dweb:/ipfs/QmXxgS5tfWBQF5pYHoX5HMbcRMW27iTALZGKyyVuAi7A8r\\\"]},\\\"src/utils/Uint32Array.sol\\\":{\\\"keccak256\\\":\\\"0x418cd655203ebf671b76cbae3a1594c44356b5ca91c9f9e7eb5de07013e300d9\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"urls\\\":[\\\"bzz-raw://b31b9db2d85bd7c41949307ef37903ff347f57b21f4b8d81a637dbfc1deed944\\\",\\\"dweb:/ipfs/QmScY9Jm2rsihu7QToNYuxLWADjmRjwxbScEGRwvXK29p3\\\"]}},\\\"version\\\":1}\",\n \"metadata\": {\n \"compiler\": {\n \"version\": \"0.8.16+commit.07a7930e\"\n },\n \"language\": \"Solidity\",\n \"output\": {\n \"abi\": [\n {\n \"inputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"_registry\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract ERC20\",\n \"name\": \"_asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"_name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"_symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"expectedAsset\",\n \"type\": \"address\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__AssetMismatch\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__CallToAdaptorNotAllowed\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__CallerNotAavePool\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__ContractNotShutdown\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__ContractShutdown\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__DebtMismatch\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxDeposit\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__DepositRestricted\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__ExternalInitiator\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"illiquidPosition\",\n \"type\": \"address\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__IlliquidWithdraw\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetsOwed\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__IncompleteWithdraw\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__InvalidFee\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__InvalidFeeCut\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__InvalidHoldingPosition\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"requested\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__InvalidRebalanceDeviation\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__InvalidShareLockPeriod\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"depositor\",\n \"type\": \"address\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__NotApprovedToDepositOnBehalf\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__Paused\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__PositionAlreadyUsed\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxPositions\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__PositionArrayFull\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"sharesRemaining\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__PositionNotEmpty\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__PositionNotInCatalogue\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__PositionNotUsed\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__RemovingHoldingPosition\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"timeSharesAreUnlocked\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentBlock\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__SharesAreLocked\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"min\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"current\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expected\",\n \"type\": \"uint256\"\n }\n ],\n \"type\": \"error\",\n \"name\": \"Cellar__TotalSharesMustRemainConstant\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__ZeroAssets\"\n },\n {\n \"inputs\": [],\n \"type\": \"error\",\n \"name\": \"Cellar__ZeroShares\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\",\n \"indexed\": false\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"AdaptorCalled\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\",\n \"indexed\": false\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"AdaptorCatalogueAltered\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"Approval\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"Deposit\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true\n }\n ],\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformFee\",\n \"type\": \"uint64\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformFee\",\n \"type\": \"uint64\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"PlatformFeeChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"PositionAdded\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\",\n \"indexed\": false\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"PositionCatalogueAltered\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"PositionRemoved\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"newPosition1\",\n \"type\": \"uint32\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"newPosition2\",\n \"type\": \"uint32\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index1\",\n \"type\": \"uint256\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index2\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"PositionSwapped\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"oldDeviation\",\n \"type\": \"uint256\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"RebalanceDeviationChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"oldPeriod\",\n \"type\": \"uint256\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"newPeriod\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"ShareLockingPeriodChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"isShutdown\",\n \"type\": \"bool\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"ShutdownChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"oldPayoutAddress\",\n \"type\": \"address\",\n \"indexed\": false\n },\n {\n \"internalType\": \"address\",\n \"name\": \"newPayoutAddress\",\n \"type\": \"address\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"StrategistPayoutAddressChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformCut\",\n \"type\": \"uint64\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformCut\",\n \"type\": \"uint64\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"StrategistPlatformCutChanged\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"Transfer\",\n \"anonymous\": false\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\",\n \"indexed\": true\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\",\n \"indexed\": false\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\",\n \"indexed\": false\n }\n ],\n \"type\": \"event\",\n \"name\": \"Withdraw\",\n \"anonymous\": false\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"GRAVITY_BRIDGE_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MAX_FEE_CUT\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MAX_PLATFORM_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MAX_POSITIONS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"MINIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"aavePool\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"adaptorCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"addAdaptorToCatalogue\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"addPosition\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"addPositionToCatalogue\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"allowedRebalanceDeviation\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"asset\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"blockExternalReceiver\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"checkTotalAssets\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"cachePriceRouter\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"struct Cellar.AdaptorCall[]\",\n \"name\": \"data\",\n \"type\": \"tuple[]\",\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"callData\",\n \"type\": \"bytes[]\"\n }\n ]\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"callOnAdaptor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"convertToAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"convertToShares\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"creditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"debtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"decimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"deposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"premiums\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"initiator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"executeOperation\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"feeData\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"strategistPlatformCut\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"platformFee\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"lastAccrual\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"strategistPayoutAddress\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"forcePositionOut\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"getCreditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"getDebtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"getPositionAssets\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"getPositionData\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isDebt\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"adaptorData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"holdingPosition\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"ignorePause\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"initiateShutdown\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"isPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"isPositionUsed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"isShutdown\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"liftShutdown\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"locked\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"maxDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"maxMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"maxRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"maxWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"mint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"multicall\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"nonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"onERC721Received\",\n \"outputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"\",\n \"type\": \"bytes4\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"permit\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"positionCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"previewDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"previewMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"previewRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"previewWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"priceRouter\",\n \"outputs\": [\n {\n \"internalType\": \"contract PriceRouter\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"redeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"registry\",\n \"outputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"removeAdaptorFromCatalogue\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"removePosition\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"removePositionFromCatalogue\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"setHoldingPosition\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"setRebalanceDeviation\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newLock\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"setShareLockPeriod\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"payout\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"setStrategistPayoutAddress\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"cut\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"setStrategistPlatformCut\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"shareLockPeriod\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index1\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"index2\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"swapPositions\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"toggle\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"toggleIgnorePause\"\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"totalAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"totalAssetsWithdrawable\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"transfer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"transferFrom\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"transferOwnership\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"userShareLockStartTime\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ]\n },\n {\n \"inputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\",\n \"name\": \"viewPositionBalances\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"balances\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"bool[]\",\n \"name\": \"isDebt\",\n \"type\": \"bool[]\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\",\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ]\n }\n ],\n \"devdoc\": {\n \"kind\": \"dev\",\n \"methods\": {\n \"addPosition(uint32,uint32,bytes,bool)\": {\n \"params\": {\n \"configurationData\": \"data used to configure how the position behaves\",\n \"index\": \"index at which to insert the position\",\n \"positionId\": \"id of position to add\"\n }\n },\n \"cachePriceRouter(bool)\": {\n \"params\": {\n \"checkTotalAssets\": \"If true totalAssets is checked before and after updating the price router, and is verified to be withing a +- 5% envelope. If false totalAssets is only called after updating the price router.\"\n }\n },\n \"callOnAdaptor((address,bytes[])[])\": {\n \"details\": \"There are several safety checks in this function to prevent strategists from abusing it. - `blockExternalReceiver` - `totalAssets` must not change by much - `totalShares` must remain constant - adaptors must be set up to be used with this cellarSince `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending multiple `callOnAdaptor` calls rapidly, to gradually change the share price. To mitigate this, rate limiting will be put in place on the Sommelier side.\"\n },\n \"constructor\": {\n \"details\": \"Owner should be set to the Gravity Bridge, which relays instructions from the Steward module to the cellars. https://github.com/PeggyJV/steward https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol\",\n \"params\": {\n \"_asset\": \"address of underlying token used for the for accounting, depositing, and withdrawing\",\n \"_name\": \"name of this cellar's share token\",\n \"_registry\": \"address of the platform's registry contract\",\n \"_symbol\": \"symbol of this cellar's share token\",\n \"params\": \"abi encode values. - _creditPositions ids of the credit positions to initialize the cellar with - _debtPositions ids of the credit positions to initialize the cellar with - _creditConfigurationData configuration data for each position - _debtConfigurationData configuration data for each position - _holdingIndex the index in _creditPositions to use as the holding position. - _strategistPayout the address to send the strategists fee shares. - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to - _protocolRiskTolerance this cellars risk tolerance for protocols it will use\"\n }\n },\n \"convertToAssets(uint256)\": {\n \"params\": {\n \"shares\": \"amount of shares to convert\"\n },\n \"returns\": {\n \"assets\": \"the shares can be exchanged for\"\n }\n },\n \"convertToShares(uint256)\": {\n \"params\": {\n \"assets\": \"amount of assets to convert\"\n },\n \"returns\": {\n \"shares\": \"the assets can be exchanged for\"\n }\n },\n \"deposit(uint256,address)\": {\n \"params\": {\n \"assets\": \"amount of assets deposited by user.\",\n \"receiver\": \"address to receive the shares.\"\n },\n \"returns\": {\n \"shares\": \"amount of shares given for deposit.\"\n }\n },\n \"initiateShutdown()\": {\n \"details\": \"In the case where\"\n },\n \"maxDeposit(address)\": {\n \"returns\": {\n \"_0\": \"assets maximum amount of assets that can be deposited\"\n }\n },\n \"maxMint(address)\": {\n \"returns\": {\n \"_0\": \"shares maximum amount of shares that can be minted\"\n }\n },\n \"maxRedeem(address)\": {\n \"details\": \"EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\",\n \"params\": {\n \"owner\": \"address to check maxRedeem of.\"\n },\n \"returns\": {\n \"_0\": \"the max amount of shares redeemable by `owner`.\"\n }\n },\n \"maxWithdraw(address)\": {\n \"details\": \"EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.\",\n \"params\": {\n \"owner\": \"address to check maxWithdraw of.\"\n },\n \"returns\": {\n \"_0\": \"the max amount of assets withdrawable by `owner`.\"\n }\n },\n \"mint(uint256,address)\": {\n \"params\": {\n \"receiver\": \"address to receive the shares.\",\n \"shares\": \"amount of shares requested by user.\"\n },\n \"returns\": {\n \"assets\": \"amount of assets deposited into the cellar.\"\n }\n },\n \"multicall(bytes[])\": {\n \"details\": \"Does NOT return the function return values.\"\n },\n \"onERC721Received(address,address,uint256,bytes)\": {\n \"details\": \"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"\n },\n \"previewDeposit(uint256)\": {\n \"params\": {\n \"assets\": \"amount of assets to deposit\"\n },\n \"returns\": {\n \"shares\": \"that will be minted\"\n }\n },\n \"previewMint(uint256)\": {\n \"params\": {\n \"shares\": \"amount of shares to mint\"\n },\n \"returns\": {\n \"assets\": \"that will be deposited\"\n }\n },\n \"previewRedeem(uint256)\": {\n \"params\": {\n \"shares\": \"amount of shares to redeem\"\n },\n \"returns\": {\n \"assets\": \"that will be returned\"\n }\n },\n \"previewWithdraw(uint256)\": {\n \"params\": {\n \"assets\": \"amount of assets to withdraw\"\n },\n \"returns\": {\n \"shares\": \"that will be redeemed\"\n }\n },\n \"redeem(uint256,address,address)\": {\n \"details\": \"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\",\n \"params\": {\n \"owner\": \"address that owns the shares being redeemed\",\n \"receiver\": \"address that will receive withdrawn assets\",\n \"shares\": \"amount of shares to redeem\"\n },\n \"returns\": {\n \"assets\": \"equivalent value of the assets withdrawn, denominated in the cellar's asset\"\n }\n },\n \"removePosition(uint32,bool)\": {\n \"details\": \"Called by strategist.\",\n \"params\": {\n \"index\": \"index at which to remove the position\"\n }\n },\n \"setRebalanceDeviation(uint256)\": {\n \"params\": {\n \"newDeviation\": \"the new rebalance deviation value.\"\n }\n },\n \"setShareLockPeriod(uint256)\": {\n \"params\": {\n \"newLock\": \"the new lock period\"\n }\n },\n \"setStrategistPayoutAddress(address)\": {\n \"params\": {\n \"payout\": \"the new strategist payout address\"\n }\n },\n \"setStrategistPlatformCut(uint64)\": {\n \"params\": {\n \"cut\": \"the platform cut for the strategist\"\n }\n },\n \"swapPositions(uint32,uint32,bool)\": {\n \"params\": {\n \"inDebtArray\": \"bool indicating to switch positions in the debt array, or the credit array.\",\n \"index1\": \"index of first position to swap\",\n \"index2\": \"index of second position to swap\"\n }\n },\n \"totalAssets()\": {\n \"details\": \"EIP4626 states totalAssets needs to be inclusive of fees. Since performance fees mint shares, total assets remains unchanged, so this implementation is inclusive of fees even though it does not explicitly show it.EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert so it does NOT conform to ERC4626 standards.Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws.\"\n },\n \"totalAssetsWithdrawable()\": {\n \"details\": \"Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws.\"\n },\n \"withdraw(uint256,address,address)\": {\n \"details\": \"Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver. Since there are no swaps involved in this function, the receiver may receive multiple assets. The value of all the assets returned will be equal to the amount defined by `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets` is 1000, then the receiver will receive $1000 worth of assets in either one or many tokens).\",\n \"params\": {\n \"assets\": \"equivalent value of the assets withdrawn, denominated in the cellar's asset\",\n \"owner\": \"address that owns the shares being redeemed\",\n \"receiver\": \"address that will receive withdrawn assets\"\n },\n \"returns\": {\n \"shares\": \"amount of shares redeemed\"\n }\n }\n },\n \"version\": 1\n },\n \"userdoc\": {\n \"kind\": \"user\",\n \"methods\": {\n \"GRAVITY_BRIDGE_REGISTRY_SLOT()\": {\n \"notice\": \"Id to get the gravity bridge from the registry.\"\n },\n \"MAXIMUM_SHARE_LOCK_PERIOD()\": {\n \"notice\": \"Shares can be locked for at most 2 days after minting.\"\n },\n \"MAX_FEE_CUT()\": {\n \"notice\": \"Sets the max possible fee cut for this cellar.\"\n },\n \"MAX_PLATFORM_FEE()\": {\n \"notice\": \"Sets the max possible performance fee for this cellar.\"\n },\n \"MAX_POSITIONS()\": {\n \"notice\": \"Maximum amount of positions a cellar can have in it's credit/debt arrays.\"\n },\n \"MAX_REBALANCE_DEVIATION()\": {\n \"notice\": \"Stores the max possible rebalance deviation for this cellar.\"\n },\n \"MINIMUM_SHARE_LOCK_PERIOD()\": {\n \"notice\": \"Shares must be locked for at least 5 minutes after minting.\"\n },\n \"PRICE_ROUTER_REGISTRY_SLOT()\": {\n \"notice\": \"Id to get the price router from the registry.\"\n },\n \"aavePool()\": {\n \"notice\": \"The Aave V2 Pool contract on Ethereum Mainnet.\"\n },\n \"adaptorCatalogue(address)\": {\n \"notice\": \"Adaptors the strategist is approved to use without any governance intervention.\"\n },\n \"addAdaptorToCatalogue(address)\": {\n \"notice\": \"Allows Governance to add adaptors to this cellar's catalogue.\"\n },\n \"addPosition(uint32,uint32,bytes,bool)\": {\n \"notice\": \"Insert a trusted position to the list of positions used by the cellar at a given index.\"\n },\n \"addPositionToCatalogue(uint32)\": {\n \"notice\": \"Allows Governance to add positions to this cellar's catalogue.\"\n },\n \"allowedRebalanceDeviation()\": {\n \"notice\": \"The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.\"\n },\n \"blockExternalReceiver()\": {\n \"notice\": \"This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw).\"\n },\n \"cachePriceRouter(bool)\": {\n \"notice\": \"Updates the cellar to use the lastest price router in the registry.\"\n },\n \"callOnAdaptor((address,bytes[])[])\": {\n \"notice\": \"Allows strategists to manage their Cellar using arbitrary logic calls to adaptors.\"\n },\n \"convertToAssets(uint256)\": {\n \"notice\": \"The amount of assets that the cellar would exchange for the amount of shares provided.\"\n },\n \"convertToShares(uint256)\": {\n \"notice\": \"The amount of shares that the cellar would exchange for the amount of assets provided.\"\n },\n \"creditPositions(uint256)\": {\n \"notice\": \"Array of uint32s made up of cellars credit positions Ids.\"\n },\n \"debtPositions(uint256)\": {\n \"notice\": \"Array of uint32s made up of cellars debt positions Ids.\"\n },\n \"deposit(uint256,address)\": {\n \"notice\": \"Deposits assets into the cellar, and returns shares to receiver.\"\n },\n \"executeOperation(address[],uint256[],uint256[],address,bytes)\": {\n \"notice\": \"Allows strategist to utilize Aave flashloans while rebalancing the cellar.\"\n },\n \"feeData()\": {\n \"notice\": \"Stores all fee data for cellar.\"\n },\n \"forcePositionOut(uint32,uint32,bool)\": {\n \"notice\": \"Allows Governance to force a cellar out of a position without making ANY external calls.\"\n },\n \"getCreditPositions()\": {\n \"notice\": \"Get the ids of the credit positions currently used by the cellar.\"\n },\n \"getDebtPositions()\": {\n \"notice\": \"Get the ids of the debt positions currently used by the cellar.\"\n },\n \"getPositionAssets()\": {\n \"notice\": \"Get all the credit positions underlying assets.\"\n },\n \"getPositionData(uint32)\": {\n \"notice\": \"Get position data given position id.\"\n },\n \"holdingPosition()\": {\n \"notice\": \"Stores the index of the holding position in the creditPositions array.\"\n },\n \"ignorePause()\": {\n \"notice\": \"Pauses all user entry/exits, and strategist rebalances.\"\n },\n \"initiateShutdown()\": {\n \"notice\": \"Shutdown the cellar. Used in an emergency or if the cellar has been deprecated.\"\n },\n \"isPaused()\": {\n \"notice\": \"View function external contracts can use to see if the cellar is paused.\"\n },\n \"isPositionUsed(uint256)\": {\n \"notice\": \"Tell whether a position is currently used.\"\n },\n \"isShutdown()\": {\n \"notice\": \"Whether or not the contract is shutdown in case of an emergency.\"\n },\n \"liftShutdown()\": {\n \"notice\": \"Restart the cellar.\"\n },\n \"locked()\": {\n \"notice\": \"`locked` is public, so that the state can be checked even during view function calls.\"\n },\n \"maxDeposit(address)\": {\n \"notice\": \"Total amount of assets that can be deposited for a user.\"\n },\n \"maxMint(address)\": {\n \"notice\": \"Total amount of shares that can be minted for a user.\"\n },\n \"maxRedeem(address)\": {\n \"notice\": \"Returns the max amount shares redeemable by a user\"\n },\n \"maxWithdraw(address)\": {\n \"notice\": \"Returns the max amount withdrawable by a user inclusive of performance fees\"\n },\n \"mint(uint256,address)\": {\n \"notice\": \"Mints shares from the cellar, and returns shares to receiver.\"\n },\n \"multicall(bytes[])\": {\n \"notice\": \"Allows caller to call multiple functions in a single TX.\"\n },\n \"positionCatalogue(uint32)\": {\n \"notice\": \"Positions the strategist is approved to use without any governance intervention.\"\n },\n \"previewDeposit(uint256)\": {\n \"notice\": \"Simulate the effects of depositing assets at the current block, given current on-chain conditions.\"\n },\n \"previewMint(uint256)\": {\n \"notice\": \"Simulate the effects of minting shares at the current block, given current on-chain conditions.\"\n },\n \"previewRedeem(uint256)\": {\n \"notice\": \"Simulate the effects of redeeming shares at the current block, given current on-chain conditions.\"\n },\n \"previewWithdraw(uint256)\": {\n \"notice\": \"Simulate the effects of withdrawing assets at the current block, given current on-chain conditions.\"\n },\n \"priceRouter()\": {\n \"notice\": \"Cached price router contract.\"\n },\n \"redeem(uint256,address,address)\": {\n \"notice\": \"Redeem shares to withdraw assets from the cellar.\"\n },\n \"registry()\": {\n \"notice\": \"Address of the platform's registry contract. Used to get the latest address of modules.\"\n },\n \"removeAdaptorFromCatalogue(address)\": {\n \"notice\": \"Allows Governance to remove adaptors from this cellar's catalogue.\"\n },\n \"removePosition(uint32,bool)\": {\n \"notice\": \"Remove the position at a given index from the list of positions used by the cellar.\"\n },\n \"removePositionFromCatalogue(uint32)\": {\n \"notice\": \"Allows Governance to remove positions from this cellar's catalogue.\"\n },\n \"setHoldingPosition(uint32)\": {\n \"notice\": \"Allows owner to change the holding position.\"\n },\n \"setRebalanceDeviation(uint256)\": {\n \"notice\": \"Allows governance to change this cellars rebalance deviation.\"\n },\n \"setShareLockPeriod(uint256)\": {\n \"notice\": \"Allows share lock period to be updated.\"\n },\n \"setStrategistPayoutAddress(address)\": {\n \"notice\": \"Sets the Strategists payout address\"\n },\n \"setStrategistPlatformCut(uint64)\": {\n \"notice\": \"Sets the Strategists cut of platform fees\"\n },\n \"shareLockPeriod()\": {\n \"notice\": \"After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares.\"\n },\n \"swapPositions(uint32,uint32,bool)\": {\n \"notice\": \"Swap the positions at two given indexes.\"\n },\n \"toggleIgnorePause(bool)\": {\n \"notice\": \"Allows governance to choose whether or not to respect a pause.\"\n },\n \"totalAssets()\": {\n \"notice\": \"The total amount of assets in the cellar.\"\n },\n \"totalAssetsWithdrawable()\": {\n \"notice\": \"The total amount of withdrawable assets in the cellar.\"\n },\n \"transfer(address,uint256)\": {\n \"notice\": \"Override `transfer` to add share lock check.\"\n },\n \"transferFrom(address,address,uint256)\": {\n \"notice\": \"Override `transferFrom` to add share lock check.\"\n },\n \"userShareLockStartTime(address)\": {\n \"notice\": \"mapping that stores every users last time stamp they minted shares.\"\n },\n \"withdraw(uint256,address,address)\": {\n \"notice\": \"Withdraw assets from the cellar by redeeming shares.\"\n }\n },\n \"version\": 1\n }\n },\n \"settings\": {\n \"remappings\": [\n \":@chainlink/=lib/chainlink/\",\n \":@ds-test/=lib/forge-std/lib/ds-test/src/\",\n \":@forge-std/=lib/forge-std/src/\",\n \":@openzeppelin/=lib/openzeppelin-contracts/\",\n \":@solmate/=lib/solmate/src/\",\n \":@uniswap/v3-core/=lib/v3-core/\",\n \":@uniswap/v3-periphery/=lib/v3-periphery/\",\n \":@uniswapV3C/=lib/v3-core.git/contracts/\",\n \":@uniswapV3P/=lib/v3-periphery.git/contracts/\",\n \":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\n \":ds-test/=lib/forge-std/lib/ds-test/src/\",\n \":forge-std/=lib/forge-std/src/\",\n \":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\n \":solmate/=lib/solmate/src/\",\n \":v3-core.git/=lib/v3-core.git/contracts/\",\n \":v3-periphery.git/=lib/v3-periphery.git/contracts/\"\n ],\n \"optimizer\": {\n \"enabled\": true,\n \"runs\": 200\n },\n \"metadata\": {\n \"bytecodeHash\": \"ipfs\"\n },\n \"compilationTarget\": {\n \"src/base/Cellar.sol\": \"Cellar\"\n },\n \"libraries\": {}\n },\n \"sources\": {\n \"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\": {\n \"keccak256\": \"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\",\n \"urls\": [\n \"bzz-raw://f39ad60071af2c115e064ebeb1686097efa83b26da0e2c814c635538538b7465\",\n \"dweb:/ipfs/QmYRARVDA1XZUqZNKNnArYHWbffNeeSVZQjt67ZXKGm85a\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\": {\n \"keccak256\": \"0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2\",\n \"urls\": [\n \"bzz-raw://7c3f481f69f3ee07d6bb91b38d1cd61f9fa72de29c63d778c98956db70ecd57b\",\n \"dweb:/ipfs/QmPeJrNHTZF8CrXk3BgLJCamwf1dUEzHyQsMYrdd4v1NEG\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\": {\n \"keccak256\": \"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\n \"urls\": [\n \"bzz-raw://b3beaa37ee61e4ab615e250fbf01601ae481de843fd0ef55e6b44fd9d5fff8a7\",\n \"dweb:/ipfs/QmeZUVwd26LzK4Mfp8Zba5JbQNkZFfTzFu1A6FVMMZDg9c\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol\": {\n \"keccak256\": \"0x67076747c6f66d8d43472a56e72879c350056bff82e069addaf9064922863340\",\n \"urls\": [\n \"bzz-raw://b738dba680a6fbc4afc85819743f13f5b7f4790ec8634c9894e1160327b11b6e\",\n \"dweb:/ipfs/Qmbv3euvQppeBm2g61khcJSRMZWi78xUWzbnjKAvDBnka4\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/access/Ownable.sol\": {\n \"keccak256\": \"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\n \"urls\": [\n \"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\n \"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\": {\n \"keccak256\": \"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\n \"urls\": [\n \"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\n \"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\": {\n \"keccak256\": \"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\n \"urls\": [\n \"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\n \"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\": {\n \"keccak256\": \"0x0108bf6a6ebd5f96678bed33a35947537263f96766131ee91461fb6485805028\",\n \"urls\": [\n \"bzz-raw://ae2d274bf3d56a6d49a9bbd0a4871c54997a82551eb3eb1c0c39dc98698ff8bf\",\n \"dweb:/ipfs/QmTT7ty5DPGAmRnx94Xu3TUDYGSPDVLN2bppJAjjedrg1e\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/utils/Address.sol\": {\n \"keccak256\": \"0xb94eac067c85cd79a4195c0a1f4a878e9827329045c12475a0199f1ae17b9700\",\n \"urls\": [\n \"bzz-raw://2ad84b5dbf40ba9e944cc25bd0a98c51bafd49cff30efe5ef5aef921a70081de\",\n \"dweb:/ipfs/Qme8iCeqe9VdNgWktTTsSxUfHcJEXuvPaJpshWDzoWj56V\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/utils/Context.sol\": {\n \"keccak256\": \"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\n \"urls\": [\n \"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\n \"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\": {\n \"keccak256\": \"0x182ad835742e188a50bc98b938287d28bf74ad87d01e2bbc1d207c2ba36e1adb\",\n \"urls\": [\n \"bzz-raw://c2ba26b6252bb52b39ffb18b2de027544619e3f71b78e5476eba52becfaae929\",\n \"dweb:/ipfs/Qmb7NqEzs7aWkrzpskxXCRb799XmPenZMDtpzRvNUph1Bg\"\n ],\n \"license\": \"MIT\"\n },\n \"lib/solmate/src/auth/Owned.sol\": {\n \"keccak256\": \"0xfedb27d14c508342c33eb067c9a02eabcdb0f9dcf93b04ded1001f580d12d0ea\",\n \"urls\": [\n \"bzz-raw://1ff52bbee698b9cf9e4574615e6550be0887ccf355f6571e23d6f25b332e79b4\",\n \"dweb:/ipfs/QmVorA2apojVRStzS7h8aFccR3Uv32G6HVtBtFHZrE7YXx\"\n ],\n \"license\": \"AGPL-3.0-only\"\n },\n \"src/Registry.sol\": {\n \"keccak256\": \"0x72690631323f459be3da7dd7c4644a7678a509ff6fd9a76fc6f77124ba96bcb3\",\n \"urls\": [\n \"bzz-raw://237231d6746fbf8d95ec0fc07ee1ddc0978ae77ef12fe00f445e9f22232d1108\",\n \"dweb:/ipfs/QmbSKScTxX8nxNnjogci32r3fRexDfFG4sH4myE85AewQp\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/base/Cellar.sol\": {\n \"keccak256\": \"0x851d6f03d13fcd1e4e55d40ab04908677ef1ec92dbcaf3c02ee492602c368d67\",\n \"urls\": [\n \"bzz-raw://0eff90da37039eb4fb743024373d46ce6ccc198b5cb5c61c628f7a160d94fd0b\",\n \"dweb:/ipfs/QmUoLuGxVU5UqKNUB75BxMvYnpTxxcq8ZiUskrTTx8WbJA\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/base/ERC20.sol\": {\n \"keccak256\": \"0x6aeb5d5df72734774379b54cf7fdce21206275047f4fcaa536448fefb1bd7b02\",\n \"urls\": [\n \"bzz-raw://e9d380b96bb23fe5e04a4a1f97e047c43dab65c9bbb69c9e0bf0def04fa042e4\",\n \"dweb:/ipfs/QmdNwDQXnNxbvxaAhiNDjvEdLC8qtom43H2d68NMAyrtyf\"\n ],\n \"license\": \"AGPL-3.0-only\"\n },\n \"src/base/ERC4626.sol\": {\n \"keccak256\": \"0x13989d2c6e0dcda91407ffb7c28a52ab627db289a4d75dd5f3e4deb219dca9e7\",\n \"urls\": [\n \"bzz-raw://d493aa7fdcb779cd22f6b89089964ece46ea6d4fa0f99858cf181efb4cbee469\",\n \"dweb:/ipfs/QmZ2zHAHNmGi3iGcynGcPSppW97xYPh3yHDnxW7Ev7RasE\"\n ],\n \"license\": \"AGPL-3.0-only\"\n },\n \"src/base/Multicall.sol\": {\n \"keccak256\": \"0xcbb4381e9a730f94f98b2712167a6b369c27088d56dc1c1c45dff3b9f67626b9\",\n \"urls\": [\n \"bzz-raw://b44d36d06c372cd871596a1147f69cc4a5fee42a0619517797db1c4426cc7b8c\",\n \"dweb:/ipfs/QmYeevkoTG2RmUPNzjikoJwp4SQkdSs9iPj7hjQh2Y9e5K\"\n ],\n \"license\": \"GPL-2.0-or-later\"\n },\n \"src/base/SafeTransferLib.sol\": {\n \"keccak256\": \"0xb57fc6788a996b929a66b113fc47e5819778ce05e9f29beb9dd9ab2e26b22324\",\n \"urls\": [\n \"bzz-raw://5dbce65cf972cbb4ea1173b4590ccbbdd134c24ad144484d2b9eb3006fdb860a\",\n \"dweb:/ipfs/QmeRkh21aTiZ9kiFr8grzFDzJvbydWeowZEBkG5kxtfQN3\"\n ],\n \"license\": \"AGPL-3.0-only\"\n },\n \"src/interfaces/IMulticall.sol\": {\n \"keccak256\": \"0xd10f58af0778cfc7f3758154066fc0ebbd3e360b1a6959c283ccf7c2a9e9634e\",\n \"urls\": [\n \"bzz-raw://b218fd6c1571e3a16e8dc75f0237f797905b9a449d523e48d9dcb99473ed6ba0\",\n \"dweb:/ipfs/Qmet1GzEJ3Fq1FbKhr3MNFb8LpUkx37ynFCvoFKjkmBCU5\"\n ],\n \"license\": \"GPL-2.0-or-later\"\n },\n \"src/interfaces/external/IAaveToken.sol\": {\n \"keccak256\": \"0x77cd64637e4c0fd379b2d4d826bcd9f64fc706a291ce77d023f693d1eb8e45d8\",\n \"urls\": [\n \"bzz-raw://e87630603401ff3374cb610b765e46a3a235ef294fab212cf3116a35db7c4d58\",\n \"dweb:/ipfs/Qma8awSuYptmpBsWUMz9NZBogVRtVQwXF5cvfsVWpNKhc3\"\n ],\n \"license\": \"MIT\"\n },\n \"src/interfaces/external/IChainlinkAggregator.sol\": {\n \"keccak256\": \"0x5fc642cff679c1cc6e93b5eadd2089b6adb85a1a8c46106388c836a1447e228d\",\n \"urls\": [\n \"bzz-raw://9f6a5dc12a8d3c06463eb6ed638349fd0502d7fedb75da873f888416755ea3b2\",\n \"dweb:/ipfs/QmdDnsLaaGvKKxuvdGTiroKrXMP3eW75GjSW3HK7GySfVs\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/interfaces/external/ICurvePool.sol\": {\n \"keccak256\": \"0x9ae71865252aeca89fd6c74013eded1d8029eccc46e3604291be16e97b89a5da\",\n \"urls\": [\n \"bzz-raw://f504248ab846844bcd771226f7b2984455ddcc746357924fce50a41b65eec9e2\",\n \"dweb:/ipfs/QmQVe1VZUgxUab9ocsbrX42Ust3hs83BU3bpA1j6Cx1xo6\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/interfaces/external/IGravity.sol\": {\n \"keccak256\": \"0xb862f0644274b9c268f508e9dc880770962b9095f340695a97a1cb2eb9789a11\",\n \"urls\": [\n \"bzz-raw://533a9626cafd2260be6aa9cd9fbe305eb60e4208e43119c17ac0d33d41d07c51\",\n \"dweb:/ipfs/QmdmsXd9oozXdmCP4Fyt59VtKqm1spMgtU21LeuS85nG4c\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/interfaces/external/IUniswapV2Router02.sol\": {\n \"keccak256\": \"0xee672165cfe63278b41b7e9c0ae34ad18d75f432c6c5583e9940c207a1a2464f\",\n \"urls\": [\n \"bzz-raw://10443d195fd79197bb27b110345d5cef5b49fc1acff5e82164abd8cd04cbf47a\",\n \"dweb:/ipfs/QmNnVhv7YNuMWUS7S1kDpZLAcoKdmSm9ADwGoxL5wgzTGo\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/interfaces/external/IUniswapV3Router.sol\": {\n \"keccak256\": \"0x2c8578bd46f2de289ca1eb8c7a5c4412f3abdc6d61acbb07ec565ff1e5e80355\",\n \"urls\": [\n \"bzz-raw://f2b82a6d1fc71e09611d80dce96286f0546d1629bdee4e3686d6d528473187fd\",\n \"dweb:/ipfs/QmciPSKvHDjnFHRtjDwmdoiihwtDCFRZu1wfjnxuhYivMK\"\n ],\n \"license\": \"GPL-2.0-or-later\"\n },\n \"src/modules/adaptors/BaseAdaptor.sol\": {\n \"keccak256\": \"0xb45700da63110e41cbb1879c3d261763644bc851effa798721cf7eca3e039f9a\",\n \"urls\": [\n \"bzz-raw://7810084abb53310d5d50f5ca55557e9dcdc8fef6c987e55d82a7748aad467e27\",\n \"dweb:/ipfs/QmaieqMfgwWJvFy8q3jVrx8Fifo6M9UZM8cBjpmyNFPc5j\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/modules/price-router/PriceRouter.sol\": {\n \"keccak256\": \"0x3d0fb1c107cfbd5b72660b548a9749dfd0d07d9a0b5abdf554d593ee00569550\",\n \"urls\": [\n \"bzz-raw://f90a60a3097007a1dcd2871db79b0df74cf2a18de5126fc2bd2896f2715e93af\",\n \"dweb:/ipfs/QmTDqnNN9Rv29MYHCAzZsKzsDbTBMYYQi17VEwhmbE6KYC\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/modules/swap-router/SwapRouter.sol\": {\n \"keccak256\": \"0x2cc9c40333f0cb43d937124d8db088334e48280c8af2b9ebef7675daf167eb80\",\n \"urls\": [\n \"bzz-raw://87efec51915ae91561e3ee7ea97f3a0daff4826c0f5974ba404f4fa25aa46818\",\n \"dweb:/ipfs/QmSig68SbFz12nvm3MkLVvtyKQMFX8W1tMNqn6RCNhAVGr\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/utils/Math.sol\": {\n \"keccak256\": \"0xdec791a31325162117ed7856d7042f3f58885d29044a5ab7fa266a68551c485f\",\n \"urls\": [\n \"bzz-raw://87be5c0da99226925af33c0121802fc009ddee39becdcce2e60db01813bc8312\",\n \"dweb:/ipfs/QmXxgS5tfWBQF5pYHoX5HMbcRMW27iTALZGKyyVuAi7A8r\"\n ],\n \"license\": \"Apache-2.0\"\n },\n \"src/utils/Uint32Array.sol\": {\n \"keccak256\": \"0x418cd655203ebf671b76cbae3a1594c44356b5ca91c9f9e7eb5de07013e300d9\",\n \"urls\": [\n \"bzz-raw://b31b9db2d85bd7c41949307ef37903ff347f57b21f4b8d81a637dbfc1deed944\",\n \"dweb:/ipfs/QmScY9Jm2rsihu7QToNYuxLWADjmRjwxbScEGRwvXK29p3\"\n ],\n \"license\": \"Apache-2.0\"\n }\n },\n \"version\": 1\n },\n \"ast\": {\n \"absolutePath\": \"src/base/Cellar.sol\",\n \"id\": 33438,\n \"exportedSymbols\": {\n \"Address\": [\n 24337\n ],\n \"BaseAdaptor\": [\n 43962\n ],\n \"Cellar\": [\n 33437\n ],\n \"ERC20\": [\n 34556\n ],\n \"ERC4626\": [\n 35137\n ],\n \"ERC721Holder\": [\n 24007\n ],\n \"IGravity\": [\n 37138\n ],\n \"Math\": [\n 54508\n ],\n \"Owned\": [\n 26585\n ],\n \"PriceRouter\": [\n 52732\n ],\n \"Registry\": [\n 30033\n ],\n \"SafeTransferLib\": [\n 35307\n ],\n \"Uint32Array\": [\n 54663\n ]\n },\n \"nodeType\": \"SourceUnit\",\n \"src\": \"39:60904:41\",\n \"nodes\": [\n {\n \"id\": 30035,\n \"nodeType\": \"PragmaDirective\",\n \"src\": \"39:23:41\",\n \"nodes\": [],\n \"literals\": [\n \"solidity\",\n \"0.8\",\n \".16\"\n ]\n },\n {\n \"id\": 30040,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"64:70:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/base/ERC4626.sol\",\n \"file\": \"./ERC4626.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 35138,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30036,\n \"name\": \"ERC4626\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 35137,\n \"src\": \"73:7:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n },\n {\n \"foreign\": {\n \"id\": 30037,\n \"name\": \"SafeTransferLib\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 35307,\n \"src\": \"82:15:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n },\n {\n \"foreign\": {\n \"id\": 30038,\n \"name\": \"Math\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 54508,\n \"src\": \"99:4:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n },\n {\n \"foreign\": {\n \"id\": 30039,\n \"name\": \"ERC20\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34556,\n \"src\": \"105:5:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30042,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"135:44:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/Registry.sol\",\n \"file\": \"src/Registry.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 30034,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30041,\n \"name\": \"Registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30033,\n \"src\": \"144:8:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30044,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"180:71:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/modules/price-router/PriceRouter.sol\",\n \"file\": \"src/modules/price-router/PriceRouter.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 52733,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30043,\n \"name\": \"PriceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 52732,\n \"src\": \"189:11:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30046,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"252:64:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/interfaces/external/IGravity.sol\",\n \"file\": \"src/interfaces/external/IGravity.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 37139,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30045,\n \"name\": \"IGravity\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 37138,\n \"src\": \"261:8:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30048,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"317:56:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/utils/Uint32Array.sol\",\n \"file\": \"src/utils/Uint32Array.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 54664,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30047,\n \"name\": \"Uint32Array\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 54663,\n \"src\": \"326:11:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30050,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"374:67:41\",\n \"nodes\": [],\n \"absolutePath\": \"src/modules/adaptors/BaseAdaptor.sol\",\n \"file\": \"src/modules/adaptors/BaseAdaptor.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 43963,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30049,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"383:11:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30052,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"442:68:41\",\n \"nodes\": [],\n \"absolutePath\": \"lib/openzeppelin-contracts/contracts/utils/Address.sol\",\n \"file\": \"@openzeppelin/contracts/utils/Address.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 24338,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30051,\n \"name\": \"Address\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 24337,\n \"src\": \"451:7:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30054,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"511:91:41\",\n \"nodes\": [],\n \"absolutePath\": \"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\",\n \"file\": \"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 24008,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30053,\n \"name\": \"ERC721Holder\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 24007,\n \"src\": \"520:12:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 30056,\n \"nodeType\": \"ImportDirective\",\n \"src\": \"603:48:41\",\n \"nodes\": [],\n \"absolutePath\": \"lib/solmate/src/auth/Owned.sol\",\n \"file\": \"@solmate/auth/Owned.sol\",\n \"nameLocation\": \"-1:-1:-1\",\n \"scope\": 33438,\n \"sourceUnit\": 26586,\n \"symbolAliases\": [\n {\n \"foreign\": {\n \"id\": 30055,\n \"name\": \"Owned\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 26585,\n \"src\": \"612:5:41\",\n \"typeDescriptions\": {}\n },\n \"nameLocation\": \"-1:-1:-1\"\n }\n ],\n \"unitAlias\": \"\"\n },\n {\n \"id\": 33437,\n \"nodeType\": \"ContractDefinition\",\n \"src\": \"806:60136:41\",\n \"nodes\": [\n {\n \"id\": 30067,\n \"nodeType\": \"UsingForDirective\",\n \"src\": \"860:31:41\",\n \"nodes\": [],\n \"global\": false,\n \"libraryName\": {\n \"id\": 30064,\n \"name\": \"Uint32Array\",\n \"nameLocations\": [\n \"866:11:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 54663,\n \"src\": \"866:11:41\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30065,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"882:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30066,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"882:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n }\n },\n {\n \"id\": 30071,\n \"nodeType\": \"UsingForDirective\",\n \"src\": \"896:32:41\",\n \"nodes\": [],\n \"global\": false,\n \"libraryName\": {\n \"id\": 30068,\n \"name\": \"SafeTransferLib\",\n \"nameLocations\": [\n \"902:15:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 35307,\n \"src\": \"902:15:41\"\n },\n \"typeName\": {\n \"id\": 30070,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 30069,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"922:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"922:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"922:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n },\n {\n \"id\": 30074,\n \"nodeType\": \"UsingForDirective\",\n \"src\": \"933:23:41\",\n \"nodes\": [],\n \"global\": false,\n \"libraryName\": {\n \"id\": 30072,\n \"name\": \"Math\",\n \"nameLocations\": [\n \"939:4:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 54508,\n \"src\": \"939:4:41\"\n },\n \"typeName\": {\n \"id\": 30073,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"948:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n },\n {\n \"id\": 30077,\n \"nodeType\": \"UsingForDirective\",\n \"src\": \"961:26:41\",\n \"nodes\": [],\n \"global\": false,\n \"libraryName\": {\n \"id\": 30075,\n \"name\": \"Address\",\n \"nameLocations\": [\n \"967:7:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 24337,\n \"src\": \"967:7:41\"\n },\n \"typeName\": {\n \"id\": 30076,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"979:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n },\n {\n \"id\": 30107,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"1239:153:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30106,\n \"nodeType\": \"Block\",\n \"src\": \"1290:102:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"body\": {\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 30100,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30081,\n \"src\": \"1377:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr\",\n \"typeString\": \"bytes calldata[] calldata\"\n }\n },\n \"id\": 30102,\n \"indexExpression\": {\n \"id\": 30101,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30085,\n \"src\": \"1382:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"1377:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_calldata_ptr\",\n \"typeString\": \"bytes calldata\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_calldata_ptr\",\n \"typeString\": \"bytes calldata\"\n }\n ],\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30097,\n \"name\": \"this\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -28,\n \"src\": \"1350:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n ],\n \"id\": 30096,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"1342:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30095,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"1342:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30098,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"1342:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 30099,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"1356:20:41\",\n \"memberName\": \"functionDelegateCall\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 24224,\n \"src\": \"1342:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$\",\n \"typeString\": \"function (address,bytes memory) returns (bytes memory)\"\n }\n },\n \"id\": 30103,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"1342:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n \"id\": 30104,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"1342:43:41\"\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30091,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30088,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30085,\n \"src\": \"1320:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 30089,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30081,\n \"src\": \"1324:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr\",\n \"typeString\": \"bytes calldata[] calldata\"\n }\n },\n \"id\": 30090,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"1329:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"1324:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"1320:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30105,\n \"initializationExpression\": {\n \"assignments\": [\n 30085\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30085,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"1313:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30105,\n \"src\": \"1305:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30084,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"1305:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30087,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 30086,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1317:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"1305:13:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 30093,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": false,\n \"src\": \"1337:3:41\",\n \"subExpression\": {\n \"id\": 30092,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30085,\n \"src\": \"1337:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30094,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"1337:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"1300:85:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30078,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"1095:139:41\",\n \"text\": \" @notice Allows caller to call multiple functions in a single TX.\\n @dev Does NOT return the function return values.\"\n },\n \"functionSelector\": \"ac9650d8\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"multicall\",\n \"nameLocation\": \"1248:9:41\",\n \"parameters\": {\n \"id\": 30082,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30081,\n \"mutability\": \"mutable\",\n \"name\": \"data\",\n \"nameLocation\": \"1275:4:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30107,\n \"src\": \"1258:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"calldata\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr\",\n \"typeString\": \"bytes[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30079,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"1258:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"id\": 30080,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"1258:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_storage_$dyn_storage_ptr\",\n \"typeString\": \"bytes[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"1257:23:41\"\n },\n \"returnParameters\": {\n \"id\": 30083,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"1290:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30111,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"1624:25:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30108,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"1507:112:41\",\n \"text\": \" @notice `locked` is public, so that the state can be checked even during view function calls.\"\n },\n \"functionSelector\": \"cf309012\",\n \"mutability\": \"mutable\",\n \"name\": \"locked\",\n \"nameLocation\": \"1639:6:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30109,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"1624:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"31\",\n \"id\": 30110,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1648:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30130,\n \"nodeType\": \"ModifierDefinition\",\n \"src\": \"1656:129:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30129,\n \"nodeType\": \"Block\",\n \"src\": \"1680:105:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30116,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30114,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"1698:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"31\",\n \"id\": 30115,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1708:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"1698:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"hexValue\": \"5245454e5452414e4359\",\n \"id\": 30117,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"string\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1711:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n },\n \"value\": \"REENTRANCY\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n }\n ],\n \"id\": 30113,\n \"name\": \"require\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n -18,\n -18\n ],\n \"referencedDeclaration\": -18,\n \"src\": \"1690:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$\",\n \"typeString\": \"function (bool,string memory) pure\"\n }\n },\n \"id\": 30118,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"1690:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30119,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"1690:34:41\"\n },\n {\n \"expression\": {\n \"id\": 30122,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30120,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"1735:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"32\",\n \"id\": 30121,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1744:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_2_by_1\",\n \"typeString\": \"int_const 2\"\n },\n \"value\": \"2\"\n },\n \"src\": \"1735:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30123,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"1735:10:41\"\n },\n {\n \"id\": 30124,\n \"nodeType\": \"PlaceholderStatement\",\n \"src\": \"1756:1:41\"\n },\n {\n \"expression\": {\n \"id\": 30127,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30125,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"1768:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"31\",\n \"id\": 30126,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"1777:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"1768:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30128,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"1768:10:41\"\n }\n ]\n },\n \"name\": \"nonReentrant\",\n \"nameLocation\": \"1665:12:41\",\n \"parameters\": {\n \"id\": 30112,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"1677:2:41\"\n },\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 30134,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"2032:30:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30131,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"1902:125:41\",\n \"text\": \" @notice Cached price router contract.\\n @dev This way cellar has to \\\"opt in\\\" to price router changes.\"\n },\n \"functionSelector\": \"d7d4bf45\",\n \"mutability\": \"mutable\",\n \"name\": \"priceRouter\",\n \"nameLocation\": \"2051:11:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n },\n \"typeName\": {\n \"id\": 30133,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 30132,\n \"name\": \"PriceRouter\",\n \"nameLocations\": [\n \"2032:11:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 52732,\n \"src\": \"2032:11:41\"\n },\n \"referencedDeclaration\": 52732,\n \"src\": \"2032:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30204,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"2419:739:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30203,\n \"nodeType\": \"Block\",\n \"src\": \"2487:671:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 30143\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30143,\n \"mutability\": \"mutable\",\n \"name\": \"minAssets\",\n \"nameLocation\": \"2505:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30203,\n \"src\": \"2497:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30142,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"2497:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30144,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"2497:17:41\"\n },\n {\n \"assignments\": [\n 30146\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30146,\n \"mutability\": \"mutable\",\n \"name\": \"maxAssets\",\n \"nameLocation\": \"2532:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30203,\n \"src\": \"2524:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30145,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"2524:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30147,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"2524:17:41\"\n },\n {\n \"condition\": {\n \"id\": 30148,\n \"name\": \"checkTotalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30137,\n \"src\": \"2556:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30171,\n \"nodeType\": \"IfStatement\",\n \"src\": \"2552:261:41\",\n \"trueBody\": {\n \"id\": 30170,\n \"nodeType\": \"Block\",\n \"src\": \"2574:239:41\",\n \"statements\": [\n {\n \"assignments\": [\n 30150\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30150,\n \"mutability\": \"mutable\",\n \"name\": \"assetsBefore\",\n \"nameLocation\": \"2596:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30170,\n \"src\": \"2588:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30149,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"2588:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30153,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30151,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"2611:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 30152,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2611:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"2588:36:41\"\n },\n {\n \"expression\": {\n \"id\": 30160,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30154,\n \"name\": \"minAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30143,\n \"src\": \"2692:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"hexValue\": \"302e39356534\",\n \"id\": 30157,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"2728:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_9500_by_1\",\n \"typeString\": \"int_const 9500\"\n },\n \"value\": \"0.95e4\"\n },\n {\n \"hexValue\": \"316534\",\n \"id\": 30158,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"2736:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10000_by_1\",\n \"typeString\": \"int_const 10000\"\n },\n \"value\": \"1e4\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_9500_by_1\",\n \"typeString\": \"int_const 9500\"\n },\n {\n \"typeIdentifier\": \"t_rational_10000_by_1\",\n \"typeString\": \"int_const 10000\"\n }\n ],\n \"expression\": {\n \"id\": 30155,\n \"name\": \"assetsBefore\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30150,\n \"src\": \"2704:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30156,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"2717:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"2704:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 30159,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2704:36:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"2692:48:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30161,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"2692:48:41\"\n },\n {\n \"expression\": {\n \"id\": 30168,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30162,\n \"name\": \"maxAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30146,\n \"src\": \"2754:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"hexValue\": \"312e30356534\",\n \"id\": 30165,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"2790:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10500_by_1\",\n \"typeString\": \"int_const 10500\"\n },\n \"value\": \"1.05e4\"\n },\n {\n \"hexValue\": \"316534\",\n \"id\": 30166,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"2798:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10000_by_1\",\n \"typeString\": \"int_const 10000\"\n },\n \"value\": \"1e4\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_10500_by_1\",\n \"typeString\": \"int_const 10500\"\n },\n {\n \"typeIdentifier\": \"t_rational_10000_by_1\",\n \"typeString\": \"int_const 10000\"\n }\n ],\n \"expression\": {\n \"id\": 30163,\n \"name\": \"assetsBefore\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30150,\n \"src\": \"2766:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30164,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"2779:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"2766:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 30167,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2766:36:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"2754:48:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 30169,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"2754:48:41\"\n }\n ]\n }\n },\n {\n \"expression\": {\n \"id\": 30179,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30172,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"2823:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 30176,\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31069,\n \"src\": \"2869:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 30174,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"2849:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30175,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"2858:10:41\",\n \"memberName\": \"getAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29189,\n \"src\": \"2849:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_uint256_$returns$_t_address_$\",\n \"typeString\": \"function (uint256) view external returns (address)\"\n }\n },\n \"id\": 30177,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2849:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 30173,\n \"name\": \"PriceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 52732,\n \"src\": \"2837:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_PriceRouter_$52732_$\",\n \"typeString\": \"type(contract PriceRouter)\"\n }\n },\n \"id\": 30178,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2837:60:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"src\": \"2823:74:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 30180,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"2823:74:41\"\n },\n {\n \"assignments\": [\n 30182\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30182,\n \"mutability\": \"mutable\",\n \"name\": \"assetsAfter\",\n \"nameLocation\": \"2915:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30203,\n \"src\": \"2907:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30181,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"2907:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30185,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30183,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"2929:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 30184,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"2929:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"2907:35:41\"\n },\n {\n \"condition\": {\n \"id\": 30186,\n \"name\": \"checkTotalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30137,\n \"src\": \"2957:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30202,\n \"nodeType\": \"IfStatement\",\n \"src\": \"2953:199:41\",\n \"trueBody\": {\n \"id\": 30201,\n \"nodeType\": \"Block\",\n \"src\": \"2975:177:41\",\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"id\": 30193,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30189,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30187,\n \"name\": \"assetsAfter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30182,\n \"src\": \"2993:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 30188,\n \"name\": \"minAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30143,\n \"src\": \"3007:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"2993:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"||\",\n \"rightExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30192,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30190,\n \"name\": \"assetsAfter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30182,\n \"src\": \"3020:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 30191,\n \"name\": \"maxAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30146,\n \"src\": \"3034:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"3020:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"src\": \"2993:50:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30200,\n \"nodeType\": \"IfStatement\",\n \"src\": \"2989:152:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30195,\n \"name\": \"assetsAfter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30182,\n \"src\": \"3107:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 30196,\n \"name\": \"minAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30143,\n \"src\": \"3120:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 30197,\n \"name\": \"maxAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30146,\n \"src\": \"3131:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 30194,\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32666,\n \"src\": \"3068:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure\"\n }\n },\n \"id\": 30198,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"3068:73:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30199,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"3061:80:41\"\n }\n }\n ]\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 30135,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"2069:345:41\",\n \"text\": \" @notice Updates the cellar to use the lastest price router in the registry.\\n @param checkTotalAssets If true totalAssets is checked before and after updating the price router,\\n and is verified to be withing a +- 5% envelope.\\n If false totalAssets is only called after updating the price router.\"\n },\n \"functionSelector\": \"6925ba2c\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30140,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30139,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"2477:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"2477:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"2477:9:41\"\n }\n ],\n \"name\": \"cachePriceRouter\",\n \"nameLocation\": \"2428:16:41\",\n \"parameters\": {\n \"id\": 30138,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30137,\n \"mutability\": \"mutable\",\n \"name\": \"checkTotalAssets\",\n \"nameLocation\": \"2450:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30204,\n \"src\": \"2445:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30136,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"2445:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"2444:23:41\"\n },\n \"returnParameters\": {\n \"id\": 30141,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"2487:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30211,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"3444:52:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30205,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"3273:166:41\",\n \"text\": \" @notice Emitted when a position is added.\\n @param position id of position that was added\\n @param index index that position was added at\"\n },\n \"eventSelector\": \"c4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb\",\n \"name\": \"PositionAdded\",\n \"nameLocation\": \"3450:13:41\",\n \"parameters\": {\n \"id\": 30210,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30207,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"3471:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30211,\n \"src\": \"3464:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30206,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"3464:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30209,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"3489:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30211,\n \"src\": \"3481:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30208,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"3481:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"3463:32:41\"\n }\n },\n {\n \"id\": 30218,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"3681:54:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30212,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"3502:174:41\",\n \"text\": \" @notice Emitted when a position is removed.\\n @param position id of position that was removed\\n @param index index that position was removed from\"\n },\n \"eventSelector\": \"a5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51\",\n \"name\": \"PositionRemoved\",\n \"nameLocation\": \"3687:15:41\",\n \"parameters\": {\n \"id\": 30217,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30214,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"3710:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30218,\n \"src\": \"3703:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30213,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"3703:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30216,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"3728:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30218,\n \"src\": \"3720:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30215,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"3720:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"3702:32:41\"\n }\n },\n {\n \"id\": 30229,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"4135:96:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30219,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"3741:389:41\",\n \"text\": \" @notice Emitted when the positions at two indexes are swapped.\\n @param newPosition1 id of position (previously at index2) that replaced index1.\\n @param newPosition2 id of position (previously at index1) that replaced index2.\\n @param index1 index of first position involved in the swap\\n @param index2 index of second position involved in the swap.\"\n },\n \"eventSelector\": \"b7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a\",\n \"name\": \"PositionSwapped\",\n \"nameLocation\": \"4141:15:41\",\n \"parameters\": {\n \"id\": 30228,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30221,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPosition1\",\n \"nameLocation\": \"4164:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30229,\n \"src\": \"4157:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30220,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4157:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30223,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPosition2\",\n \"nameLocation\": \"4185:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30229,\n \"src\": \"4178:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30222,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4178:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30225,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"index1\",\n \"nameLocation\": \"4207:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30229,\n \"src\": \"4199:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30224,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4199:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30227,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"index2\",\n \"nameLocation\": \"4223:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30229,\n \"src\": \"4215:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30226,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4215:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"4156:74:41\"\n }\n },\n {\n \"id\": 30236,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"4347:68:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30230,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"4237:105:41\",\n \"text\": \" @notice Emitted when Governance adds/removes a position to/from the cellars catalogue.\"\n },\n \"eventSelector\": \"ea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f\",\n \"name\": \"PositionCatalogueAltered\",\n \"nameLocation\": \"4353:24:41\",\n \"parameters\": {\n \"id\": 30235,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30232,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"4385:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30236,\n \"src\": \"4378:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30231,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4378:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30234,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"inCatalogue\",\n \"nameLocation\": \"4402:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30236,\n \"src\": \"4397:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30233,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4397:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"4377:37:41\"\n }\n },\n {\n \"id\": 30243,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"4531:65:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30237,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"4421:105:41\",\n \"text\": \" @notice Emitted when Governance adds/removes an adaptor to/from the cellars catalogue.\"\n },\n \"eventSelector\": \"572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a\",\n \"name\": \"AdaptorCatalogueAltered\",\n \"nameLocation\": \"4537:23:41\",\n \"parameters\": {\n \"id\": 30242,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30239,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"4569:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30243,\n \"src\": \"4561:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30238,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4561:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30241,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"inCatalogue\",\n \"nameLocation\": \"4583:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30243,\n \"src\": \"4578:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30240,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4578:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"4560:35:41\"\n }\n },\n {\n \"id\": 30248,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"4731:51:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30244,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"4602:124:41\",\n \"text\": \" @notice Attempted to add a position that is already being used.\\n @param position id of the position\"\n },\n \"errorSelector\": \"66b129f6\",\n \"name\": \"Cellar__PositionAlreadyUsed\",\n \"nameLocation\": \"4737:27:41\",\n \"parameters\": {\n \"id\": 30247,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30246,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"4772:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30248,\n \"src\": \"4765:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30245,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4765:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"4764:17:41\"\n }\n },\n {\n \"id\": 30253,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"4920:47:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30249,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"4788:127:41\",\n \"text\": \" @notice Attempted to make an unused position the holding position.\\n @param position id of the position\"\n },\n \"errorSelector\": \"70abe859\",\n \"name\": \"Cellar__PositionNotUsed\",\n \"nameLocation\": \"4926:23:41\",\n \"parameters\": {\n \"id\": 30252,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30251,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"4957:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30253,\n \"src\": \"4950:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30250,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"4950:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"4949:17:41\"\n }\n },\n {\n \"id\": 30258,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"5104:54:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30254,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"4973:126:41\",\n \"text\": \" @notice Attempted to add a position that is not in the catalogue.\\n @param position id of the position\"\n },\n \"errorSelector\": \"fced80e8\",\n \"name\": \"Cellar__PositionNotInCatalogue\",\n \"nameLocation\": \"5110:30:41\",\n \"parameters\": {\n \"id\": 30257,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30256,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"5148:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30258,\n \"src\": \"5141:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30255,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5141:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"5140:17:41\"\n }\n },\n {\n \"id\": 30265,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"5424:73:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30259,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"5164:255:41\",\n \"text\": \" @notice Attempted an action on a position that is required to be empty before the action can be performed.\\n @param position address of the non-empty position\\n @param sharesRemaining amount of shares remaining in the position\"\n },\n \"errorSelector\": \"e3dca368\",\n \"name\": \"Cellar__PositionNotEmpty\",\n \"nameLocation\": \"5430:24:41\",\n \"parameters\": {\n \"id\": 30264,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30261,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"5462:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30265,\n \"src\": \"5455:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30260,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5455:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30263,\n \"mutability\": \"mutable\",\n \"name\": \"sharesRemaining\",\n \"nameLocation\": \"5480:15:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30265,\n \"src\": \"5472:23:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30262,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5472:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"5454:42:41\"\n }\n },\n {\n \"id\": 30272,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"5712:66:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30266,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"5503:204:41\",\n \"text\": \" @notice Attempted an operation with an asset that was different then the one expected.\\n @param asset address of the asset\\n @param expectedAsset address of the expected asset\"\n },\n \"errorSelector\": \"5308e78e\",\n \"name\": \"Cellar__AssetMismatch\",\n \"nameLocation\": \"5718:21:41\",\n \"parameters\": {\n \"id\": 30271,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30268,\n \"mutability\": \"mutable\",\n \"name\": \"asset\",\n \"nameLocation\": \"5748:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30272,\n \"src\": \"5740:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30267,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5740:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30270,\n \"mutability\": \"mutable\",\n \"name\": \"expectedAsset\",\n \"nameLocation\": \"5763:13:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30272,\n \"src\": \"5755:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30269,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5755:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"5739:38:41\"\n }\n },\n {\n \"id\": 30277,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"5948:54:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30273,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"5784:159:41\",\n \"text\": \" @notice Attempted to add a position when the position array is full.\\n @param maxPositions maximum number of positions that can be used\"\n },\n \"errorSelector\": \"f025236d\",\n \"name\": \"Cellar__PositionArrayFull\",\n \"nameLocation\": \"5954:25:41\",\n \"parameters\": {\n \"id\": 30276,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30275,\n \"mutability\": \"mutable\",\n \"name\": \"maxPositions\",\n \"nameLocation\": \"5988:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30277,\n \"src\": \"5980:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30274,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"5980:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"5979:22:41\"\n }\n },\n {\n \"id\": 30282,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"6149:44:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30278,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6008:136:41\",\n \"text\": \" @notice Attempted to add a position, with mismatched debt.\\n @param position the posiiton id that was mismatched\"\n },\n \"errorSelector\": \"563a17a6\",\n \"name\": \"Cellar__DebtMismatch\",\n \"nameLocation\": \"6155:20:41\",\n \"parameters\": {\n \"id\": 30281,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30280,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"6183:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30282,\n \"src\": \"6176:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30279,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6176:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"6175:17:41\"\n }\n },\n {\n \"id\": 30285,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"6280:40:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30283,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6199:76:41\",\n \"text\": \" @notice Attempted to remove the Cellars holding position.\"\n },\n \"errorSelector\": \"677b5cc4\",\n \"name\": \"Cellar__RemovingHoldingPosition\",\n \"nameLocation\": \"6286:31:41\",\n \"parameters\": {\n \"id\": 30284,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"6317:2:41\"\n }\n },\n {\n \"id\": 30290,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"6460:56:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30286,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6326:129:41\",\n \"text\": \" @notice Attempted to add an invalid holding position.\\n @param positionId the id of the invalid position.\"\n },\n \"errorSelector\": \"a42c0f90\",\n \"name\": \"Cellar__InvalidHoldingPosition\",\n \"nameLocation\": \"6466:30:41\",\n \"parameters\": {\n \"id\": 30289,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30288,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"6504:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30290,\n \"src\": \"6497:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30287,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6497:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"6496:19:41\"\n }\n },\n {\n \"id\": 30294,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"6611:31:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30291,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6522:84:41\",\n \"text\": \" @notice Array of uint32s made up of cellars credit positions Ids.\"\n },\n \"functionSelector\": \"59d20b4e\",\n \"mutability\": \"mutable\",\n \"name\": \"creditPositions\",\n \"nameLocation\": \"6627:15:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30292,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6611:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30293,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"6611:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30298,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"6736:29:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30295,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6649:82:41\",\n \"text\": \" @notice Array of uint32s made up of cellars debt positions Ids.\"\n },\n \"functionSelector\": \"e1b1acb7\",\n \"mutability\": \"mutable\",\n \"name\": \"debtPositions\",\n \"nameLocation\": \"6752:13:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30296,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6736:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30297,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"6736:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30303,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"6846:46:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30299,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6772:69:41\",\n \"text\": \" @notice Tell whether a position is currently used.\"\n },\n \"functionSelector\": \"93bbeac0\",\n \"mutability\": \"mutable\",\n \"name\": \"isPositionUsed\",\n \"nameLocation\": \"6878:14:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n },\n \"typeName\": {\n \"id\": 30302,\n \"keyType\": {\n \"id\": 30300,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6854:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Mapping\",\n \"src\": \"6846:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n },\n \"valueType\": {\n \"id\": 30301,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6865:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30309,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"6967:63:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30304,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"6899:63:41\",\n \"text\": \" @notice Get position data given position id.\"\n },\n \"functionSelector\": \"7384504f\",\n \"mutability\": \"mutable\",\n \"name\": \"getPositionData\",\n \"nameLocation\": \"7015:15:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData)\"\n },\n \"typeName\": {\n \"id\": 30308,\n \"keyType\": {\n \"id\": 30305,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"6975:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Mapping\",\n \"src\": \"6967:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData)\"\n },\n \"valueType\": {\n \"id\": 30307,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 30306,\n \"name\": \"Registry.PositionData\",\n \"nameLocations\": [\n \"6985:8:41\",\n \"6994:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 29741,\n \"src\": \"6985:21:41\"\n },\n \"referencedDeclaration\": 29741,\n \"src\": \"6985:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage_ptr\",\n \"typeString\": \"struct Registry.PositionData\"\n }\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30319,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"7134:109:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30318,\n \"nodeType\": \"Block\",\n \"src\": \"7204:39:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30316,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"7221:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"functionReturnParameters\": 30315,\n \"id\": 30317,\n \"nodeType\": \"Return\",\n \"src\": \"7214:22:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30310,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"7037:92:41\",\n \"text\": \" @notice Get the ids of the credit positions currently used by the cellar.\"\n },\n \"functionSelector\": \"71e99dc2\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"getCreditPositions\",\n \"nameLocation\": \"7143:18:41\",\n \"parameters\": {\n \"id\": 30311,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"7161:2:41\"\n },\n \"returnParameters\": {\n \"id\": 30315,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30314,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30319,\n \"src\": \"7187:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30312,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7187:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30313,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"7187:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"7186:17:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30329,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"7344:105:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30328,\n \"nodeType\": \"Block\",\n \"src\": \"7412:37:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30326,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"7429:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"functionReturnParameters\": 30325,\n \"id\": 30327,\n \"nodeType\": \"Return\",\n \"src\": \"7422:20:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30320,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"7249:90:41\",\n \"text\": \" @notice Get the ids of the debt positions currently used by the cellar.\"\n },\n \"functionSelector\": \"3e3382ba\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"getDebtPositions\",\n \"nameLocation\": \"7353:16:41\",\n \"parameters\": {\n \"id\": 30321,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"7369:2:41\"\n },\n \"returnParameters\": {\n \"id\": 30325,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30324,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30329,\n \"src\": \"7395:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 30322,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7395:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30323,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"7395:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"7394:17:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30333,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"7560:42:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 30330,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"7455:100:41\",\n \"text\": \" @notice Maximum amount of positions a cellar can have in it's credit/debt arrays.\"\n },\n \"functionSelector\": \"f7b24e08\",\n \"mutability\": \"constant\",\n \"name\": \"MAX_POSITIONS\",\n \"nameLocation\": \"7584:13:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30331,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7560:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"3136\",\n \"id\": 30332,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"7600:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_16_by_1\",\n \"typeString\": \"int_const 16\"\n },\n \"value\": \"16\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30336,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"7711:29:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30334,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"7609:97:41\",\n \"text\": \" @notice Stores the index of the holding position in the creditPositions array.\"\n },\n \"functionSelector\": \"9c5f00c2\",\n \"mutability\": \"mutable\",\n \"name\": \"holdingPosition\",\n \"nameLocation\": \"7725:15:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30335,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7711:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30349,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"7823:114:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30348,\n \"nodeType\": \"Block\",\n \"src\": \"7889:48:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30345,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30339,\n \"src\": \"7919:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30344,\n \"name\": \"_setHoldingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30396,\n \"src\": \"7899:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32)\"\n }\n },\n \"id\": 30346,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"7899:31:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30347,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"7899:31:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30337,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"7747:71:41\",\n \"text\": \" @notice Allows owner to change the holding position.\"\n },\n \"functionSelector\": \"0780fd3a\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30342,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30341,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"7879:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"7879:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"7879:9:41\"\n }\n ],\n \"name\": \"setHoldingPosition\",\n \"nameLocation\": \"7832:18:41\",\n \"parameters\": {\n \"id\": 30340,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30339,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"7858:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30349,\n \"src\": \"7851:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30338,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7851:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"7850:19:41\"\n },\n \"returnParameters\": {\n \"id\": 30343,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"7889:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30396,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"7943:406:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30395,\n \"nodeType\": \"Block\",\n \"src\": \"8000:349:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 30357,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"8014:27:41\",\n \"subExpression\": {\n \"baseExpression\": {\n \"id\": 30354,\n \"name\": \"isPositionUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30303,\n \"src\": \"8015:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n }\n },\n \"id\": 30356,\n \"indexExpression\": {\n \"id\": 30355,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8030:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"8015:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30362,\n \"nodeType\": \"IfStatement\",\n \"src\": \"8010:75:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30359,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8074:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30358,\n \"name\": \"Cellar__PositionNotUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30253,\n \"src\": \"8050:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) pure\"\n }\n },\n \"id\": 30360,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8050:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30361,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"8043:42:41\"\n }\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n },\n \"id\": 30367,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"arguments\": [\n {\n \"id\": 30364,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8108:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30363,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"8099:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 30365,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8099:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 30366,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"8123:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"8099:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30381,\n \"nodeType\": \"IfStatement\",\n \"src\": \"8095:110:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 30371,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"8167:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"id\": 30370,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"8159:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30369,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8159:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30372,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8159:14:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 30376,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8192:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30375,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"8183:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 30377,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8183:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"id\": 30374,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"8175:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30373,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8175:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30378,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8175:29:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 30368,\n \"name\": \"Cellar__AssetMismatch\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30272,\n \"src\": \"8137:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_address_$_t_address_$returns$__$\",\n \"typeString\": \"function (address,address) pure\"\n }\n },\n \"id\": 30379,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8137:68:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30380,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"8130:75:41\"\n }\n },\n {\n \"condition\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 30382,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"8219:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 30384,\n \"indexExpression\": {\n \"id\": 30383,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8235:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"8219:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 30385,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"8247:6:41\",\n \"memberName\": \"isDebt\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29736,\n \"src\": \"8219:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30390,\n \"nodeType\": \"IfStatement\",\n \"src\": \"8215:89:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30387,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8293:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30386,\n \"name\": \"Cellar__InvalidHoldingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30290,\n \"src\": \"8262:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) pure\"\n }\n },\n \"id\": 30388,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8262:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30389,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"8255:49:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 30393,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30391,\n \"name\": \"holdingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30336,\n \"src\": \"8314:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 30392,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30351,\n \"src\": \"8332:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"8314:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30394,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"8314:28:41\"\n }\n ]\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_setHoldingPosition\",\n \"nameLocation\": \"7952:19:41\",\n \"parameters\": {\n \"id\": 30352,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30351,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"7979:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30396,\n \"src\": \"7972:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30350,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"7972:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"7971:19:41\"\n },\n \"returnParameters\": {\n \"id\": 30353,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"8000:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 30401,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"8467:48:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30397,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"8355:107:41\",\n \"text\": \" @notice Positions the strategist is approved to use without any governance intervention.\"\n },\n \"functionSelector\": \"cbdf33d0\",\n \"mutability\": \"mutable\",\n \"name\": \"positionCatalogue\",\n \"nameLocation\": \"8498:17:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_bool_$\",\n \"typeString\": \"mapping(uint32 => bool)\"\n },\n \"typeName\": {\n \"id\": 30400,\n \"keyType\": {\n \"id\": 30398,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8475:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Mapping\",\n \"src\": \"8467:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_bool_$\",\n \"typeString\": \"mapping(uint32 => bool)\"\n },\n \"valueType\": {\n \"id\": 30399,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8485:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30406,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"8633:48:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30402,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"8522:106:41\",\n \"text\": \" @notice Adaptors the strategist is approved to use without any governance intervention.\"\n },\n \"functionSelector\": \"18d4c143\",\n \"mutability\": \"mutable\",\n \"name\": \"adaptorCatalogue\",\n \"nameLocation\": \"8665:16:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n },\n \"typeName\": {\n \"id\": 30405,\n \"keyType\": {\n \"id\": 30403,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8641:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"Mapping\",\n \"src\": \"8633:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n },\n \"valueType\": {\n \"id\": 30404,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8652:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30419,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"8782:122:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30418,\n \"nodeType\": \"Block\",\n \"src\": \"8852:52:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30415,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30409,\n \"src\": \"8886:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30414,\n \"name\": \"_addPositionToCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30443,\n \"src\": \"8862:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32)\"\n }\n },\n \"id\": 30416,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"8862:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30417,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"8862:35:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30407,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"8688:89:41\",\n \"text\": \" @notice Allows Governance to add positions to this cellar's catalogue.\"\n },\n \"functionSelector\": \"501eb4fe\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30412,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30411,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"8842:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"8842:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"8842:9:41\"\n }\n ],\n \"name\": \"addPositionToCatalogue\",\n \"nameLocation\": \"8791:22:41\",\n \"parameters\": {\n \"id\": 30410,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30409,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"8821:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30419,\n \"src\": \"8814:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30408,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"8814:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"8813:19:41\"\n },\n \"returnParameters\": {\n \"id\": 30413,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"8852:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30443,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"8994:290:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30442,\n \"nodeType\": \"Block\",\n \"src\": \"9055:229:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30428,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30422,\n \"src\": \"9163:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30425,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"9125:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30427,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"9134:28:41\",\n \"memberName\": \"revertIfPositionIsNotTrusted\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30032,\n \"src\": \"9125:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) view external\"\n }\n },\n \"id\": 30429,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"9125:49:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30430,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"9125:49:41\"\n },\n {\n \"expression\": {\n \"id\": 30435,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30431,\n \"name\": \"positionCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30401,\n \"src\": \"9184:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_bool_$\",\n \"typeString\": \"mapping(uint32 => bool)\"\n }\n },\n \"id\": 30433,\n \"indexExpression\": {\n \"id\": 30432,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30422,\n \"src\": \"9202:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"9184:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 30434,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9216:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"9184:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30436,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"9184:36:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30438,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30422,\n \"src\": \"9260:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"hexValue\": \"74727565\",\n \"id\": 30439,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9272:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30437,\n \"name\": \"PositionCatalogueAltered\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30236,\n \"src\": \"9235:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint32_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,bool)\"\n }\n },\n \"id\": 30440,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"9235:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30441,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"9230:47:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30420,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"8910:79:41\",\n \"text\": \" @notice Helper function that checks the position is trusted.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_addPositionToCatalogue\",\n \"nameLocation\": \"9003:23:41\",\n \"parameters\": {\n \"id\": 30423,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30422,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"9034:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30443,\n \"src\": \"9027:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30421,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"9027:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"9026:19:41\"\n },\n \"returnParameters\": {\n \"id\": 30424,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"9055:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 30463,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"9389:187:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30462,\n \"nodeType\": \"Block\",\n \"src\": \"9464:112:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30455,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30451,\n \"name\": \"positionCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30401,\n \"src\": \"9474:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_bool_$\",\n \"typeString\": \"mapping(uint32 => bool)\"\n }\n },\n \"id\": 30453,\n \"indexExpression\": {\n \"id\": 30452,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30446,\n \"src\": \"9492:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"9474:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 30454,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9506:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"9474:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30456,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"9474:37:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30458,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30446,\n \"src\": \"9551:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 30459,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9563:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30457,\n \"name\": \"PositionCatalogueAltered\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30236,\n \"src\": \"9526:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint32_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,bool)\"\n }\n },\n \"id\": 30460,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"9526:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30461,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"9521:48:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30444,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"9290:94:41\",\n \"text\": \" @notice Allows Governance to remove positions from this cellar's catalogue.\"\n },\n \"functionSelector\": \"d1e88404\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30449,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30448,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"9454:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"9454:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"9454:9:41\"\n }\n ],\n \"name\": \"removePositionFromCatalogue\",\n \"nameLocation\": \"9398:27:41\",\n \"parameters\": {\n \"id\": 30447,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30446,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"9433:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30463,\n \"src\": \"9426:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30445,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"9426:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"9425:19:41\"\n },\n \"returnParameters\": {\n \"id\": 30450,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"9464:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30489,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"9675:283:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30488,\n \"nodeType\": \"Block\",\n \"src\": \"9742:216:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30474,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30466,\n \"src\": \"9848:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"expression\": {\n \"id\": 30471,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"9811:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30473,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"9820:27:41\",\n \"memberName\": \"revertIfAdaptorIsNotTrusted\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29732,\n \"src\": \"9811:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_address_$returns$__$\",\n \"typeString\": \"function (address) view external\"\n }\n },\n \"id\": 30475,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"9811:45:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30476,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"9811:45:41\"\n },\n {\n \"expression\": {\n \"id\": 30481,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30477,\n \"name\": \"adaptorCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30406,\n \"src\": \"9866:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n }\n },\n \"id\": 30479,\n \"indexExpression\": {\n \"id\": 30478,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30466,\n \"src\": \"9883:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"9866:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 30480,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9894:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"9866:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30482,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"9866:32:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30484,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30466,\n \"src\": \"9937:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"hexValue\": \"74727565\",\n \"id\": 30485,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"9946:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30483,\n \"name\": \"AdaptorCatalogueAltered\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30243,\n \"src\": \"9913:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$\",\n \"typeString\": \"function (address,bool)\"\n }\n },\n \"id\": 30486,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"9913:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30487,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"9908:43:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30464,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"9582:88:41\",\n \"text\": \" @notice Allows Governance to add adaptors to this cellar's catalogue.\"\n },\n \"functionSelector\": \"3d8ab1e5\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30469,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30468,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"9732:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"9732:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"9732:9:41\"\n }\n ],\n \"name\": \"addAdaptorToCatalogue\",\n \"nameLocation\": \"9684:21:41\",\n \"parameters\": {\n \"id\": 30467,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30466,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"9714:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30489,\n \"src\": \"9706:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30465,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"9706:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"9705:17:41\"\n },\n \"returnParameters\": {\n \"id\": 30470,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"9742:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30509,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"10062:176:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30508,\n \"nodeType\": \"Block\",\n \"src\": \"10134:104:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30501,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30497,\n \"name\": \"adaptorCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30406,\n \"src\": \"10144:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n }\n },\n \"id\": 30499,\n \"indexExpression\": {\n \"id\": 30498,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30492,\n \"src\": \"10161:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"10144:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 30500,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"10172:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"10144:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30502,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"10144:33:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30504,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30492,\n \"src\": \"10216:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 30505,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"10225:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30503,\n \"name\": \"AdaptorCatalogueAltered\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30243,\n \"src\": \"10192:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$\",\n \"typeString\": \"function (address,bool)\"\n }\n },\n \"id\": 30506,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"10192:39:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30507,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"10187:44:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30490,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"9964:93:41\",\n \"text\": \" @notice Allows Governance to remove adaptors from this cellar's catalogue.\"\n },\n \"functionSelector\": \"5f6b88a0\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30495,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30494,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"10124:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"10124:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"10124:9:41\"\n }\n ],\n \"name\": \"removeAdaptorFromCatalogue\",\n \"nameLocation\": \"10071:26:41\",\n \"parameters\": {\n \"id\": 30493,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30492,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"10106:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30509,\n \"src\": \"10098:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30491,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10098:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"10097:17:41\"\n },\n \"returnParameters\": {\n \"id\": 30496,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"10134:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30534,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"10548:269:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30533,\n \"nodeType\": \"Block\",\n \"src\": \"10709:108:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30523,\n \"name\": \"_whenNotShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31022,\n \"src\": \"10719:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 30524,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"10719:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30525,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"10719:18:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30527,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30512,\n \"src\": \"10760:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30528,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30514,\n \"src\": \"10767:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30529,\n \"name\": \"configurationData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30516,\n \"src\": \"10779:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"id\": 30530,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30518,\n \"src\": \"10798:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30526,\n \"name\": \"_addPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30642,\n \"src\": \"10747:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,bytes memory,bool)\"\n }\n },\n \"id\": 30531,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"10747:63:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30532,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"10747:63:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30510,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"10244:299:41\",\n \"text\": \" @notice Insert a trusted position to the list of positions used by the cellar at a given index.\\n @param index index at which to insert the position\\n @param positionId id of position to add\\n @param configurationData data used to configure how the position behaves\"\n },\n \"functionSelector\": \"9955a9d4\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30521,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30520,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"10699:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"10699:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"10699:9:41\"\n }\n ],\n \"name\": \"addPosition\",\n \"nameLocation\": \"10557:11:41\",\n \"parameters\": {\n \"id\": 30519,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30512,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"10585:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30534,\n \"src\": \"10578:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30511,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10578:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30514,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"10607:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30534,\n \"src\": \"10600:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30513,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10600:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30516,\n \"mutability\": \"mutable\",\n \"name\": \"configurationData\",\n \"nameLocation\": \"10640:17:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30534,\n \"src\": \"10627:30:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 30515,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10627:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30518,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"10672:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30534,\n \"src\": \"10667:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30517,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10667:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"10568:121:41\"\n },\n \"returnParameters\": {\n \"id\": 30522,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"10709:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30642,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"10922:1552:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30641,\n \"nodeType\": \"Block\",\n \"src\": \"11036:1438:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"baseExpression\": {\n \"id\": 30546,\n \"name\": \"isPositionUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30303,\n \"src\": \"11102:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n }\n },\n \"id\": 30548,\n \"indexExpression\": {\n \"id\": 30547,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11117:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"11102:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30553,\n \"nodeType\": \"IfStatement\",\n \"src\": \"11098:78:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30550,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11165:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30549,\n \"name\": \"Cellar__PositionAlreadyUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30248,\n \"src\": \"11137:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) pure\"\n }\n },\n \"id\": 30551,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11137:39:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30552,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"11130:46:41\"\n }\n },\n {\n \"condition\": {\n \"id\": 30557,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"11250:30:41\",\n \"subExpression\": {\n \"baseExpression\": {\n \"id\": 30554,\n \"name\": \"positionCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30401,\n \"src\": \"11251:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_bool_$\",\n \"typeString\": \"mapping(uint32 => bool)\"\n }\n },\n \"id\": 30556,\n \"indexExpression\": {\n \"id\": 30555,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11269:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"11251:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30562,\n \"nodeType\": \"IfStatement\",\n \"src\": \"11246:85:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30559,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11320:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30558,\n \"name\": \"Cellar__PositionNotInCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30258,\n \"src\": \"11289:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) pure\"\n }\n },\n \"id\": 30560,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11289:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30561,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"11282:49:41\"\n }\n },\n {\n \"assignments\": [\n 30564,\n 30566,\n 30568\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30564,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"11465:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30641,\n \"src\": \"11457:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30563,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"11457:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30566,\n \"mutability\": \"mutable\",\n \"name\": \"isDebt\",\n \"nameLocation\": \"11479:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30641,\n \"src\": \"11474:11:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30565,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"11474:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30568,\n \"mutability\": \"mutable\",\n \"name\": \"adaptorData\",\n \"nameLocation\": \"11500:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30641,\n \"src\": \"11487:24:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 30567,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"11487:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30573,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 30571,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11544:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30569,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"11515:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30570,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"11524:19:41\",\n \"memberName\": \"addPositionToCellar\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30016,\n \"src\": \"11515:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_uint32_$returns$_t_address_$_t_bool_$_t_bytes_memory_ptr_$\",\n \"typeString\": \"function (uint32) view external returns (address,bool,bytes memory)\"\n }\n },\n \"id\": 30572,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11515:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_address_$_t_bool_$_t_bytes_memory_ptr_$\",\n \"typeString\": \"tuple(address,bool,bytes memory)\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"11456:99:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"id\": 30576,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30574,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30566,\n \"src\": \"11570:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 30575,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30543,\n \"src\": \"11580:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"src\": \"11570:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30581,\n \"nodeType\": \"IfStatement\",\n \"src\": \"11566:66:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30578,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11621:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30577,\n \"name\": \"Cellar__DebtMismatch\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30282,\n \"src\": \"11600:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32) pure\"\n }\n },\n \"id\": 30579,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11600:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30580,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"11593:39:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 30592,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30582,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"11696:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 30584,\n \"indexExpression\": {\n \"id\": 30583,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"11712:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"11696:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 30587,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30564,\n \"src\": \"11771:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 30588,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30566,\n \"src\": \"11800:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"id\": 30589,\n \"name\": \"adaptorData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30568,\n \"src\": \"11833:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"id\": 30590,\n \"name\": \"configurationData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30541,\n \"src\": \"11877:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"expression\": {\n \"id\": 30585,\n \"name\": \"Registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30033,\n \"src\": \"11726:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_Registry_$30033_$\",\n \"typeString\": \"type(contract Registry)\"\n }\n },\n \"id\": 30586,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"11735:12:41\",\n \"memberName\": \"PositionData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29741,\n \"src\": \"11726:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_struct$_PositionData_$29741_storage_ptr_$\",\n \"typeString\": \"type(struct Registry.PositionData storage pointer)\"\n }\n },\n \"id\": 30591,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"structConstructorCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [\n \"11762:7:41\",\n \"11792:6:41\",\n \"11820:11:41\",\n \"11858:17:41\"\n ],\n \"names\": [\n \"adaptor\",\n \"isDebt\",\n \"adaptorData\",\n \"configurationData\"\n ],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11726:179:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_memory_ptr\",\n \"typeString\": \"struct Registry.PositionData memory\"\n }\n },\n \"src\": \"11696:209:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 30593,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"11696:209:41\"\n },\n {\n \"condition\": {\n \"id\": 30594,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30566,\n \"src\": \"11920:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseBody\": {\n \"id\": 30628,\n \"nodeType\": \"Block\",\n \"src\": \"12153:223:41\",\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30615,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 30612,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"12171:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30613,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"12187:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"12171:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">=\",\n \"rightExpression\": {\n \"id\": 30614,\n \"name\": \"MAX_POSITIONS\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30333,\n \"src\": \"12197:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"12171:39:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30620,\n \"nodeType\": \"IfStatement\",\n \"src\": \"12167:92:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30617,\n \"name\": \"MAX_POSITIONS\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30333,\n \"src\": \"12245:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 30616,\n \"name\": \"Cellar__PositionArrayFull\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30277,\n \"src\": \"12219:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256) pure\"\n }\n },\n \"id\": 30618,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"12219:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30619,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"12212:47:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30624,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30537,\n \"src\": \"12347:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30625,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"12354:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30621,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"12327:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30623,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"12343:3:41\",\n \"memberName\": \"add\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54579,\n \"src\": \"12327:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$\",\n \"typeString\": \"function (uint32[] storage pointer,uint32,uint32)\"\n }\n },\n \"id\": 30626,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"12327:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30627,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"12327:38:41\"\n }\n ]\n },\n \"id\": 30629,\n \"nodeType\": \"IfStatement\",\n \"src\": \"11916:460:41\",\n \"trueBody\": {\n \"id\": 30611,\n \"nodeType\": \"Block\",\n \"src\": \"11928:219:41\",\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30598,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 30595,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"11946:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30596,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"11960:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"11946:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">=\",\n \"rightExpression\": {\n \"id\": 30597,\n \"name\": \"MAX_POSITIONS\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30333,\n \"src\": \"11970:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"11946:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30603,\n \"nodeType\": \"IfStatement\",\n \"src\": \"11942:90:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30600,\n \"name\": \"MAX_POSITIONS\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30333,\n \"src\": \"12018:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 30599,\n \"name\": \"Cellar__PositionArrayFull\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30277,\n \"src\": \"11992:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256) pure\"\n }\n },\n \"id\": 30601,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"11992:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30602,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"11985:47:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30607,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30537,\n \"src\": \"12118:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30608,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"12125:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30604,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"12100:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30606,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"12114:3:41\",\n \"memberName\": \"add\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54579,\n \"src\": \"12100:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$\",\n \"typeString\": \"function (uint32[] storage pointer,uint32,uint32)\"\n }\n },\n \"id\": 30609,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"12100:36:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30610,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"12100:36:41\"\n }\n ]\n }\n },\n {\n \"expression\": {\n \"id\": 30634,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30630,\n \"name\": \"isPositionUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30303,\n \"src\": \"12386:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n }\n },\n \"id\": 30632,\n \"indexExpression\": {\n \"id\": 30631,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"12401:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"12386:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 30633,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"12415:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"12386:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30635,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"12386:33:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30637,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30539,\n \"src\": \"12449:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30638,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30537,\n \"src\": \"12461:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30636,\n \"name\": \"PositionAdded\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30211,\n \"src\": \"12435:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint32_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint32,uint256)\"\n }\n },\n \"id\": 30639,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"12435:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30640,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"12430:37:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30535,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"10823:94:41\",\n \"text\": \" @notice Internal function is used by `addPosition` and initialize function.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_addPosition\",\n \"nameLocation\": \"10931:12:41\",\n \"parameters\": {\n \"id\": 30544,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30537,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"10951:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30642,\n \"src\": \"10944:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30536,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10944:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30539,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"10965:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30642,\n \"src\": \"10958:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30538,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10958:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30541,\n \"mutability\": \"mutable\",\n \"name\": \"configurationData\",\n \"nameLocation\": \"10990:17:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30642,\n \"src\": \"10977:30:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 30540,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"10977:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30543,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"11014:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30642,\n \"src\": \"11009:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30542,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"11009:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"10943:83:41\"\n },\n \"returnParameters\": {\n \"id\": 30545,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"11036:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 30685,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"12687:508:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30684,\n \"nodeType\": \"Block\",\n \"src\": \"12762:433:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 30653\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30653,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"12818:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30684,\n \"src\": \"12811:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30652,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"12811:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30662,\n \"initialValue\": {\n \"condition\": {\n \"id\": 30654,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30647,\n \"src\": \"12831:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"baseExpression\": {\n \"id\": 30658,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"12868:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30660,\n \"indexExpression\": {\n \"id\": 30659,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30645,\n \"src\": \"12884:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"12868:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30661,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"12831:59:41\",\n \"trueExpression\": {\n \"baseExpression\": {\n \"id\": 30655,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"12845:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30657,\n \"indexExpression\": {\n \"id\": 30656,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30645,\n \"src\": \"12859:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"12845:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"12811:79:41\"\n },\n {\n \"assignments\": [\n 30664\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30664,\n \"mutability\": \"mutable\",\n \"name\": \"positionBalance\",\n \"nameLocation\": \"12995:15:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30684,\n \"src\": \"12987:23:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 30663,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"12987:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30668,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 30666,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30653,\n \"src\": \"13024:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30665,\n \"name\": \"_balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33227,\n \"src\": \"13013:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 30667,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13013:22:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"12987:48:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 30671,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30669,\n \"name\": \"positionBalance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30664,\n \"src\": \"13049:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 30670,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"13067:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"13049:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30677,\n \"nodeType\": \"IfStatement\",\n \"src\": \"13045:85:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 30673,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30653,\n \"src\": \"13102:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30674,\n \"name\": \"positionBalance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30664,\n \"src\": \"13114:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 30672,\n \"name\": \"Cellar__PositionNotEmpty\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30265,\n \"src\": \"13077:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint32_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint32,uint256) pure\"\n }\n },\n \"id\": 30675,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13077:53:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30676,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"13070:60:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30679,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30645,\n \"src\": \"13157:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30680,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30653,\n \"src\": \"13164:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30681,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30647,\n \"src\": \"13176:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30678,\n \"name\": \"_removePosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30754,\n \"src\": \"13141:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,bool)\"\n }\n },\n \"id\": 30682,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13141:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30683,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"13141:47:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30643,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"12480:202:41\",\n \"text\": \" @notice Remove the position at a given index from the list of positions used by the cellar.\\n @dev Called by strategist.\\n @param index index at which to remove the position\"\n },\n \"functionSelector\": \"33e15be2\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30650,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30649,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"12752:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"12752:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"12752:9:41\"\n }\n ],\n \"name\": \"removePosition\",\n \"nameLocation\": \"12696:14:41\",\n \"parameters\": {\n \"id\": 30648,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30645,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"12718:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30685,\n \"src\": \"12711:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30644,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"12711:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30647,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"12730:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30685,\n \"src\": \"12725:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30646,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"12725:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"12710:32:41\"\n },\n \"returnParameters\": {\n \"id\": 30651,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"12762:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30704,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"13321:160:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30703,\n \"nodeType\": \"Block\",\n \"src\": \"13417:64:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30698,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30688,\n \"src\": \"13443:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30699,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30690,\n \"src\": \"13450:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30700,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30692,\n \"src\": \"13462:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 30697,\n \"name\": \"_removePosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30754,\n \"src\": \"13427:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,bool)\"\n }\n },\n \"id\": 30701,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13427:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30702,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"13427:47:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30686,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"13201:115:41\",\n \"text\": \" @notice Allows Governance to force a cellar out of a position without making ANY external calls.\"\n },\n \"functionSelector\": \"a07bee0b\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30695,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30694,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"13407:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"13407:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"13407:9:41\"\n }\n ],\n \"name\": \"forcePositionOut\",\n \"nameLocation\": \"13330:16:41\",\n \"parameters\": {\n \"id\": 30693,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30688,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"13354:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30704,\n \"src\": \"13347:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30687,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13347:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30690,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"13368:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30704,\n \"src\": \"13361:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30689,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13361:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30692,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"13385:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30704,\n \"src\": \"13380:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30691,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13380:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"13346:51:41\"\n },\n \"returnParameters\": {\n \"id\": 30696,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"13417:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30754,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"13592:506:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30753,\n \"nodeType\": \"Block\",\n \"src\": \"13677:421:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"id\": 30716,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30714,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30709,\n \"src\": \"13691:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"id\": 30715,\n \"name\": \"holdingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30336,\n \"src\": \"13705:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"13691:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30720,\n \"nodeType\": \"IfStatement\",\n \"src\": \"13687:75:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30717,\n \"name\": \"Cellar__RemovingHoldingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30285,\n \"src\": \"13729:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 30718,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13729:33:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30719,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"13722:40:41\"\n }\n },\n {\n \"condition\": {\n \"id\": 30721,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30711,\n \"src\": \"13777:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseBody\": {\n \"id\": 30735,\n \"nodeType\": \"Block\",\n \"src\": \"13899:54:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30732,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30707,\n \"src\": \"13936:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30729,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"13913:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30731,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"13929:6:41\",\n \"memberName\": \"remove\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54629,\n \"src\": \"13913:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$\",\n \"typeString\": \"function (uint32[] storage pointer,uint32)\"\n }\n },\n \"id\": 30733,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13913:29:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30734,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"13913:29:41\"\n }\n ]\n },\n \"id\": 30736,\n \"nodeType\": \"IfStatement\",\n \"src\": \"13773:180:41\",\n \"trueBody\": {\n \"id\": 30728,\n \"nodeType\": \"Block\",\n \"src\": \"13790:103:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 30725,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30707,\n \"src\": \"13876:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"expression\": {\n \"id\": 30722,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"13855:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30724,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"13869:6:41\",\n \"memberName\": \"remove\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54629,\n \"src\": \"13855:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$\",\n \"typeString\": \"function (uint32[] storage pointer,uint32)\"\n }\n },\n \"id\": 30726,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"13855:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30727,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"13855:27:41\"\n }\n ]\n }\n },\n {\n \"expression\": {\n \"id\": 30741,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 30737,\n \"name\": \"isPositionUsed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30303,\n \"src\": \"13963:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint256_$_t_bool_$\",\n \"typeString\": \"mapping(uint256 => bool)\"\n }\n },\n \"id\": 30739,\n \"indexExpression\": {\n \"id\": 30738,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30709,\n \"src\": \"13978:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"13963:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 30740,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"13992:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"13963:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30742,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"13963:34:41\"\n },\n {\n \"expression\": {\n \"id\": 30746,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"delete\",\n \"prefix\": true,\n \"src\": \"14007:34:41\",\n \"subExpression\": {\n \"baseExpression\": {\n \"id\": 30743,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"14014:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 30745,\n \"indexExpression\": {\n \"id\": 30744,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30709,\n \"src\": \"14030:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14014:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30747,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14007:34:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30749,\n \"name\": \"positionId\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30709,\n \"src\": \"14073:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30750,\n \"name\": \"index\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30707,\n \"src\": \"14085:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30748,\n \"name\": \"PositionRemoved\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30218,\n \"src\": \"14057:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint32_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint32,uint256)\"\n }\n },\n \"id\": 30751,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"14057:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30752,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"14052:39:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30705,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"13487:100:41\",\n \"text\": \" @notice Internal helper function to remove positions from cellars tracked arrays.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_removePosition\",\n \"nameLocation\": \"13601:15:41\",\n \"parameters\": {\n \"id\": 30712,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30707,\n \"mutability\": \"mutable\",\n \"name\": \"index\",\n \"nameLocation\": \"13624:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30754,\n \"src\": \"13617:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30706,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13617:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30709,\n \"mutability\": \"mutable\",\n \"name\": \"positionId\",\n \"nameLocation\": \"13638:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30754,\n \"src\": \"13631:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30708,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13631:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30711,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"13655:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30754,\n \"src\": \"13650:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30710,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"13650:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"13616:51:41\"\n },\n \"returnParameters\": {\n \"id\": 30713,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"13677:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 30832,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"14385:798:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30831,\n \"nodeType\": \"Block\",\n \"src\": \"14475:708:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 30767\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30767,\n \"mutability\": \"mutable\",\n \"name\": \"newPosition1\",\n \"nameLocation\": \"14553:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30831,\n \"src\": \"14546:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30766,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"14546:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30768,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"14546:19:41\"\n },\n {\n \"assignments\": [\n 30770\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 30770,\n \"mutability\": \"mutable\",\n \"name\": \"newPosition2\",\n \"nameLocation\": \"14582:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30831,\n \"src\": \"14575:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30769,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"14575:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 30771,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"14575:19:41\"\n },\n {\n \"condition\": {\n \"id\": 30772,\n \"name\": \"inDebtArray\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30761,\n \"src\": \"14609:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseBody\": {\n \"id\": 30822,\n \"nodeType\": \"Block\",\n \"src\": \"14861:241:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30802,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30798,\n \"name\": \"newPosition1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30767,\n \"src\": \"14875:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"baseExpression\": {\n \"id\": 30799,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"14890:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30801,\n \"indexExpression\": {\n \"id\": 30800,\n \"name\": \"index2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30759,\n \"src\": \"14906:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14890:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"14875:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30803,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14875:38:41\"\n },\n {\n \"expression\": {\n \"id\": 30808,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30804,\n \"name\": \"newPosition2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30770,\n \"src\": \"14927:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"baseExpression\": {\n \"id\": 30805,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"14942:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30807,\n \"indexExpression\": {\n \"id\": 30806,\n \"name\": \"index1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30757,\n \"src\": \"14958:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14942:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"14927:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30809,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14927:38:41\"\n },\n {\n \"expression\": {\n \"id\": 30820,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"components\": [\n {\n \"baseExpression\": {\n \"id\": 30810,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"15011:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30812,\n \"indexExpression\": {\n \"id\": 30811,\n \"name\": \"index1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30757,\n \"src\": \"15027:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"15011:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 30813,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"15036:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30815,\n \"indexExpression\": {\n \"id\": 30814,\n \"name\": \"index2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30759,\n \"src\": \"15052:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"15036:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"id\": 30816,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"15010:50:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_uint32_$_t_uint32_$\",\n \"typeString\": \"tuple(uint32,uint32)\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"components\": [\n {\n \"id\": 30817,\n \"name\": \"newPosition1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30767,\n \"src\": \"15064:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30818,\n \"name\": \"newPosition2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30770,\n \"src\": \"15078:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"id\": 30819,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"15063:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_uint32_$_t_uint32_$\",\n \"typeString\": \"tuple(uint32,uint32)\"\n }\n },\n \"src\": \"15010:81:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30821,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"15010:81:41\"\n }\n ]\n },\n \"id\": 30823,\n \"nodeType\": \"IfStatement\",\n \"src\": \"14605:497:41\",\n \"trueBody\": {\n \"id\": 30797,\n \"nodeType\": \"Block\",\n \"src\": \"14622:233:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 30777,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30773,\n \"name\": \"newPosition1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30767,\n \"src\": \"14636:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"baseExpression\": {\n \"id\": 30774,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"14651:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30776,\n \"indexExpression\": {\n \"id\": 30775,\n \"name\": \"index2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30759,\n \"src\": \"14665:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14651:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"14636:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30778,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14636:36:41\"\n },\n {\n \"expression\": {\n \"id\": 30783,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 30779,\n \"name\": \"newPosition2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30770,\n \"src\": \"14686:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"baseExpression\": {\n \"id\": 30780,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"14701:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30782,\n \"indexExpression\": {\n \"id\": 30781,\n \"name\": \"index1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30757,\n \"src\": \"14715:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14701:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"src\": \"14686:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 30784,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14686:36:41\"\n },\n {\n \"expression\": {\n \"id\": 30795,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"components\": [\n {\n \"baseExpression\": {\n \"id\": 30785,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"14768:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30787,\n \"indexExpression\": {\n \"id\": 30786,\n \"name\": \"index1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30757,\n \"src\": \"14782:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14768:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 30788,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"14791:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 30790,\n \"indexExpression\": {\n \"id\": 30789,\n \"name\": \"index2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30759,\n \"src\": \"14805:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"14791:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"id\": 30791,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"14767:46:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_uint32_$_t_uint32_$\",\n \"typeString\": \"tuple(uint32,uint32)\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"components\": [\n {\n \"id\": 30792,\n \"name\": \"newPosition1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30767,\n \"src\": \"14817:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30793,\n \"name\": \"newPosition2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30770,\n \"src\": \"14831:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"id\": 30794,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"14816:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_uint32_$_t_uint32_$\",\n \"typeString\": \"tuple(uint32,uint32)\"\n }\n },\n \"src\": \"14767:77:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30796,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"14767:77:41\"\n }\n ]\n }\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 30825,\n \"name\": \"newPosition1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30767,\n \"src\": \"15133:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30826,\n \"name\": \"newPosition2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30770,\n \"src\": \"15147:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30827,\n \"name\": \"index1\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30757,\n \"src\": \"15161:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 30828,\n \"name\": \"index2\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30759,\n \"src\": \"15169:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 30824,\n \"name\": \"PositionSwapped\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30229,\n \"src\": \"15117:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,uint256,uint256)\"\n }\n },\n \"id\": 30829,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"15117:59:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30830,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"15112:64:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30755,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"14104:276:41\",\n \"text\": \" @notice Swap the positions at two given indexes.\\n @param index1 index of first position to swap\\n @param index2 index of second position to swap\\n @param inDebtArray bool indicating to switch positions in the debt array, or the credit array.\"\n },\n \"functionSelector\": \"379e0b13\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30764,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30763,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"14465:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"14465:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"14465:9:41\"\n }\n ],\n \"name\": \"swapPositions\",\n \"nameLocation\": \"14394:13:41\",\n \"parameters\": {\n \"id\": 30762,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30757,\n \"mutability\": \"mutable\",\n \"name\": \"index1\",\n \"nameLocation\": \"14415:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30832,\n \"src\": \"14408:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30756,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"14408:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30759,\n \"mutability\": \"mutable\",\n \"name\": \"index2\",\n \"nameLocation\": \"14430:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30832,\n \"src\": \"14423:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 30758,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"14423:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30761,\n \"mutability\": \"mutable\",\n \"name\": \"inDebtArray\",\n \"nameLocation\": \"14443:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30832,\n \"src\": \"14438:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30760,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"14438:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"14407:48:41\"\n },\n \"returnParameters\": {\n \"id\": 30765,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"14475:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30839,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"15503:71:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30833,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"15305:193:41\",\n \"text\": \" @notice Emitted when platform fees is changed.\\n @param oldPlatformFee value platform fee was changed from\\n @param newPlatformFee value platform fee was changed to\"\n },\n \"eventSelector\": \"44ada261ff5c9aacbf8d0687294799c8e3e0810ecc1eafd97419dfc31db5d523\",\n \"name\": \"PlatformFeeChanged\",\n \"nameLocation\": \"15509:18:41\",\n \"parameters\": {\n \"id\": 30838,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30835,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"oldPlatformFee\",\n \"nameLocation\": \"15535:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30839,\n \"src\": \"15528:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30834,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"15528:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30837,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPlatformFee\",\n \"nameLocation\": \"15558:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30839,\n \"src\": \"15551:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30836,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"15551:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"15527:46:41\"\n }\n },\n {\n \"id\": 30846,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"15822:81:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30840,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"15580:237:41\",\n \"text\": \" @notice Emitted when strategist platform fee cut is changed.\\n @param oldPlatformCut value strategist platform fee cut was changed from\\n @param newPlatformCut value strategist platform fee cut was changed to\"\n },\n \"eventSelector\": \"b5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868\",\n \"name\": \"StrategistPlatformCutChanged\",\n \"nameLocation\": \"15828:28:41\",\n \"parameters\": {\n \"id\": 30845,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30842,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"oldPlatformCut\",\n \"nameLocation\": \"15864:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30846,\n \"src\": \"15857:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30841,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"15857:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30844,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPlatformCut\",\n \"nameLocation\": \"15887:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30846,\n \"src\": \"15880:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30843,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"15880:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"15856:46:41\"\n }\n },\n {\n \"id\": 30853,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"16152:89:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30847,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"15909:238:41\",\n \"text\": \" @notice Emitted when strategists payout address is changed.\\n @param oldPayoutAddress value strategists payout address was changed from\\n @param newPayoutAddress value strategists payout address was changed to\"\n },\n \"eventSelector\": \"51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d\",\n \"name\": \"StrategistPayoutAddressChanged\",\n \"nameLocation\": \"16158:30:41\",\n \"parameters\": {\n \"id\": 30852,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30849,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"oldPayoutAddress\",\n \"nameLocation\": \"16197:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30853,\n \"src\": \"16189:24:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30848,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"16189:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30851,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPayoutAddress\",\n \"nameLocation\": \"16223:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30853,\n \"src\": \"16215:24:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30850,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"16215:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"16188:52:41\"\n }\n },\n {\n \"id\": 30856,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"16337:30:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30854,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"16247:85:41\",\n \"text\": \" @notice Attempted to change strategist fee cut with invalid value.\"\n },\n \"errorSelector\": \"3d0203e5\",\n \"name\": \"Cellar__InvalidFeeCut\",\n \"nameLocation\": \"16343:21:41\",\n \"parameters\": {\n \"id\": 30855,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"16364:2:41\"\n }\n },\n {\n \"id\": 30859,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"16457:27:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30857,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"16373:79:41\",\n \"text\": \" @notice Attempted to change platform fee with invalid value.\"\n },\n \"errorSelector\": \"5c2a50da\",\n \"name\": \"Cellar__InvalidFee\",\n \"nameLocation\": \"16463:18:41\",\n \"parameters\": {\n \"id\": 30858,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"16481:2:41\"\n }\n },\n {\n \"id\": 30868,\n \"nodeType\": \"StructDefinition\",\n \"src\": \"17030:157:41\",\n \"nodes\": [],\n \"canonicalName\": \"Cellar.FeeData\",\n \"members\": [\n {\n \"constant\": false,\n \"id\": 30861,\n \"mutability\": \"mutable\",\n \"name\": \"strategistPlatformCut\",\n \"nameLocation\": \"17062:21:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30868,\n \"src\": \"17055:28:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30860,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17055:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30863,\n \"mutability\": \"mutable\",\n \"name\": \"platformFee\",\n \"nameLocation\": \"17100:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30868,\n \"src\": \"17093:18:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30862,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17093:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30865,\n \"mutability\": \"mutable\",\n \"name\": \"lastAccrual\",\n \"nameLocation\": \"17128:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30868,\n \"src\": \"17121:18:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30864,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17121:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 30867,\n \"mutability\": \"mutable\",\n \"name\": \"strategistPayoutAddress\",\n \"nameLocation\": \"17157:23:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30868,\n \"src\": \"17149:31:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30866,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17149:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"name\": \"FeeData\",\n \"nameLocation\": \"17037:7:41\",\n \"scope\": 33437,\n \"visibility\": \"public\"\n },\n {\n \"id\": 30881,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"17256:207:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30869,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"17193:58:41\",\n \"text\": \" @notice Stores all fee data for cellar.\"\n },\n \"functionSelector\": \"e753e600\",\n \"mutability\": \"mutable\",\n \"name\": \"feeData\",\n \"nameLocation\": \"17271:7:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData\"\n },\n \"typeName\": {\n \"id\": 30871,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 30870,\n \"name\": \"FeeData\",\n \"nameLocations\": [\n \"17256:7:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30868,\n \"src\": \"17256:7:41\"\n },\n \"referencedDeclaration\": 30868,\n \"src\": \"17256:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage_ptr\",\n \"typeString\": \"struct Cellar.FeeData\"\n }\n },\n \"value\": {\n \"arguments\": [\n {\n \"hexValue\": \"302e3735653138\",\n \"id\": 30873,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17334:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_750000000000000000_by_1\",\n \"typeString\": \"int_const 750000000000000000\"\n },\n \"value\": \"0.75e18\"\n },\n {\n \"hexValue\": \"302e3031653138\",\n \"id\": 30874,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17368:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10000000000000000_by_1\",\n \"typeString\": \"int_const 10000000000000000\"\n },\n \"value\": \"0.01e18\"\n },\n {\n \"hexValue\": \"30\",\n \"id\": 30875,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17402:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n {\n \"arguments\": [\n {\n \"hexValue\": \"30\",\n \"id\": 30878,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17450:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n }\n ],\n \"id\": 30877,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"17442:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30876,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17442:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30879,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"17442:10:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_750000000000000000_by_1\",\n \"typeString\": \"int_const 750000000000000000\"\n },\n {\n \"typeIdentifier\": \"t_rational_10000000000000000_by_1\",\n \"typeString\": \"int_const 10000000000000000\"\n },\n {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 30872,\n \"name\": \"FeeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30868,\n \"src\": \"17289:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_struct$_FeeData_$30868_storage_ptr_$\",\n \"typeString\": \"type(struct Cellar.FeeData storage pointer)\"\n }\n },\n \"id\": 30880,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"structConstructorCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [\n \"17311:21:41\",\n \"17355:11:41\",\n \"17389:11:41\",\n \"17417:23:41\"\n ],\n \"names\": [\n \"strategistPlatformCut\",\n \"platformFee\",\n \"lastAccrual\",\n \"strategistPayoutAddress\"\n ],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"17289:174:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_memory_ptr\",\n \"typeString\": \"struct Cellar.FeeData memory\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30885,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"17556:48:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 30882,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"17470:81:41\",\n \"text\": \" @notice Sets the max possible performance fee for this cellar.\"\n },\n \"functionSelector\": \"3998a681\",\n \"mutability\": \"constant\",\n \"name\": \"MAX_PLATFORM_FEE\",\n \"nameLocation\": \"17579:16:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30883,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17556:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"value\": {\n \"hexValue\": \"302e32653138\",\n \"id\": 30884,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17598:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_200000000000000000_by_1\",\n \"typeString\": \"int_const 200000000000000000\"\n },\n \"value\": \"0.2e18\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30889,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"17689:41:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 30886,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"17611:73:41\",\n \"text\": \" @notice Sets the max possible fee cut for this cellar.\"\n },\n \"functionSelector\": \"eef33eca\",\n \"mutability\": \"constant\",\n \"name\": \"MAX_FEE_CUT\",\n \"nameLocation\": \"17712:11:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30887,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17689:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"value\": {\n \"hexValue\": \"31653138\",\n \"id\": 30888,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"17726:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30917,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"17864:260:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30916,\n \"nodeType\": \"Block\",\n \"src\": \"17929:195:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"id\": 30899,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 30897,\n \"name\": \"cut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30892,\n \"src\": \"17943:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 30898,\n \"name\": \"MAX_FEE_CUT\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30889,\n \"src\": \"17949:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"src\": \"17943:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30903,\n \"nodeType\": \"IfStatement\",\n \"src\": \"17939:53:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30900,\n \"name\": \"Cellar__InvalidFeeCut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30856,\n \"src\": \"17969:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 30901,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"17969:23:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30902,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"17962:30:41\"\n }\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 30905,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"18036:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 30906,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"18044:21:41\",\n \"memberName\": \"strategistPlatformCut\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30861,\n \"src\": \"18036:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n {\n \"id\": 30907,\n \"name\": \"cut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30892,\n \"src\": \"18067:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n ],\n \"id\": 30904,\n \"name\": \"StrategistPlatformCutChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30846,\n \"src\": \"18007:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$\",\n \"typeString\": \"function (uint64,uint64)\"\n }\n },\n \"id\": 30908,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"18007:64:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30909,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"18002:69:41\"\n },\n {\n \"expression\": {\n \"id\": 30914,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 30910,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"18082:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 30912,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"18090:21:41\",\n \"memberName\": \"strategistPlatformCut\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30861,\n \"src\": \"18082:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 30913,\n \"name\": \"cut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30892,\n \"src\": \"18114:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"src\": \"18082:35:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"id\": 30915,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"18082:35:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30890,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"17737:122:41\",\n \"text\": \" @notice Sets the Strategists cut of platform fees\\n @param cut the platform cut for the strategist\"\n },\n \"functionSelector\": \"b5292a99\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30895,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30894,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"17919:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"17919:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"17919:9:41\"\n }\n ],\n \"name\": \"setStrategistPlatformCut\",\n \"nameLocation\": \"17873:24:41\",\n \"parameters\": {\n \"id\": 30893,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30892,\n \"mutability\": \"mutable\",\n \"name\": \"cut\",\n \"nameLocation\": \"17905:3:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30917,\n \"src\": \"17898:10:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 30891,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"17898:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"17897:12:41\"\n },\n \"returnParameters\": {\n \"id\": 30896,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"17929:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30938,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"18252:215:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30937,\n \"nodeType\": \"Block\",\n \"src\": \"18323:144:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 30926,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"18369:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 30927,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"18377:23:41\",\n \"memberName\": \"strategistPayoutAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30867,\n \"src\": \"18369:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 30928,\n \"name\": \"payout\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30920,\n \"src\": \"18402:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 30925,\n \"name\": \"StrategistPayoutAddressChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30853,\n \"src\": \"18338:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$\",\n \"typeString\": \"function (address,address)\"\n }\n },\n \"id\": 30929,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"18338:71:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30930,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"18333:76:41\"\n },\n {\n \"expression\": {\n \"id\": 30935,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 30931,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"18420:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 30933,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"18428:23:41\",\n \"memberName\": \"strategistPayoutAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30867,\n \"src\": \"18420:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 30934,\n \"name\": \"payout\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30920,\n \"src\": \"18454:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"18420:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 30936,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"18420:40:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30918,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"18130:117:41\",\n \"text\": \" @notice Sets the Strategists payout address\\n @param payout the new strategist payout address\"\n },\n \"functionSelector\": \"b0a75d36\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 30923,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 30922,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"18313:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"18313:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"18313:9:41\"\n }\n ],\n \"name\": \"setStrategistPayoutAddress\",\n \"nameLocation\": \"18261:26:41\",\n \"parameters\": {\n \"id\": 30921,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30920,\n \"mutability\": \"mutable\",\n \"name\": \"payout\",\n \"nameLocation\": \"18296:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30938,\n \"src\": \"18288:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 30919,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"18288:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"18287:16:41\"\n },\n \"returnParameters\": {\n \"id\": 30924,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"18323:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30943,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"18720:39:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 30939,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"18585:130:41\",\n \"text\": \" @notice Emitted when cellar emergency state is changed.\\n @param isShutdown whether the cellar is shutdown\"\n },\n \"eventSelector\": \"b8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c\",\n \"name\": \"ShutdownChanged\",\n \"nameLocation\": \"18726:15:41\",\n \"parameters\": {\n \"id\": 30942,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30941,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"isShutdown\",\n \"nameLocation\": \"18747:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30943,\n \"src\": \"18742:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30940,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"18742:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"18741:17:41\"\n }\n },\n {\n \"id\": 30946,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"18859:33:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30944,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"18765:89:41\",\n \"text\": \" @notice Attempted action was prevented due to contract being shutdown.\"\n },\n \"errorSelector\": \"6f4a665a\",\n \"name\": \"Cellar__ContractShutdown\",\n \"nameLocation\": \"18865:24:41\",\n \"parameters\": {\n \"id\": 30945,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"18889:2:41\"\n }\n },\n {\n \"id\": 30949,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"18996:36:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30947,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"18898:93:41\",\n \"text\": \" @notice Attempted action was prevented due to contract not being shutdown.\"\n },\n \"errorSelector\": \"ec7165bf\",\n \"name\": \"Cellar__ContractNotShutdown\",\n \"nameLocation\": \"19002:27:41\",\n \"parameters\": {\n \"id\": 30948,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"19029:2:41\"\n }\n },\n {\n \"id\": 30952,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"19126:23:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 30950,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19038:83:41\",\n \"text\": \" @notice Attempted to interact with the cellar when it is paused.\"\n },\n \"errorSelector\": \"f301f8f0\",\n \"name\": \"Cellar__Paused\",\n \"nameLocation\": \"19132:14:41\",\n \"parameters\": {\n \"id\": 30951,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"19146:2:41\"\n }\n },\n {\n \"id\": 30955,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"19251:22:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30953,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19155:91:41\",\n \"text\": \" @notice Whether or not the contract is shutdown in case of an emergency.\"\n },\n \"functionSelector\": \"bf86d690\",\n \"mutability\": \"mutable\",\n \"name\": \"isShutdown\",\n \"nameLocation\": \"19263:10:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30954,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"19251:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30958,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"19367:23:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 30956,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19280:82:41\",\n \"text\": \" @notice Pauses all user entry/exits, and strategist rebalances.\"\n },\n \"functionSelector\": \"9959af94\",\n \"mutability\": \"mutable\",\n \"name\": \"ignorePause\",\n \"nameLocation\": \"19379:11:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30957,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"19367:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 30979,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"19501:175:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30978,\n \"nodeType\": \"Block\",\n \"src\": \"19550:126:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 30965,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"19564:12:41\",\n \"subExpression\": {\n \"id\": 30964,\n \"name\": \"ignorePause\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30958,\n \"src\": \"19565:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30975,\n \"nodeType\": \"IfStatement\",\n \"src\": \"19560:88:41\",\n \"trueBody\": {\n \"id\": 30974,\n \"nodeType\": \"Block\",\n \"src\": \"19578:70:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 30970,\n \"name\": \"this\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -28,\n \"src\": \"19631:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n ],\n \"id\": 30969,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"19623:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30968,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"19623:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30971,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"19623:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"expression\": {\n \"id\": 30966,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"19599:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30967,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"19608:14:41\",\n \"memberName\": \"isCallerPaused\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29520,\n \"src\": \"19599:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_address_$returns$_t_bool_$\",\n \"typeString\": \"function (address) view external returns (bool)\"\n }\n },\n \"id\": 30972,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"19599:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"functionReturnParameters\": 30963,\n \"id\": 30973,\n \"nodeType\": \"Return\",\n \"src\": \"19592:45:41\"\n }\n ]\n }\n },\n {\n \"expression\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 30976,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"19664:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"functionReturnParameters\": 30963,\n \"id\": 30977,\n \"nodeType\": \"Return\",\n \"src\": \"19657:12:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 30959,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19397:99:41\",\n \"text\": \" @notice View function external contracts can use to see if the cellar is paused.\"\n },\n \"functionSelector\": \"b187bd26\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"isPaused\",\n \"nameLocation\": \"19510:8:41\",\n \"parameters\": {\n \"id\": 30960,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"19518:2:41\"\n },\n \"returnParameters\": {\n \"id\": 30963,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 30962,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 30979,\n \"src\": \"19544:4:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 30961,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"19544:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"19543:6:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 30999,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"19769:166:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 30998,\n \"nodeType\": \"Block\",\n \"src\": \"19809:126:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 30984,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"19823:12:41\",\n \"subExpression\": {\n \"id\": 30983,\n \"name\": \"ignorePause\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30958,\n \"src\": \"19824:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30997,\n \"nodeType\": \"IfStatement\",\n \"src\": \"19819:110:41\",\n \"trueBody\": {\n \"id\": 30996,\n \"nodeType\": \"Block\",\n \"src\": \"19837:92:41\",\n \"statements\": [\n {\n \"condition\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 30989,\n \"name\": \"this\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -28,\n \"src\": \"19887:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n ],\n \"id\": 30988,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"19879:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 30987,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"19879:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 30990,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"19879:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"expression\": {\n \"id\": 30985,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"19855:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 30986,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"19864:14:41\",\n \"memberName\": \"isCallerPaused\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29520,\n \"src\": \"19855:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_address_$returns$_t_bool_$\",\n \"typeString\": \"function (address) view external returns (bool)\"\n }\n },\n \"id\": 30991,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"19855:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 30995,\n \"nodeType\": \"IfStatement\",\n \"src\": \"19851:67:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 30992,\n \"name\": \"Cellar__Paused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30952,\n \"src\": \"19902:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 30993,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"19902:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 30994,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"19895:23:41\"\n }\n }\n ]\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 30980,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19682:82:41\",\n \"text\": \" @notice Pauses all user entry/exits, and strategist rebalances.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_checkIfPaused\",\n \"nameLocation\": \"19778:14:41\",\n \"parameters\": {\n \"id\": 30981,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"19792:2:41\"\n },\n \"returnParameters\": {\n \"id\": 30982,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"19809:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31012,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"20035:96:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31011,\n \"nodeType\": \"Block\",\n \"src\": \"20094:37:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 31009,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31007,\n \"name\": \"ignorePause\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30958,\n \"src\": \"20104:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 31008,\n \"name\": \"toggle\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31002,\n \"src\": \"20118:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"src\": \"20104:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31010,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"20104:20:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 31000,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"19941:89:41\",\n \"text\": \" @notice Allows governance to choose whether or not to respect a pause.\"\n },\n \"functionSelector\": \"ebe3c328\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31005,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31004,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"20084:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"20084:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"20084:9:41\"\n }\n ],\n \"name\": \"toggleIgnorePause\",\n \"nameLocation\": \"20044:17:41\",\n \"parameters\": {\n \"id\": 31003,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31002,\n \"mutability\": \"mutable\",\n \"name\": \"toggle\",\n \"nameLocation\": \"20067:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31012,\n \"src\": \"20062:11:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 31001,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"20062:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"20061:13:41\"\n },\n \"returnParameters\": {\n \"id\": 31006,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20094:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 31022,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"20224:108:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31021,\n \"nodeType\": \"Block\",\n \"src\": \"20266:66:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 31016,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"20280:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31020,\n \"nodeType\": \"IfStatement\",\n \"src\": \"20276:49:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31017,\n \"name\": \"Cellar__ContractShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30946,\n \"src\": \"20299:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31018,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"20299:26:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31019,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"20292:33:41\"\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 31013,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"20137:82:41\",\n \"text\": \" @notice Prevent a function from being called during a shutdown.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_whenNotShutdown\",\n \"nameLocation\": \"20233:16:41\",\n \"parameters\": {\n \"id\": 31014,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20249:2:41\"\n },\n \"returnParameters\": {\n \"id\": 31015,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20266:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31040,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"20479:146:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31039,\n \"nodeType\": \"Block\",\n \"src\": \"20526:99:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31028,\n \"name\": \"_whenNotShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31022,\n \"src\": \"20536:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 31029,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"20536:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31030,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"20536:18:41\"\n },\n {\n \"expression\": {\n \"id\": 31033,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31031,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"20564:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 31032,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"20577:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"20564:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31034,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"20564:17:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"hexValue\": \"74727565\",\n \"id\": 31036,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"20613:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31035,\n \"name\": \"ShutdownChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30943,\n \"src\": \"20597:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_bool_$returns$__$\",\n \"typeString\": \"function (bool)\"\n }\n },\n \"id\": 31037,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"20597:21:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31038,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"20592:26:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 31023,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"20338:136:41\",\n \"text\": \" @notice Shutdown the cellar. Used in an emergency or if the cellar has been deprecated.\\n @dev In the case where\"\n },\n \"functionSelector\": \"0a680e18\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31026,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31025,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"20516:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"20516:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"20516:9:41\"\n }\n ],\n \"name\": \"initiateShutdown\",\n \"nameLocation\": \"20488:16:41\",\n \"parameters\": {\n \"id\": 31024,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20504:2:41\"\n },\n \"returnParameters\": {\n \"id\": 31027,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20526:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 31061,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"20682:179:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31060,\n \"nodeType\": \"Block\",\n \"src\": \"20725:136:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 31047,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"20739:11:41\",\n \"subExpression\": {\n \"id\": 31046,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"20740:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31051,\n \"nodeType\": \"IfStatement\",\n \"src\": \"20735:53:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31048,\n \"name\": \"Cellar__ContractNotShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30949,\n \"src\": \"20759:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31049,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"20759:29:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31050,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"20752:36:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 31054,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31052,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"20798:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 31053,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"20811:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"20798:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31055,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"20798:18:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31057,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"20848:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31056,\n \"name\": \"ShutdownChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30943,\n \"src\": \"20832:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_bool_$returns$__$\",\n \"typeString\": \"function (bool)\"\n }\n },\n \"id\": 31058,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"20832:22:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31059,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"20827:27:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 31041,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"20631:46:41\",\n \"text\": \" @notice Restart the cellar.\"\n },\n \"functionSelector\": \"5e2c576e\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31044,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31043,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"20715:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"20715:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"20715:9:41\"\n }\n ],\n \"name\": \"liftShutdown\",\n \"nameLocation\": \"20691:12:41\",\n \"parameters\": {\n \"id\": 31042,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20703:2:41\"\n },\n \"returnParameters\": {\n \"id\": 31045,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"20725:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 31065,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"21054:56:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 31062,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"20975:74:41\",\n \"text\": \" @notice Id to get the gravity bridge from the registry.\"\n },\n \"functionSelector\": \"cd82f8b1\",\n \"mutability\": \"constant\",\n \"name\": \"GRAVITY_BRIDGE_REGISTRY_SLOT\",\n \"nameLocation\": \"21078:28:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31063,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"21054:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"30\",\n \"id\": 31064,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"21109:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31069,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"21194:54:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 31066,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"21117:72:41\",\n \"text\": \" @notice Id to get the price router from the registry.\"\n },\n \"functionSelector\": \"5a400d25\",\n \"mutability\": \"constant\",\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"nameLocation\": \"21218:26:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31067,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"21194:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"32\",\n \"id\": 31068,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"21247:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_2_by_1\",\n \"typeString\": \"int_const 2\"\n },\n \"value\": \"2\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31073,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"21374:24:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 31070,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"21255:114:41\",\n \"text\": \" @notice Address of the platform's registry contract. Used to get the latest address of modules.\"\n },\n \"functionSelector\": \"7b103999\",\n \"mutability\": \"mutable\",\n \"name\": \"registry\",\n \"nameLocation\": \"21390:8:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n },\n \"typeName\": {\n \"id\": 31072,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 31071,\n \"name\": \"Registry\",\n \"nameLocations\": [\n \"21374:8:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30033,\n \"src\": \"21374:8:41\"\n },\n \"referencedDeclaration\": 30033,\n \"src\": \"21374:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31263,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"22778:1954:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31262,\n \"nodeType\": \"Block\",\n \"src\": \"23029:1703:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 31103,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31101,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"23039:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 31102,\n \"name\": \"_registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31077,\n \"src\": \"23050:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"src\": \"23039:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 31104,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23039:20:41\"\n },\n {\n \"expression\": {\n \"id\": 31112,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31105,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"23069:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 31109,\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31069,\n \"src\": \"23115:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31107,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"23095:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 31108,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"23104:10:41\",\n \"memberName\": \"getAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29189,\n \"src\": \"23095:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_uint256_$returns$_t_address_$\",\n \"typeString\": \"function (uint256) view external returns (address)\"\n }\n },\n \"id\": 31110,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23095:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31106,\n \"name\": \"PriceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 52732,\n \"src\": \"23083:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_PriceRouter_$52732_$\",\n \"typeString\": \"type(contract PriceRouter)\"\n }\n },\n \"id\": 31111,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23083:60:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"src\": \"23069:74:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 31113,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23069:74:41\"\n },\n {\n \"id\": 31217,\n \"nodeType\": \"Block\",\n \"src\": \"23154:1095:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31118,\n 31121,\n 31124,\n 31127,\n 31129\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31118,\n \"mutability\": \"mutable\",\n \"name\": \"_creditPositions\",\n \"nameLocation\": \"23202:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31217,\n \"src\": \"23186:32:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 31116,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23186:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 31117,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"23186:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31121,\n \"mutability\": \"mutable\",\n \"name\": \"_debtPositions\",\n \"nameLocation\": \"23252:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31217,\n \"src\": \"23236:30:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 31119,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23236:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 31120,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"23236:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage_ptr\",\n \"typeString\": \"uint32[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31124,\n \"mutability\": \"mutable\",\n \"name\": \"_creditConfigurationData\",\n \"nameLocation\": \"23299:24:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31217,\n \"src\": \"23284:39:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 31122,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23284:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"id\": 31123,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"23284:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_storage_$dyn_storage_ptr\",\n \"typeString\": \"bytes[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31127,\n \"mutability\": \"mutable\",\n \"name\": \"_debtConfigurationData\",\n \"nameLocation\": \"23356:22:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31217,\n \"src\": \"23341:37:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 31125,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23341:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"id\": 31126,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"23341:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_storage_$dyn_storage_ptr\",\n \"typeString\": \"bytes[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31129,\n \"mutability\": \"mutable\",\n \"name\": \"_holdingPosition\",\n \"nameLocation\": \"23403:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31217,\n \"src\": \"23396:23:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 31128,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23396:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31149,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 31132,\n \"name\": \"params\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31086,\n \"src\": \"23447:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"components\": [\n {\n \"baseExpression\": {\n \"id\": 31134,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"23456:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint32_$\",\n \"typeString\": \"type(uint32)\"\n },\n \"typeName\": {\n \"id\": 31133,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23456:6:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31135,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23456:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_uint32_$dyn_memory_ptr_$\",\n \"typeString\": \"type(uint32[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31137,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"23466:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint32_$\",\n \"typeString\": \"type(uint32)\"\n },\n \"typeName\": {\n \"id\": 31136,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23466:6:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31138,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23466:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_uint32_$dyn_memory_ptr_$\",\n \"typeString\": \"type(uint32[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31140,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"23476:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_bytes_storage_ptr_$\",\n \"typeString\": \"type(bytes storage pointer)\"\n },\n \"typeName\": {\n \"id\": 31139,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23476:5:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31141,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23476:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(bytes memory[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31143,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"23485:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_bytes_storage_ptr_$\",\n \"typeString\": \"type(bytes storage pointer)\"\n },\n \"typeName\": {\n \"id\": 31142,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23485:5:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31144,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23485:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(bytes memory[] memory)\"\n }\n },\n {\n \"id\": 31146,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"23494:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint8_$\",\n \"typeString\": \"type(uint8)\"\n },\n \"typeName\": {\n \"id\": 31145,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23494:5:41\",\n \"typeDescriptions\": {}\n }\n }\n ],\n \"id\": 31147,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"23455:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$\",\n \"typeString\": \"tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8))\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$\",\n \"typeString\": \"tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8))\"\n }\n ],\n \"expression\": {\n \"id\": 31130,\n \"name\": \"abi\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -1,\n \"src\": \"23436:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_abi\",\n \"typeString\": \"abi\"\n }\n },\n \"id\": 31131,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"23440:6:41\",\n \"memberName\": \"decode\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"23436:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_abidecode_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31148,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23436:65:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$\",\n \"typeString\": \"tuple(uint32[] memory,uint32[] memory,bytes memory[] memory,bytes memory[] memory,uint8)\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"23168:333:41\"\n },\n {\n \"body\": {\n \"id\": 31177,\n \"nodeType\": \"Block\",\n \"src\": \"23602:167:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 31161,\n \"name\": \"_creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31118,\n \"src\": \"23644:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31163,\n \"indexExpression\": {\n \"id\": 31162,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23661:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23644:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 31160,\n \"name\": \"_addPositionToCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30443,\n \"src\": \"23620:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32)\"\n }\n },\n \"id\": 31164,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23620:44:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31165,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23620:44:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31167,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23695:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31168,\n \"name\": \"_creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31118,\n \"src\": \"23698:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31170,\n \"indexExpression\": {\n \"id\": 31169,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23715:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23698:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31171,\n \"name\": \"_creditConfigurationData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31124,\n \"src\": \"23719:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 31173,\n \"indexExpression\": {\n \"id\": 31172,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23744:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23719:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31174,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"23748:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31166,\n \"name\": \"_addPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30642,\n \"src\": \"23682:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,bytes memory,bool)\"\n }\n },\n \"id\": 31175,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23682:72:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31176,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23682:72:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31156,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31153,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23568:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 31154,\n \"name\": \"_creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31118,\n \"src\": \"23572:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31155,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"23589:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"23572:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"23568:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31178,\n \"initializationExpression\": {\n \"assignments\": [\n 31151\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31151,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"23565:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31178,\n \"src\": \"23558:8:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 31150,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23558:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31152,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"23558:8:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 31158,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"23597:3:41\",\n \"subExpression\": {\n \"id\": 31157,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31151,\n \"src\": \"23599:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 31159,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23597:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"23553:216:41\"\n },\n {\n \"body\": {\n \"id\": 31206,\n \"nodeType\": \"Block\",\n \"src\": \"23829:160:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 31190,\n \"name\": \"_debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31121,\n \"src\": \"23871:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31192,\n \"indexExpression\": {\n \"id\": 31191,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23886:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23871:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 31189,\n \"name\": \"_addPositionToCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30443,\n \"src\": \"23847:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32)\"\n }\n },\n \"id\": 31193,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23847:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31194,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23847:42:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31196,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23920:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31197,\n \"name\": \"_debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31121,\n \"src\": \"23923:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31199,\n \"indexExpression\": {\n \"id\": 31198,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23938:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23923:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31200,\n \"name\": \"_debtConfigurationData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31127,\n \"src\": \"23942:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 31202,\n \"indexExpression\": {\n \"id\": 31201,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23965:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"23942:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"hexValue\": \"74727565\",\n \"id\": 31203,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"23969:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31195,\n \"name\": \"_addPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30642,\n \"src\": \"23907:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint32_$_t_bytes_memory_ptr_$_t_bool_$returns$__$\",\n \"typeString\": \"function (uint32,uint32,bytes memory,bool)\"\n }\n },\n \"id\": 31204,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"23907:67:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31205,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23907:67:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31185,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31182,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23797:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 31183,\n \"name\": \"_debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31121,\n \"src\": \"23801:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31184,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"23816:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"23801:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"23797:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31207,\n \"initializationExpression\": {\n \"assignments\": [\n 31180\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31180,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"23794:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31207,\n \"src\": \"23787:8:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 31179,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"23787:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31181,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"23787:8:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 31187,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"23824:3:41\",\n \"subExpression\": {\n \"id\": 31186,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31180,\n \"src\": \"23826:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"id\": 31188,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"23824:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"23782:207:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31211,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 31208,\n \"name\": \"_creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31118,\n \"src\": \"24172:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_memory_ptr\",\n \"typeString\": \"uint32[] memory\"\n }\n },\n \"id\": 31209,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"24189:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"24172:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31210,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"24198:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"24172:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"documentation\": \"@dev No cellars will be deployed with a zero length credit positions array.\",\n \"id\": 31216,\n \"nodeType\": \"IfStatement\",\n \"src\": \"24168:70:41\",\n \"trueBody\": {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31213,\n \"name\": \"_holdingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31129,\n \"src\": \"24221:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 31212,\n \"name\": \"_setHoldingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30396,\n \"src\": \"24201:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$returns$__$\",\n \"typeString\": \"function (uint32)\"\n }\n },\n \"id\": 31214,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"24201:37:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31215,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"24201:37:41\"\n }\n }\n ]\n },\n {\n \"expression\": {\n \"id\": 31226,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31218,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"24437:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 31220,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"24445:11:41\",\n \"memberName\": \"lastAccrual\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30865,\n \"src\": \"24437:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31223,\n \"name\": \"block\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -4,\n \"src\": \"24466:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_block\",\n \"typeString\": \"block\"\n }\n },\n \"id\": 31224,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"24472:9:41\",\n \"memberName\": \"timestamp\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"24466:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31222,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24459:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint64_$\",\n \"typeString\": \"type(uint64)\"\n },\n \"typeName\": {\n \"id\": 31221,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24459:6:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31225,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"24459:23:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"src\": \"24437:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"id\": 31227,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"24437:45:41\"\n },\n {\n \"assignments\": [\n null,\n null,\n null,\n null,\n null,\n 31229,\n null,\n null\n ],\n \"declarations\": [\n null,\n null,\n null,\n null,\n null,\n {\n \"constant\": false,\n \"id\": 31229,\n \"mutability\": \"mutable\",\n \"name\": \"_strategistPayout\",\n \"nameLocation\": \"24512:17:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31262,\n \"src\": \"24504:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31228,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24504:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n null,\n null\n ],\n \"id\": 31255,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 31232,\n \"name\": \"params\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31086,\n \"src\": \"24561:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n {\n \"components\": [\n {\n \"baseExpression\": {\n \"id\": 31234,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24582:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint32_$\",\n \"typeString\": \"type(uint32)\"\n },\n \"typeName\": {\n \"id\": 31233,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24582:6:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31235,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"24582:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_uint32_$dyn_memory_ptr_$\",\n \"typeString\": \"type(uint32[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31237,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24592:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint32_$\",\n \"typeString\": \"type(uint32)\"\n },\n \"typeName\": {\n \"id\": 31236,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24592:6:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31238,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"24592:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_uint32_$dyn_memory_ptr_$\",\n \"typeString\": \"type(uint32[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31240,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24602:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_bytes_storage_ptr_$\",\n \"typeString\": \"type(bytes storage pointer)\"\n },\n \"typeName\": {\n \"id\": 31239,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24602:5:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31241,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"24602:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(bytes memory[] memory)\"\n }\n },\n {\n \"baseExpression\": {\n \"id\": 31243,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24611:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_bytes_storage_ptr_$\",\n \"typeString\": \"type(bytes storage pointer)\"\n },\n \"typeName\": {\n \"id\": 31242,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24611:5:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31244,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"24611:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(bytes memory[] memory)\"\n }\n },\n {\n \"id\": 31246,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24620:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint8_$\",\n \"typeString\": \"type(uint8)\"\n },\n \"typeName\": {\n \"id\": 31245,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24620:5:41\",\n \"typeDescriptions\": {}\n }\n },\n {\n \"id\": 31248,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24627:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 31247,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24627:7:41\",\n \"typeDescriptions\": {}\n }\n },\n {\n \"id\": 31250,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24636:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint128_$\",\n \"typeString\": \"type(uint128)\"\n },\n \"typeName\": {\n \"id\": 31249,\n \"name\": \"uint128\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24636:7:41\",\n \"typeDescriptions\": {}\n }\n },\n {\n \"id\": 31252,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"24645:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint128_$\",\n \"typeString\": \"type(uint128)\"\n },\n \"typeName\": {\n \"id\": 31251,\n \"name\": \"uint128\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"24645:7:41\",\n \"typeDescriptions\": {}\n }\n }\n ],\n \"id\": 31253,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"24581:72:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_address_$_$_t_type$_t_uint128_$_$_t_type$_t_uint128_$_$\",\n \"typeString\": \"tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8),type(address),type(uint128),type(uint128))\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n },\n {\n \"typeIdentifier\": \"t_tuple$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$_t_type$_t_address_$_$_t_type$_t_uint128_$_$_t_type$_t_uint128_$_$\",\n \"typeString\": \"tuple(type(uint32[] memory),type(uint32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(uint8),type(address),type(uint128),type(uint128))\"\n }\n ],\n \"expression\": {\n \"id\": 31230,\n \"name\": \"abi\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -1,\n \"src\": \"24537:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_abi\",\n \"typeString\": \"abi\"\n }\n },\n \"id\": 31231,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"24541:6:41\",\n \"memberName\": \"decode\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"24537:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_abidecode_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31254,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"24537:126:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$_t_address_payable_$_t_uint128_$_t_uint128_$\",\n \"typeString\": \"tuple(uint32[] memory,uint32[] memory,bytes memory[] memory,bytes memory[] memory,uint8,address payable,uint128,uint128)\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"24493:170:41\"\n },\n {\n \"expression\": {\n \"id\": 31260,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31256,\n \"name\": \"feeData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30881,\n \"src\": \"24674:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_FeeData_$30868_storage\",\n \"typeString\": \"struct Cellar.FeeData storage ref\"\n }\n },\n \"id\": 31258,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"24682:23:41\",\n \"memberName\": \"strategistPayoutAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 30867,\n \"src\": \"24674:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 31259,\n \"name\": \"_strategistPayout\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31229,\n \"src\": \"24708:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"24674:51:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 31261,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"24674:51:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 31074,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"21405:1368:41\",\n \"text\": \" @dev Owner should be set to the Gravity Bridge, which relays instructions from the Steward\\n module to the cellars.\\n https://github.com/PeggyJV/steward\\n https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol\\n @param _registry address of the platform's registry contract\\n @param _asset address of underlying token used for the for accounting, depositing, and withdrawing\\n @param _name name of this cellar's share token\\n @param _symbol symbol of this cellar's share token\\n @param params abi encode values.\\n - _creditPositions ids of the credit positions to initialize the cellar with\\n - _debtPositions ids of the credit positions to initialize the cellar with\\n - _creditConfigurationData configuration data for each position\\n - _debtConfigurationData configuration data for each position\\n - _holdingIndex the index in _creditPositions to use as the holding position.\\n - _strategistPayout the address to send the strategists fee shares.\\n - _assetRiskTolerance this cellars risk tolerance for assets it is exposed to\\n - _protocolRiskTolerance this cellars risk tolerance for protocols it will use\"\n },\n \"implemented\": true,\n \"kind\": \"constructor\",\n \"modifiers\": [\n {\n \"arguments\": [\n {\n \"id\": 31089,\n \"name\": \"_asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31080,\n \"src\": \"22943:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n {\n \"id\": 31090,\n \"name\": \"_name\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31082,\n \"src\": \"22951:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_memory_ptr\",\n \"typeString\": \"string memory\"\n }\n },\n {\n \"id\": 31091,\n \"name\": \"_symbol\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31084,\n \"src\": \"22958:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_memory_ptr\",\n \"typeString\": \"string memory\"\n }\n },\n {\n \"hexValue\": \"3138\",\n \"id\": 31092,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"22967:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n \"value\": \"18\"\n }\n ],\n \"id\": 31093,\n \"kind\": \"baseConstructorSpecifier\",\n \"modifierName\": {\n \"id\": 31088,\n \"name\": \"ERC4626\",\n \"nameLocations\": [\n \"22935:7:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 35137,\n \"src\": \"22935:7:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"22935:35:41\"\n },\n {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"id\": 31097,\n \"name\": \"GRAVITY_BRIDGE_REGISTRY_SLOT\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31065,\n \"src\": \"22998:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31095,\n \"name\": \"_registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31077,\n \"src\": \"22977:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 31096,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"22987:10:41\",\n \"memberName\": \"getAddress\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29189,\n \"src\": \"22977:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_uint256_$returns$_t_address_$\",\n \"typeString\": \"function (uint256) view external returns (address)\"\n }\n },\n \"id\": 31098,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"22977:50:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"id\": 31099,\n \"kind\": \"baseConstructorSpecifier\",\n \"modifierName\": {\n \"id\": 31094,\n \"name\": \"Owned\",\n \"nameLocations\": [\n \"22971:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26585,\n \"src\": \"22971:5:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"22971:57:41\"\n }\n ],\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"parameters\": {\n \"id\": 31087,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31077,\n \"mutability\": \"mutable\",\n \"name\": \"_registry\",\n \"nameLocation\": \"22808:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31263,\n \"src\": \"22799:18:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n },\n \"typeName\": {\n \"id\": 31076,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 31075,\n \"name\": \"Registry\",\n \"nameLocations\": [\n \"22799:8:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30033,\n \"src\": \"22799:8:41\"\n },\n \"referencedDeclaration\": 30033,\n \"src\": \"22799:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31080,\n \"mutability\": \"mutable\",\n \"name\": \"_asset\",\n \"nameLocation\": \"22833:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31263,\n \"src\": \"22827:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n },\n \"typeName\": {\n \"id\": 31079,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 31078,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"22827:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"22827:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"22827:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31082,\n \"mutability\": \"mutable\",\n \"name\": \"_name\",\n \"nameLocation\": \"22863:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31263,\n \"src\": \"22849:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_memory_ptr\",\n \"typeString\": \"string\"\n },\n \"typeName\": {\n \"id\": 31081,\n \"name\": \"string\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"22849:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_storage_ptr\",\n \"typeString\": \"string\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31084,\n \"mutability\": \"mutable\",\n \"name\": \"_symbol\",\n \"nameLocation\": \"22892:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31263,\n \"src\": \"22878:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_memory_ptr\",\n \"typeString\": \"string\"\n },\n \"typeName\": {\n \"id\": 31083,\n \"name\": \"string\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"22878:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_string_storage_ptr\",\n \"typeString\": \"string\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31086,\n \"mutability\": \"mutable\",\n \"name\": \"params\",\n \"nameLocation\": \"22922:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31263,\n \"src\": \"22909:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 31085,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"22909:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"22789:145:41\"\n },\n \"returnParameters\": {\n \"id\": 31100,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"23029:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31270,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"25016:70:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 31264,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"24845:166:41\",\n \"text\": \" @notice Emitted when share locking period is changed.\\n @param oldPeriod the old locking period\\n @param newPeriod the new locking period\"\n },\n \"eventSelector\": \"227ff5c6b5ffb395236b09fd1b472bb128b36eaa17556633feefe28e94411f24\",\n \"name\": \"ShareLockingPeriodChanged\",\n \"nameLocation\": \"25022:25:41\",\n \"parameters\": {\n \"id\": 31269,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31266,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"oldPeriod\",\n \"nameLocation\": \"25056:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31270,\n \"src\": \"25048:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31265,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"25048:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31268,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newPeriod\",\n \"nameLocation\": \"25075:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31270,\n \"src\": \"25067:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31267,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"25067:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"25047:38:41\"\n }\n },\n {\n \"id\": 31273,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"25161:27:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31271,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25092:64:41\",\n \"text\": \" @notice Attempted an action with zero shares.\"\n },\n \"errorSelector\": \"84de2a6e\",\n \"name\": \"Cellar__ZeroShares\",\n \"nameLocation\": \"25167:18:41\",\n \"parameters\": {\n \"id\": 31272,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"25185:2:41\"\n }\n },\n {\n \"id\": 31276,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"25263:27:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31274,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25194:64:41\",\n \"text\": \" @notice Attempted an action with zero assets.\"\n },\n \"errorSelector\": \"97683005\",\n \"name\": \"Cellar__ZeroAssets\",\n \"nameLocation\": \"25269:18:41\",\n \"parameters\": {\n \"id\": 31275,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"25287:2:41\"\n }\n },\n {\n \"id\": 31281,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"25441:53:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31277,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25296:140:41\",\n \"text\": \" @notice Withdraw did not withdraw all assets.\\n @param assetsOwed the remaining assets owed that were not withdrawn.\"\n },\n \"errorSelector\": \"cc5ea39b\",\n \"name\": \"Cellar__IncompleteWithdraw\",\n \"nameLocation\": \"25447:26:41\",\n \"parameters\": {\n \"id\": 31280,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31279,\n \"mutability\": \"mutable\",\n \"name\": \"assetsOwed\",\n \"nameLocation\": \"25482:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31281,\n \"src\": \"25474:18:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31278,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"25474:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"25473:20:41\"\n }\n },\n {\n \"id\": 31286,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"25629:57:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31282,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25500:124:41\",\n \"text\": \" @notice Attempted to withdraw an illiquid position.\\n @param illiquidPosition the illiquid position.\"\n },\n \"errorSelector\": \"f2018f6f\",\n \"name\": \"Cellar__IlliquidWithdraw\",\n \"nameLocation\": \"25635:24:41\",\n \"parameters\": {\n \"id\": 31285,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31284,\n \"mutability\": \"mutable\",\n \"name\": \"illiquidPosition\",\n \"nameLocation\": \"25668:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31286,\n \"src\": \"25660:24:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31283,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"25660:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"25659:26:41\"\n }\n },\n {\n \"id\": 31289,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"25780:39:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31287,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25692:83:41\",\n \"text\": \" @notice Attempted to set `shareLockPeriod` to an invalid number.\"\n },\n \"errorSelector\": \"e9808cfc\",\n \"name\": \"Cellar__InvalidShareLockPeriod\",\n \"nameLocation\": \"25786:30:41\",\n \"parameters\": {\n \"id\": 31288,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"25816:2:41\"\n }\n },\n {\n \"id\": 31296,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"26036:83:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31290,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"25825:206:41\",\n \"text\": \" @notice Attempted to burn shares when they are locked.\\n @param timeSharesAreUnlocked time when caller can transfer/redeem shares\\n @param currentBlock the current block number.\"\n },\n \"errorSelector\": \"1be3b8fc\",\n \"name\": \"Cellar__SharesAreLocked\",\n \"nameLocation\": \"26042:23:41\",\n \"parameters\": {\n \"id\": 31295,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31292,\n \"mutability\": \"mutable\",\n \"name\": \"timeSharesAreUnlocked\",\n \"nameLocation\": \"26074:21:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31296,\n \"src\": \"26066:29:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31291,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26066:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31294,\n \"mutability\": \"mutable\",\n \"name\": \"currentBlock\",\n \"nameLocation\": \"26105:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31296,\n \"src\": \"26097:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31293,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26097:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"26065:53:41\"\n }\n },\n {\n \"id\": 31301,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"26218:62:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31297,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26125:88:41\",\n \"text\": \" @notice Attempted deposit on behalf of a user without being approved.\"\n },\n \"errorSelector\": \"d21c7c94\",\n \"name\": \"Cellar__NotApprovedToDepositOnBehalf\",\n \"nameLocation\": \"26224:36:41\",\n \"parameters\": {\n \"id\": 31300,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31299,\n \"mutability\": \"mutable\",\n \"name\": \"depositor\",\n \"nameLocation\": \"26269:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31301,\n \"src\": \"26261:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31298,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26261:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"26260:19:41\"\n }\n },\n {\n \"id\": 31307,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"26377:58:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 31302,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26286:86:41\",\n \"text\": \" @notice Shares must be locked for at least 5 minutes after minting.\"\n },\n \"functionSelector\": \"0051a3b7\",\n \"mutability\": \"constant\",\n \"name\": \"MINIMUM_SHARE_LOCK_PERIOD\",\n \"nameLocation\": \"26401:25:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31303,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26377:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_rational_300_by_1\",\n \"typeString\": \"int_const 300\"\n },\n \"id\": 31306,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"hexValue\": \"35\",\n \"id\": 31304,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"26429:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_5_by_1\",\n \"typeString\": \"int_const 5\"\n },\n \"value\": \"5\"\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"*\",\n \"rightExpression\": {\n \"hexValue\": \"3630\",\n \"id\": 31305,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"26433:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_60_by_1\",\n \"typeString\": \"int_const 60\"\n },\n \"value\": \"60\"\n },\n \"src\": \"26429:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_300_by_1\",\n \"typeString\": \"int_const 300\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31311,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"26528:58:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 31308,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26442:81:41\",\n \"text\": \" @notice Shares can be locked for at most 2 days after minting.\"\n },\n \"functionSelector\": \"0402ab63\",\n \"mutability\": \"constant\",\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"nameLocation\": \"26552:25:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31309,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26528:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"32\",\n \"id\": 31310,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"26580:6:41\",\n \"subdenomination\": \"days\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_172800_by_1\",\n \"typeString\": \"int_const 172800\"\n },\n \"value\": \"2\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31315,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"26734:58:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 31312,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26593:136:41\",\n \"text\": \" @notice After deposits users must wait `shareLockPeriod` time before being able to transfer or withdraw their shares.\"\n },\n \"functionSelector\": \"9fdb11b6\",\n \"mutability\": \"mutable\",\n \"name\": \"shareLockPeriod\",\n \"nameLocation\": \"26749:15:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31313,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26734:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"id\": 31314,\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31311,\n \"src\": \"26767:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31320,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"26898:57:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 31316,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26799:94:41\",\n \"text\": \" @notice mapping that stores every users last time stamp they minted shares.\"\n },\n \"functionSelector\": \"687c2b50\",\n \"mutability\": \"mutable\",\n \"name\": \"userShareLockStartTime\",\n \"nameLocation\": \"26933:22:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n },\n \"typeName\": {\n \"id\": 31319,\n \"keyType\": {\n \"id\": 31317,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26906:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"Mapping\",\n \"src\": \"26898:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n },\n \"valueType\": {\n \"id\": 31318,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"26917:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 31353,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"27075:366:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31352,\n \"nodeType\": \"Block\",\n \"src\": \"27139:302:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"id\": 31334,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31330,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31328,\n \"name\": \"newLock\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31323,\n \"src\": \"27153:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 31329,\n \"name\": \"MINIMUM_SHARE_LOCK_PERIOD\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31307,\n \"src\": \"27163:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"27153:35:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"||\",\n \"rightExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31333,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31331,\n \"name\": \"newLock\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31323,\n \"src\": \"27192:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 31332,\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31311,\n \"src\": \"27202:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"27192:35:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"src\": \"27153:74:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31338,\n \"nodeType\": \"IfStatement\",\n \"src\": \"27149:131:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31335,\n \"name\": \"Cellar__InvalidShareLockPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31289,\n \"src\": \"27248:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31336,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"27248:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31337,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"27241:39:41\"\n }\n },\n {\n \"assignments\": [\n 31340\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31340,\n \"mutability\": \"mutable\",\n \"name\": \"oldLockingPeriod\",\n \"nameLocation\": \"27298:16:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31352,\n \"src\": \"27290:24:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31339,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"27290:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31342,\n \"initialValue\": {\n \"id\": 31341,\n \"name\": \"shareLockPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31315,\n \"src\": \"27317:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"27290:42:41\"\n },\n {\n \"expression\": {\n \"id\": 31345,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31343,\n \"name\": \"shareLockPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31315,\n \"src\": \"27342:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 31344,\n \"name\": \"newLock\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31323,\n \"src\": \"27360:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"27342:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31346,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"27342:25:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 31348,\n \"name\": \"oldLockingPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31340,\n \"src\": \"27408:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31349,\n \"name\": \"newLock\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31323,\n \"src\": \"27426:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31347,\n \"name\": \"ShareLockingPeriodChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31270,\n \"src\": \"27382:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256)\"\n }\n },\n \"id\": 31350,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"27382:52:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31351,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"27377:57:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 31321,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"26962:108:41\",\n \"text\": \" @notice Allows share lock period to be updated.\\n @param newLock the new lock period\"\n },\n \"functionSelector\": \"9c552ca8\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31326,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31325,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"27129:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"27129:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"27129:9:41\"\n }\n ],\n \"name\": \"setShareLockPeriod\",\n \"nameLocation\": \"27084:18:41\",\n \"parameters\": {\n \"id\": 31324,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31323,\n \"mutability\": \"mutable\",\n \"name\": \"newLock\",\n \"nameLocation\": \"27111:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31353,\n \"src\": \"27103:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31322,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"27103:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"27102:17:41\"\n },\n \"returnParameters\": {\n \"id\": 31327,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"27139:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 31388,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"27600:380:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31387,\n \"nodeType\": \"Block\",\n \"src\": \"27659:321:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31360\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31360,\n \"mutability\": \"mutable\",\n \"name\": \"lockTime\",\n \"nameLocation\": \"27677:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31387,\n \"src\": \"27669:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31359,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"27669:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31364,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 31361,\n \"name\": \"userShareLockStartTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31320,\n \"src\": \"27688:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 31363,\n \"indexExpression\": {\n \"id\": 31362,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31356,\n \"src\": \"27711:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"27688:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"27669:48:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31367,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31365,\n \"name\": \"lockTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31360,\n \"src\": \"27731:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31366,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"27743:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"27731:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31386,\n \"nodeType\": \"IfStatement\",\n \"src\": \"27727:247:41\",\n \"trueBody\": {\n \"id\": 31385,\n \"nodeType\": \"Block\",\n \"src\": \"27746:228:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31369\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31369,\n \"mutability\": \"mutable\",\n \"name\": \"timeSharesAreUnlocked\",\n \"nameLocation\": \"27768:21:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31385,\n \"src\": \"27760:29:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31368,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"27760:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31373,\n \"initialValue\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31372,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31370,\n \"name\": \"lockTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31360,\n \"src\": \"27792:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 31371,\n \"name\": \"shareLockPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31315,\n \"src\": \"27803:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"27792:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"27760:58:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31377,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31374,\n \"name\": \"timeSharesAreUnlocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31369,\n \"src\": \"27836:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 31375,\n \"name\": \"block\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -4,\n \"src\": \"27860:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_block\",\n \"typeString\": \"block\"\n }\n },\n \"id\": 31376,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"27866:9:41\",\n \"memberName\": \"timestamp\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"27860:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"27836:39:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31384,\n \"nodeType\": \"IfStatement\",\n \"src\": \"27832:131:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 31379,\n \"name\": \"timeSharesAreUnlocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31369,\n \"src\": \"27924:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"id\": 31380,\n \"name\": \"block\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -4,\n \"src\": \"27947:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_block\",\n \"typeString\": \"block\"\n }\n },\n \"id\": 31381,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"27953:9:41\",\n \"memberName\": \"timestamp\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"27947:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31378,\n \"name\": \"Cellar__SharesAreLocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31296,\n \"src\": \"27900:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256) pure\"\n }\n },\n \"id\": 31382,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"27900:63:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31383,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"27893:70:41\"\n }\n }\n ]\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 31354,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"27447:148:41\",\n \"text\": \" @notice helper function that checks enough time has passed to unlock shares.\\n @param owner the address of the user to check\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_checkIfSharesLocked\",\n \"nameLocation\": \"27609:20:41\",\n \"parameters\": {\n \"id\": 31357,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31356,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"27638:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31388,\n \"src\": \"27630:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31355,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"27630:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"27629:15:41\"\n },\n \"returnParameters\": {\n \"id\": 31358,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"27659:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31411,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"28062:169:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31410,\n \"nodeType\": \"Block\",\n \"src\": \"28139:92:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31400,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"28170:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31401,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"28174:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"28170:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31399,\n \"name\": \"_checkIfSharesLocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31388,\n \"src\": \"28149:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$returns$__$\",\n \"typeString\": \"function (address) view\"\n }\n },\n \"id\": 31402,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"28149:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31403,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"28149:32:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31406,\n \"name\": \"to\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31391,\n \"src\": \"28213:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31407,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31393,\n \"src\": \"28217:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31404,\n \"name\": \"super\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -25,\n \"src\": \"28198:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_super$_Cellar_$33437_$\",\n \"typeString\": \"type(contract super Cellar)\"\n }\n },\n \"id\": 31405,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"28204:8:41\",\n \"memberName\": \"transfer\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34306,\n \"src\": \"28198:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$\",\n \"typeString\": \"function (address,uint256) returns (bool)\"\n }\n },\n \"id\": 31408,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"28198:26:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"functionReturnParameters\": 31398,\n \"id\": 31409,\n \"nodeType\": \"Return\",\n \"src\": \"28191:33:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34306\n ],\n \"documentation\": {\n \"id\": 31389,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"27986:71:41\",\n \"text\": \" @notice Override `transfer` to add share lock check.\"\n },\n \"functionSelector\": \"a9059cbb\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"transfer\",\n \"nameLocation\": \"28071:8:41\",\n \"overrides\": {\n \"id\": 31395,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"28115:8:41\"\n },\n \"parameters\": {\n \"id\": 31394,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31391,\n \"mutability\": \"mutable\",\n \"name\": \"to\",\n \"nameLocation\": \"28088:2:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31411,\n \"src\": \"28080:10:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31390,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28080:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31393,\n \"mutability\": \"mutable\",\n \"name\": \"amount\",\n \"nameLocation\": \"28100:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31411,\n \"src\": \"28092:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31392,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28092:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28079:28:41\"\n },\n \"returnParameters\": {\n \"id\": 31398,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31397,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31411,\n \"src\": \"28133:4:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 31396,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28133:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28132:6:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31436,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"28317:191:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31435,\n \"nodeType\": \"Block\",\n \"src\": \"28412:96:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31425,\n \"name\": \"from\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31414,\n \"src\": \"28443:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31424,\n \"name\": \"_checkIfSharesLocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31388,\n \"src\": \"28422:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$returns$__$\",\n \"typeString\": \"function (address) view\"\n }\n },\n \"id\": 31426,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"28422:26:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31427,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"28422:26:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31430,\n \"name\": \"from\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31414,\n \"src\": \"28484:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31431,\n \"name\": \"to\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31416,\n \"src\": \"28490:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31432,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31418,\n \"src\": \"28494:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31428,\n \"name\": \"super\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -25,\n \"src\": \"28465:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_super$_Cellar_$33437_$\",\n \"typeString\": \"type(contract super Cellar)\"\n }\n },\n \"id\": 31429,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"28471:12:41\",\n \"memberName\": \"transferFrom\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34367,\n \"src\": \"28465:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$\",\n \"typeString\": \"function (address,address,uint256) returns (bool)\"\n }\n },\n \"id\": 31433,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"28465:36:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"functionReturnParameters\": 31423,\n \"id\": 31434,\n \"nodeType\": \"Return\",\n \"src\": \"28458:43:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34367\n ],\n \"documentation\": {\n \"id\": 31412,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"28237:75:41\",\n \"text\": \" @notice Override `transferFrom` to add share lock check.\"\n },\n \"functionSelector\": \"23b872dd\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"transferFrom\",\n \"nameLocation\": \"28326:12:41\",\n \"overrides\": {\n \"id\": 31420,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"28388:8:41\"\n },\n \"parameters\": {\n \"id\": 31419,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31414,\n \"mutability\": \"mutable\",\n \"name\": \"from\",\n \"nameLocation\": \"28347:4:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31436,\n \"src\": \"28339:12:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31413,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28339:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31416,\n \"mutability\": \"mutable\",\n \"name\": \"to\",\n \"nameLocation\": \"28361:2:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31436,\n \"src\": \"28353:10:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31415,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28353:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31418,\n \"mutability\": \"mutable\",\n \"name\": \"amount\",\n \"nameLocation\": \"28373:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31436,\n \"src\": \"28365:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31417,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28365:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28338:42:41\"\n },\n \"returnParameters\": {\n \"id\": 31423,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31422,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31436,\n \"src\": \"28406:4:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 31421,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28406:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28405:6:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31443,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"28710:68:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 31437,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"28514:191:41\",\n \"text\": \" @notice Attempted deposit more than the max deposit.\\n @param assets the assets user attempted to deposit\\n @param maxDeposit the max assets that can be deposited\"\n },\n \"errorSelector\": \"b487ae1c\",\n \"name\": \"Cellar__DepositRestricted\",\n \"nameLocation\": \"28716:25:41\",\n \"parameters\": {\n \"id\": 31442,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31439,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"28750:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31443,\n \"src\": \"28742:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31438,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28742:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31441,\n \"mutability\": \"mutable\",\n \"name\": \"maxDeposit\",\n \"nameLocation\": \"28766:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31443,\n \"src\": \"28758:18:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31440,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28758:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28741:36:41\"\n }\n },\n {\n \"id\": 31494,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"28961:472:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31493,\n \"nodeType\": \"Block\",\n \"src\": \"29050:383:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31454,\n \"name\": \"_whenNotShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31022,\n \"src\": \"29060:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 31455,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29060:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31456,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"29060:18:41\"\n },\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31457,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"29088:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 31458,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29088:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31459,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"29088:16:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"id\": 31463,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 31460,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"29118:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31461,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"29122:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"29118:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 31462,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31450,\n \"src\": \"29132:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"29118:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31477,\n \"nodeType\": \"IfStatement\",\n \"src\": \"29114:178:41\",\n \"trueBody\": {\n \"id\": 31476,\n \"nodeType\": \"Block\",\n \"src\": \"29142:150:41\",\n \"statements\": [\n {\n \"condition\": {\n \"id\": 31469,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"29160:48:41\",\n \"subExpression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31466,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"29197:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31467,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"29201:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"29197:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"expression\": {\n \"id\": 31464,\n \"name\": \"registry\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31073,\n \"src\": \"29161:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Registry_$30033\",\n \"typeString\": \"contract Registry\"\n }\n },\n \"id\": 31465,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"29170:26:41\",\n \"memberName\": \"approvedForDepositOnBehalf\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29194,\n \"src\": \"29161:35:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_address_$returns$_t_bool_$\",\n \"typeString\": \"function (address) view external returns (bool)\"\n }\n },\n \"id\": 31468,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29161:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31475,\n \"nodeType\": \"IfStatement\",\n \"src\": \"29156:125:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31471,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"29270:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31472,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"29274:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"29270:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31470,\n \"name\": \"Cellar__NotApprovedToDepositOnBehalf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31301,\n \"src\": \"29233:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_address_$returns$__$\",\n \"typeString\": \"function (address) pure\"\n }\n },\n \"id\": 31473,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29233:48:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31474,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"29226:55:41\"\n }\n }\n ]\n }\n },\n {\n \"assignments\": [\n 31479\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31479,\n \"mutability\": \"mutable\",\n \"name\": \"maxAssets\",\n \"nameLocation\": \"29309:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31493,\n \"src\": \"29301:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31478,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29301:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31483,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 31481,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31450,\n \"src\": \"29332:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31480,\n \"name\": \"maxDeposit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 33073\n ],\n \"referencedDeclaration\": 33073,\n \"src\": \"29321:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$returns$_t_uint256_$\",\n \"typeString\": \"function (address) view returns (uint256)\"\n }\n },\n \"id\": 31482,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29321:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"29301:40:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31486,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31484,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31446,\n \"src\": \"29355:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 31485,\n \"name\": \"maxAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31479,\n \"src\": \"29364:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"29355:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31492,\n \"nodeType\": \"IfStatement\",\n \"src\": \"29351:75:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 31488,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31446,\n \"src\": \"29408:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31489,\n \"name\": \"maxAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31479,\n \"src\": \"29416:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31487,\n \"name\": \"Cellar__DepositRestricted\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31443,\n \"src\": \"29382:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256) pure\"\n }\n },\n \"id\": 31490,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29382:44:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31491,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"29375:51:41\"\n }\n }\n ]\n },\n \"baseFunctions\": [\n 35102\n ],\n \"documentation\": {\n \"id\": 31444,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"28784:172:41\",\n \"text\": \" @notice called at the beginning of deposit.\\n @param assets amount of assets deposited by user.\\n @param receiver address receiving the shares.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"beforeDeposit\",\n \"nameLocation\": \"28970:13:41\",\n \"overrides\": {\n \"id\": 31452,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"29041:8:41\"\n },\n \"parameters\": {\n \"id\": 31451,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31446,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"28992:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31494,\n \"src\": \"28984:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31445,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"28984:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31448,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31494,\n \"src\": \"29000:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31447,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29000:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31450,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"29017:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31494,\n \"src\": \"29009:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31449,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29009:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"28983:43:41\"\n },\n \"returnParameters\": {\n \"id\": 31453,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"29050:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31518,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"29557:195:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31517,\n \"nodeType\": \"Block\",\n \"src\": \"29640:112:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31506,\n \"name\": \"holdingPosition\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30336,\n \"src\": \"29661:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 31507,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31497,\n \"src\": \"29678:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31505,\n \"name\": \"_depositTo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33129,\n \"src\": \"29650:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint32,uint256)\"\n }\n },\n \"id\": 31508,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29650:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31509,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"29650:35:41\"\n },\n {\n \"expression\": {\n \"id\": 31515,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 31510,\n \"name\": \"userShareLockStartTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31320,\n \"src\": \"29695:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 31512,\n \"indexExpression\": {\n \"id\": 31511,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31501,\n \"src\": \"29718:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"29695:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"expression\": {\n \"id\": 31513,\n \"name\": \"block\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -4,\n \"src\": \"29730:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_block\",\n \"typeString\": \"block\"\n }\n },\n \"id\": 31514,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"29736:9:41\",\n \"memberName\": \"timestamp\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"29730:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"29695:50:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31516,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"29695:50:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35112\n ],\n \"documentation\": {\n \"id\": 31495,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"29439:113:41\",\n \"text\": \" @notice called at the end of deposit.\\n @param assets amount of assets deposited by user.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"afterDeposit\",\n \"nameLocation\": \"29566:12:41\",\n \"overrides\": {\n \"id\": 31503,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"29631:8:41\"\n },\n \"parameters\": {\n \"id\": 31502,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31497,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"29587:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31518,\n \"src\": \"29579:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31496,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29579:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31499,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31518,\n \"src\": \"29595:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31498,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29595:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31501,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"29612:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31518,\n \"src\": \"29604:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31500,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29604:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"29578:43:41\"\n },\n \"returnParameters\": {\n \"id\": 31504,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"29640:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31539,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"29826:209:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31538,\n \"nodeType\": \"Block\",\n \"src\": \"29915:120:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31531,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"29925:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 31532,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"29925:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31533,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"29925:16:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31535,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31527,\n \"src\": \"30022:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31534,\n \"name\": \"_checkIfSharesLocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31388,\n \"src\": \"30001:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$returns$__$\",\n \"typeString\": \"function (address) view\"\n }\n },\n \"id\": 31536,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30001:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31537,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"30001:27:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35124\n ],\n \"documentation\": {\n \"id\": 31519,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"29758:63:41\",\n \"text\": \" @notice called at the beginning of withdraw.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"beforeWithdraw\",\n \"nameLocation\": \"29835:14:41\",\n \"overrides\": {\n \"id\": 31529,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"29906:8:41\"\n },\n \"parameters\": {\n \"id\": 31528,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31521,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31539,\n \"src\": \"29850:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31520,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29850:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31523,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31539,\n \"src\": \"29859:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31522,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29859:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31525,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31539,\n \"src\": \"29868:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31524,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29868:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31527,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"29885:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31539,\n \"src\": \"29877:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31526,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"29877:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"29849:42:41\"\n },\n \"returnParameters\": {\n \"id\": 31530,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"29915:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31586,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"30041:412:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31585,\n \"nodeType\": \"Block\",\n \"src\": \"30116:337:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31549,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31541,\n \"src\": \"30140:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31550,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31543,\n \"src\": \"30148:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31551,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31545,\n \"src\": \"30156:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31548,\n \"name\": \"beforeDeposit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 31494\n ],\n \"referencedDeclaration\": 31494,\n \"src\": \"30126:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address) view\"\n }\n },\n \"id\": 31552,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30126:39:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31553,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"30126:39:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31557,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"30268:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31558,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"30272:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"30268:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"arguments\": [\n {\n \"id\": 31561,\n \"name\": \"this\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -28,\n \"src\": \"30288:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n ],\n \"id\": 31560,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"30280:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 31559,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30280:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 31562,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30280:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31563,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31541,\n \"src\": \"30295:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31554,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"30245:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 31556,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"30251:16:41\",\n \"memberName\": \"safeTransferFrom\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 35266,\n \"src\": \"30245:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_contract$_ERC20_$34556_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (contract ERC20,address,address,uint256)\"\n }\n },\n \"id\": 31564,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30245:57:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31565,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"30245:57:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31567,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31545,\n \"src\": \"30319:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31568,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31543,\n \"src\": \"30329:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31566,\n \"name\": \"_mint\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34527,\n \"src\": \"30313:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (address,uint256)\"\n }\n },\n \"id\": 31569,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30313:23:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31570,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"30313:23:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31572,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"30360:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31573,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"30364:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"30360:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31574,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31545,\n \"src\": \"30372:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31575,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31541,\n \"src\": \"30382:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31576,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31543,\n \"src\": \"30390:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31571,\n \"name\": \"Deposit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34584,\n \"src\": \"30352:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (address,address,uint256,uint256)\"\n }\n },\n \"id\": 31577,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30352:45:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31578,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"30347:50:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31580,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31541,\n \"src\": \"30421:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31581,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31543,\n \"src\": \"30429:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31582,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31545,\n \"src\": \"30437:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31579,\n \"name\": \"afterDeposit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 31518\n ],\n \"referencedDeclaration\": 31518,\n \"src\": \"30408:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address)\"\n }\n },\n \"id\": 31583,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30408:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31584,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"30408:38:41\"\n }\n ]\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_enter\",\n \"nameLocation\": \"30050:6:41\",\n \"parameters\": {\n \"id\": 31546,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31541,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"30065:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31586,\n \"src\": \"30057:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31540,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30057:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31543,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"30081:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31586,\n \"src\": \"30073:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31542,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30073:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31545,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"30097:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31586,\n \"src\": \"30089:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31544,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30089:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"30056:50:41\"\n },\n \"returnParameters\": {\n \"id\": 31547,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"30116:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31625,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"30724:483:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31624,\n \"nodeType\": \"Block\",\n \"src\": \"30829:378:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31600\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31600,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"30951:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31624,\n \"src\": \"30943:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31599,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30943:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31604,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31602,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"30978:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31601,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"30966:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 31603,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"30966:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"30943:41:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31613,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 31610,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31605,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31597,\n \"src\": \"31075:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31607,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31589,\n \"src\": \"31101:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31608,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31600,\n \"src\": \"31109:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31606,\n \"name\": \"_convertToShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32582,\n \"src\": \"31084:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 31609,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31084:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"31075:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 31611,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"31074:49:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31612,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"31127:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"31074:54:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31617,\n \"nodeType\": \"IfStatement\",\n \"src\": \"31070:87:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31614,\n \"name\": \"Cellar__ZeroShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31273,\n \"src\": \"31137:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31615,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31137:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31616,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"31130:27:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31619,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31589,\n \"src\": \"31175:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31620,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31597,\n \"src\": \"31183:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31621,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31591,\n \"src\": \"31191:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31618,\n \"name\": \"_enter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31586,\n \"src\": \"31168:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address)\"\n }\n },\n \"id\": 31622,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31168:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31623,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"31168:32:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34680\n ],\n \"documentation\": {\n \"id\": 31587,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"30459:260:41\",\n \"text\": \" @notice Deposits assets into the cellar, and returns shares to receiver.\\n @param assets amount of assets deposited by user.\\n @param receiver address to receive the shares.\\n @return shares amount of shares given for deposit.\"\n },\n \"functionSelector\": \"6e553f65\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31595,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31594,\n \"name\": \"nonReentrant\",\n \"nameLocations\": [\n \"30791:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30130,\n \"src\": \"30791:12:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"30791:12:41\"\n }\n ],\n \"name\": \"deposit\",\n \"nameLocation\": \"30733:7:41\",\n \"overrides\": {\n \"id\": 31593,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"30782:8:41\"\n },\n \"parameters\": {\n \"id\": 31592,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31589,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"30749:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31625,\n \"src\": \"30741:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31588,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30741:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31591,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"30765:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31625,\n \"src\": \"30757:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31590,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30757:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"30740:34:41\"\n },\n \"returnParameters\": {\n \"id\": 31598,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31597,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"30821:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31625,\n \"src\": \"30813:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31596,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"30813:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"30812:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31664,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"31483:507:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31663,\n \"nodeType\": \"Block\",\n \"src\": \"31585:405:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31639\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31639,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"31707:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31663,\n \"src\": \"31699:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31638,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"31699:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31643,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31641,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"31734:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31640,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"31722:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 31642,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31722:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"31699:41:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31652,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 31649,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31644,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31636,\n \"src\": \"31862:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31646,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31628,\n \"src\": \"31884:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31647,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31639,\n \"src\": \"31892:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31645,\n \"name\": \"_previewMint\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32616,\n \"src\": \"31871:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 31648,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31871:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"31862:43:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 31650,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"31861:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31651,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"31910:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"31861:50:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31656,\n \"nodeType\": \"IfStatement\",\n \"src\": \"31857:83:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31653,\n \"name\": \"Cellar__ZeroAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31276,\n \"src\": \"31920:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31654,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31920:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31655,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"31913:27:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31658,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31636,\n \"src\": \"31958:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31659,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31628,\n \"src\": \"31966:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31660,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31630,\n \"src\": \"31974:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31657,\n \"name\": \"_enter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31586,\n \"src\": \"31951:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address)\"\n }\n },\n \"id\": 31661,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"31951:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31662,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"31951:32:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34733\n ],\n \"documentation\": {\n \"id\": 31626,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"31213:265:41\",\n \"text\": \" @notice Mints shares from the cellar, and returns shares to receiver.\\n @param shares amount of shares requested by user.\\n @param receiver address to receive the shares.\\n @return assets amount of assets deposited into the cellar.\"\n },\n \"functionSelector\": \"94bf804d\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31634,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31633,\n \"name\": \"nonReentrant\",\n \"nameLocations\": [\n \"31547:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30130,\n \"src\": \"31547:12:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"31547:12:41\"\n }\n ],\n \"name\": \"mint\",\n \"nameLocation\": \"31492:4:41\",\n \"overrides\": {\n \"id\": 31632,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"31538:8:41\"\n },\n \"parameters\": {\n \"id\": 31631,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31628,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"31505:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31664,\n \"src\": \"31497:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31627,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"31497:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31630,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"31521:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31664,\n \"src\": \"31513:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31629,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"31513:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"31496:34:41\"\n },\n \"returnParameters\": {\n \"id\": 31637,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31636,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"31577:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31664,\n \"src\": \"31569:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31635,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"31569:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"31568:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31736,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"31996:654:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31735,\n \"nodeType\": \"Block\",\n \"src\": \"32085:565:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31676,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31666,\n \"src\": \"32110:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31677,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31668,\n \"src\": \"32118:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31678,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31670,\n \"src\": \"32126:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31679,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32136:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31675,\n \"name\": \"beforeWithdraw\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 31539\n ],\n \"referencedDeclaration\": 31539,\n \"src\": \"32095:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address,address) view\"\n }\n },\n \"id\": 31680,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"32095:47:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31681,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"32095:47:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"id\": 31685,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 31682,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"32157:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31683,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"32161:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"32157:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 31684,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32171:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"32157:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31715,\n \"nodeType\": \"IfStatement\",\n \"src\": \"32153:228:41\",\n \"trueBody\": {\n \"id\": 31714,\n \"nodeType\": \"Block\",\n \"src\": \"32178:203:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31687\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31687,\n \"mutability\": \"mutable\",\n \"name\": \"allowed\",\n \"nameLocation\": \"32200:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31714,\n \"src\": \"32192:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31686,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32192:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31694,\n \"initialValue\": {\n \"baseExpression\": {\n \"baseExpression\": {\n \"id\": 31688,\n \"name\": \"allowance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34205,\n \"src\": \"32210:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$\",\n \"typeString\": \"mapping(address => mapping(address => uint256))\"\n }\n },\n \"id\": 31690,\n \"indexExpression\": {\n \"id\": 31689,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32220:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"32210:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 31693,\n \"indexExpression\": {\n \"expression\": {\n \"id\": 31691,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"32227:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31692,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"32231:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"32227:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"32210:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"32192:46:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31701,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31695,\n \"name\": \"allowed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31687,\n \"src\": \"32293:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31698,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"32309:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n },\n \"typeName\": {\n \"id\": 31697,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32309:7:41\",\n \"typeDescriptions\": {}\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n }\n ],\n \"id\": 31696,\n \"name\": \"type\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -27,\n \"src\": \"32304:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_metatype_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31699,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"32304:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_meta_type_t_uint256\",\n \"typeString\": \"type(uint256)\"\n }\n },\n \"id\": 31700,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"32318:3:41\",\n \"memberName\": \"max\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"32304:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"32293:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31713,\n \"nodeType\": \"IfStatement\",\n \"src\": \"32289:81:41\",\n \"trueBody\": {\n \"expression\": {\n \"id\": 31711,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"baseExpression\": {\n \"id\": 31702,\n \"name\": \"allowance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34205,\n \"src\": \"32323:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$\",\n \"typeString\": \"mapping(address => mapping(address => uint256))\"\n }\n },\n \"id\": 31706,\n \"indexExpression\": {\n \"id\": 31703,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32333:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"32323:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 31707,\n \"indexExpression\": {\n \"expression\": {\n \"id\": 31704,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"32340:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31705,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"32344:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"32340:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"32323:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31710,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31708,\n \"name\": \"allowed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31687,\n \"src\": \"32354:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"-\",\n \"rightExpression\": {\n \"id\": 31709,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31668,\n \"src\": \"32364:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"32354:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"32323:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31712,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"32323:47:41\"\n }\n }\n ]\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31717,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32397:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31718,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31668,\n \"src\": \"32404:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31716,\n \"name\": \"_burn\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34555,\n \"src\": \"32391:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (address,uint256)\"\n }\n },\n \"id\": 31719,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"32391:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31720,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"32391:20:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31722,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"32436:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 31723,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"32440:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"32436:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31724,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31670,\n \"src\": \"32448:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31725,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31672,\n \"src\": \"32458:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31726,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31666,\n \"src\": \"32465:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31727,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31668,\n \"src\": \"32473:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31721,\n \"name\": \"Withdraw\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34596,\n \"src\": \"32427:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (address,address,address,uint256,uint256)\"\n }\n },\n \"id\": 31728,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"32427:53:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31729,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"32422:58:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31731,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31666,\n \"src\": \"32507:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31732,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31670,\n \"src\": \"32515:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31730,\n \"name\": \"_withdrawInOrder\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32022,\n \"src\": \"32490:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,address)\"\n }\n },\n \"id\": 31733,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"32490:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31734,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"32490:34:41\"\n }\n ]\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_exit\",\n \"nameLocation\": \"32005:5:41\",\n \"parameters\": {\n \"id\": 31673,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31666,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"32019:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31736,\n \"src\": \"32011:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31665,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32011:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31668,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"32035:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31736,\n \"src\": \"32027:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31667,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32027:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31670,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"32051:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31736,\n \"src\": \"32043:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31669,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32043:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31672,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"32069:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31736,\n \"src\": \"32061:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31671,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"32061:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"32010:65:41\"\n },\n \"returnParameters\": {\n \"id\": 31674,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"32085:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 31772,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"33530:497:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31771,\n \"nodeType\": \"Block\",\n \"src\": \"33681:346:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31752\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31752,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"33803:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31771,\n \"src\": \"33795:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31751,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"33795:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31756,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31754,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"33830:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31753,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"33818:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 31755,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"33818:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"33795:41:41\"\n },\n {\n \"expression\": {\n \"id\": 31762,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31757,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31749,\n \"src\": \"33924:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31759,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31739,\n \"src\": \"33950:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31760,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31752,\n \"src\": \"33958:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31758,\n \"name\": \"_previewWithdraw\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32650,\n \"src\": \"33933:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 31761,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"33933:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"33924:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31763,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"33924:47:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31765,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31739,\n \"src\": \"33988:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31766,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31749,\n \"src\": \"33996:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31767,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31741,\n \"src\": \"34004:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31768,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31743,\n \"src\": \"34014:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31764,\n \"name\": \"_exit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31736,\n \"src\": \"33982:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address,address)\"\n }\n },\n \"id\": 31769,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"33982:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31770,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"33982:38:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34820\n ],\n \"documentation\": {\n \"id\": 31737,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"32656:869:41\",\n \"text\": \" @notice Withdraw assets from the cellar by redeeming shares.\\n @dev Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver.\\n Since there are no swaps involved in this function, the receiver may receive multiple\\n assets. The value of all the assets returned will be equal to the amount defined by\\n `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets`\\n is 1000, then the receiver will receive $1000 worth of assets in either one or many\\n tokens).\\n @param assets equivalent value of the assets withdrawn, denominated in the cellar's asset\\n @param receiver address that will receive withdrawn assets\\n @param owner address that owns the shares being redeemed\\n @return shares amount of shares redeemed\"\n },\n \"functionSelector\": \"b460af94\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31747,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31746,\n \"name\": \"nonReentrant\",\n \"nameLocations\": [\n \"33643:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30130,\n \"src\": \"33643:12:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"33643:12:41\"\n }\n ],\n \"name\": \"withdraw\",\n \"nameLocation\": \"33539:8:41\",\n \"overrides\": {\n \"id\": 31745,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"33634:8:41\"\n },\n \"parameters\": {\n \"id\": 31744,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31739,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"33565:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31772,\n \"src\": \"33557:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31738,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"33557:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31741,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"33589:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31772,\n \"src\": \"33581:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31740,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"33581:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31743,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"33615:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31772,\n \"src\": \"33607:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31742,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"33607:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"33547:79:41\"\n },\n \"returnParameters\": {\n \"id\": 31750,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31749,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"33673:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31772,\n \"src\": \"33665:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31748,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"33665:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"33664:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31814,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"34905:532:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 31813,\n \"nodeType\": \"Block\",\n \"src\": \"35054:383:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31788\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31788,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"35176:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31813,\n \"src\": \"35168:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31787,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35168:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31792,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 31790,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"35203:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 31789,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"35191:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 31791,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"35191:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"35168:41:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31801,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 31798,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31793,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31785,\n \"src\": \"35299:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31795,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31775,\n \"src\": \"35325:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31796,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31788,\n \"src\": \"35333:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 31794,\n \"name\": \"_convertToAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32548,\n \"src\": \"35308:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 31797,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"35308:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"35299:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 31799,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"35298:49:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31800,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"35351:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"35298:54:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31805,\n \"nodeType\": \"IfStatement\",\n \"src\": \"35294:87:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 31802,\n \"name\": \"Cellar__ZeroAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31276,\n \"src\": \"35361:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 31803,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"35361:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31804,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"35354:27:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 31807,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31785,\n \"src\": \"35398:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31808,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31775,\n \"src\": \"35406:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 31809,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31777,\n \"src\": \"35414:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"id\": 31810,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31779,\n \"src\": \"35424:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 31806,\n \"name\": \"_exit\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31736,\n \"src\": \"35392:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,address,address)\"\n }\n },\n \"id\": 31811,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"35392:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 31812,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"35392:38:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34913\n ],\n \"documentation\": {\n \"id\": 31773,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"34033:867:41\",\n \"text\": \" @notice Redeem shares to withdraw assets from the cellar.\\n @dev Unlike conventional ERC4626 contracts, this may not always return one asset to the receiver.\\n Since there are no swaps involved in this function, the receiver may receive multiple\\n assets. The value of all the assets returned will be equal to the amount defined by\\n `assets` denominated in the `asset` of the cellar (eg. if `asset` is USDC and `assets`\\n is 1000, then the receiver will receive $1000 worth of assets in either one or many\\n tokens).\\n @param shares amount of shares to redeem\\n @param receiver address that will receive withdrawn assets\\n @param owner address that owns the shares being redeemed\\n @return assets equivalent value of the assets withdrawn, denominated in the cellar's asset\"\n },\n \"functionSelector\": \"ba087652\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 31783,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 31782,\n \"name\": \"nonReentrant\",\n \"nameLocations\": [\n \"35016:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30130,\n \"src\": \"35016:12:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"35016:12:41\"\n }\n ],\n \"name\": \"redeem\",\n \"nameLocation\": \"34914:6:41\",\n \"overrides\": {\n \"id\": 31781,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"35007:8:41\"\n },\n \"parameters\": {\n \"id\": 31780,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31775,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"34938:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31814,\n \"src\": \"34930:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31774,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"34930:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31777,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"34962:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31814,\n \"src\": \"34954:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31776,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"34954:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31779,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"34988:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31814,\n \"src\": \"34980:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31778,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"34980:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"34920:79:41\"\n },\n \"returnParameters\": {\n \"id\": 31786,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31785,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"35046:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31814,\n \"src\": \"35038:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31784,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35038:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"35037:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31823,\n \"nodeType\": \"StructDefinition\",\n \"src\": \"35615:142:41\",\n \"nodes\": [],\n \"canonicalName\": \"Cellar.WithdrawPricing\",\n \"members\": [\n {\n \"constant\": false,\n \"id\": 31816,\n \"mutability\": \"mutable\",\n \"name\": \"priceBaseUSD\",\n \"nameLocation\": \"35656:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31823,\n \"src\": \"35648:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31815,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35648:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31818,\n \"mutability\": \"mutable\",\n \"name\": \"oneBase\",\n \"nameLocation\": \"35686:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31823,\n \"src\": \"35678:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31817,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35678:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31820,\n \"mutability\": \"mutable\",\n \"name\": \"priceQuoteUSD\",\n \"nameLocation\": \"35711:13:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31823,\n \"src\": \"35703:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31819,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35703:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31822,\n \"mutability\": \"mutable\",\n \"name\": \"oneQuote\",\n \"nameLocation\": \"35742:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31823,\n \"src\": \"35734:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31821,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35734:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"name\": \"WithdrawPricing\",\n \"nameLocation\": \"35622:15:41\",\n \"scope\": 33437,\n \"visibility\": \"public\"\n },\n {\n \"id\": 31827,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"35857:52:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 31824,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"35763:89:41\",\n \"text\": \" @notice Multipler used to insure calculations use very high precision.\"\n },\n \"mutability\": \"constant\",\n \"name\": \"PRECISION_MULTIPLIER\",\n \"nameLocation\": \"35882:20:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31825,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"35857:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"31653138\",\n \"id\": 31826,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"35905:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n },\n \"visibility\": \"private\"\n },\n {\n \"id\": 32022,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"36220:2540:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32021,\n \"nodeType\": \"Block\",\n \"src\": \"36289:2471:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 31837\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31837,\n \"mutability\": \"mutable\",\n \"name\": \"pricingInfo\",\n \"nameLocation\": \"36397:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32021,\n \"src\": \"36374:34:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing\"\n },\n \"typeName\": {\n \"id\": 31836,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 31835,\n \"name\": \"WithdrawPricing\",\n \"nameLocations\": [\n \"36374:15:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 31823,\n \"src\": \"36374:15:41\"\n },\n \"referencedDeclaration\": 31823,\n \"src\": \"36374:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_storage_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31838,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36374:34:41\"\n },\n {\n \"expression\": {\n \"id\": 31846,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31839,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"36418:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31841,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"36430:13:41\",\n \"memberName\": \"priceQuoteUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31820,\n \"src\": \"36418:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31844,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"36472:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"expression\": {\n \"id\": 31842,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"36446:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 31843,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"36458:13:41\",\n \"memberName\": \"getPriceInUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 49990,\n \"src\": \"36446:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_contract$_ERC20_$34556_$returns$_t_uint256_$\",\n \"typeString\": \"function (contract ERC20) view external returns (uint256)\"\n }\n },\n \"id\": 31845,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"36446:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"36418:60:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31847,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"36418:60:41\"\n },\n {\n \"expression\": {\n \"id\": 31856,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31848,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"36488:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31850,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"36500:8:41\",\n \"memberName\": \"oneQuote\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31822,\n \"src\": \"36488:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31855,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"hexValue\": \"3130\",\n \"id\": 31851,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"36511:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10_by_1\",\n \"typeString\": \"int_const 10\"\n },\n \"value\": \"10\"\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"**\",\n \"rightExpression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 31852,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"36517:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 31853,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"36523:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"36517:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 31854,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"36517:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"src\": \"36511:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"36488:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31857,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"36488:45:41\"\n },\n {\n \"assignments\": [\n 31859\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31859,\n \"mutability\": \"mutable\",\n \"name\": \"creditLength\",\n \"nameLocation\": \"36551:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32021,\n \"src\": \"36543:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31858,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36543:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31862,\n \"initialValue\": {\n \"expression\": {\n \"id\": 31860,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"36566:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 31861,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"36582:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"36566:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36543:45:41\"\n },\n {\n \"body\": {\n \"id\": 32011,\n \"nodeType\": \"Block\",\n \"src\": \"36637:1987:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31873\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31873,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"36658:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32011,\n \"src\": \"36651:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 31872,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36651:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31877,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 31874,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"36669:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 31876,\n \"indexExpression\": {\n \"id\": 31875,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31864,\n \"src\": \"36685:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"36669:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36651:36:41\"\n },\n {\n \"assignments\": [\n 31879\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31879,\n \"mutability\": \"mutable\",\n \"name\": \"withdrawableBalance\",\n \"nameLocation\": \"36709:19:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32011,\n \"src\": \"36701:27:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31878,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36701:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31883,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 31881,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31873,\n \"src\": \"36749:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 31880,\n \"name\": \"_withdrawableFrom\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33201,\n \"src\": \"36731:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 31882,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"36731:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36701:57:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31886,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31884,\n \"name\": \"withdrawableBalance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31879,\n \"src\": \"36838:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 31885,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"36861:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"36838:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 31888,\n \"nodeType\": \"IfStatement\",\n \"src\": \"36834:38:41\",\n \"trueBody\": {\n \"id\": 31887,\n \"nodeType\": \"Continue\",\n \"src\": \"36864:8:41\"\n }\n },\n {\n \"assignments\": [\n 31891\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31891,\n \"mutability\": \"mutable\",\n \"name\": \"positionAsset\",\n \"nameLocation\": \"36892:13:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32011,\n \"src\": \"36886:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n },\n \"typeName\": {\n \"id\": 31890,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 31889,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"36886:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"36886:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"36886:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31895,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 31893,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31873,\n \"src\": \"36917:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 31892,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"36908:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 31894,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"36908:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36886:40:41\"\n },\n {\n \"expression\": {\n \"id\": 31903,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31896,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"36941:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31898,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"36953:12:41\",\n \"memberName\": \"priceBaseUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31816,\n \"src\": \"36941:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 31901,\n \"name\": \"positionAsset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31891,\n \"src\": \"36994:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"expression\": {\n \"id\": 31899,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"36968:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 31900,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"36980:13:41\",\n \"memberName\": \"getPriceInUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 49990,\n \"src\": \"36968:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_contract$_ERC20_$34556_$returns$_t_uint256_$\",\n \"typeString\": \"function (contract ERC20) view external returns (uint256)\"\n }\n },\n \"id\": 31902,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"36968:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"36941:67:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31904,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"36941:67:41\"\n },\n {\n \"expression\": {\n \"id\": 31913,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"expression\": {\n \"id\": 31905,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"37022:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31907,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"memberLocation\": \"37034:7:41\",\n \"memberName\": \"oneBase\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31818,\n \"src\": \"37022:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31912,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"hexValue\": \"3130\",\n \"id\": 31908,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"37044:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_10_by_1\",\n \"typeString\": \"int_const 10\"\n },\n \"value\": \"10\"\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"**\",\n \"rightExpression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 31909,\n \"name\": \"positionAsset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31891,\n \"src\": \"37050:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 31910,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37064:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"37050:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 31911,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"37050:24:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"src\": \"37044:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37022:52:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31914,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"37022:52:41\"\n },\n {\n \"assignments\": [\n 31916\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31916,\n \"mutability\": \"mutable\",\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nameLocation\": \"37096:32:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32011,\n \"src\": \"37088:40:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31915,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"37088:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31917,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"37088:40:41\"\n },\n {\n \"id\": 31947,\n \"nodeType\": \"Block\",\n \"src\": \"37142:531:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31919\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31919,\n \"mutability\": \"mutable\",\n \"name\": \"withdrawableBalanceInUSD\",\n \"nameLocation\": \"37168:24:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31947,\n \"src\": \"37160:32:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31918,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"37160:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31930,\n \"initialValue\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31925,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"37272:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31926,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37284:12:41\",\n \"memberName\": \"priceBaseUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31816,\n \"src\": \"37272:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"id\": 31927,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"37318:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31928,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37330:7:41\",\n \"memberName\": \"oneBase\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31818,\n \"src\": \"37318:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"components\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31922,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31920,\n \"name\": \"PRECISION_MULTIPLIER\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31827,\n \"src\": \"37196:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"*\",\n \"rightExpression\": {\n \"id\": 31921,\n \"name\": \"withdrawableBalance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31879,\n \"src\": \"37219:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37196:42:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 31923,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"37195:44:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31924,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37240:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"37195:55:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 31929,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"37195:160:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"37160:195:41\"\n },\n {\n \"expression\": {\n \"id\": 31939,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31931,\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31916,\n \"src\": \"37373:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31934,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"37465:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31935,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37477:8:41\",\n \"memberName\": \"oneQuote\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31822,\n \"src\": \"37465:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"id\": 31936,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"37507:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31937,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37519:13:41\",\n \"memberName\": \"priceQuoteUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31820,\n \"src\": \"37507:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31932,\n \"name\": \"withdrawableBalanceInUSD\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31919,\n \"src\": \"37408:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31933,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37433:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"37408:35:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 31938,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"37408:142:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37373:177:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31940,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"37373:177:41\"\n },\n {\n \"expression\": {\n \"id\": 31945,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31941,\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31916,\n \"src\": \"37568:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31944,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31942,\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31916,\n \"src\": \"37603:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"/\",\n \"rightExpression\": {\n \"id\": 31943,\n \"name\": \"PRECISION_MULTIPLIER\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31827,\n \"src\": \"37638:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37603:55:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37568:90:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31946,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"37568:90:41\"\n }\n ]\n },\n {\n \"assignments\": [\n 31949\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31949,\n \"mutability\": \"mutable\",\n \"name\": \"amount\",\n \"nameLocation\": \"37789:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32011,\n \"src\": \"37781:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31948,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"37781:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31950,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"37781:14:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31953,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31951,\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31916,\n \"src\": \"37814:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 31952,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"37849:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37814:41:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseBody\": {\n \"id\": 31998,\n \"nodeType\": \"Block\",\n \"src\": \"38302:129:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 31990,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31988,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31949,\n \"src\": \"38320:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 31989,\n \"name\": \"withdrawableBalance\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31879,\n \"src\": \"38329:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38320:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31991,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38320:28:41\"\n },\n {\n \"expression\": {\n \"id\": 31996,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31992,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38366:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31995,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31993,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38375:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"-\",\n \"rightExpression\": {\n \"id\": 31994,\n \"name\": \"totalWithdrawableBalanceInAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31916,\n \"src\": \"38384:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38375:41:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38366:50:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31997,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38366:50:41\"\n }\n ]\n },\n \"id\": 31999,\n \"nodeType\": \"IfStatement\",\n \"src\": \"37810:621:41\",\n \"trueBody\": {\n \"id\": 31987,\n \"nodeType\": \"Block\",\n \"src\": \"37857:439:41\",\n \"statements\": [\n {\n \"assignments\": [\n 31955\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31955,\n \"mutability\": \"mutable\",\n \"name\": \"assetsInUSD\",\n \"nameLocation\": \"37938:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 31987,\n \"src\": \"37930:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31954,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"37930:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31966,\n \"initialValue\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31961,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"38016:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31962,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"38028:13:41\",\n \"memberName\": \"priceQuoteUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31820,\n \"src\": \"38016:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"id\": 31963,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"38063:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31964,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"38075:8:41\",\n \"memberName\": \"oneQuote\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31822,\n \"src\": \"38063:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"components\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31958,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31956,\n \"name\": \"PRECISION_MULTIPLIER\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31827,\n \"src\": \"37953:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"*\",\n \"rightExpression\": {\n \"id\": 31957,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"37976:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"37953:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 31959,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"37952:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31960,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"37984:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"37952:42:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 31965,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"37952:149:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"37930:171:41\"\n },\n {\n \"expression\": {\n \"id\": 31975,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31967,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31949,\n \"src\": \"38119:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 31970,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"38151:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31971,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"38163:7:41\",\n \"memberName\": \"oneBase\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31818,\n \"src\": \"38151:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"id\": 31972,\n \"name\": \"pricingInfo\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31837,\n \"src\": \"38172:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_WithdrawPricing_$31823_memory_ptr\",\n \"typeString\": \"struct Cellar.WithdrawPricing memory\"\n }\n },\n \"id\": 31973,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"38184:12:41\",\n \"memberName\": \"priceBaseUSD\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 31816,\n \"src\": \"38172:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 31968,\n \"name\": \"assetsInUSD\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31955,\n \"src\": \"38128:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31969,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"38140:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"38128:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 31974,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"38128:69:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38119:78:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31976,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38119:78:41\"\n },\n {\n \"expression\": {\n \"id\": 31981,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31977,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31949,\n \"src\": \"38215:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31980,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31978,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31949,\n \"src\": \"38224:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"/\",\n \"rightExpression\": {\n \"id\": 31979,\n \"name\": \"PRECISION_MULTIPLIER\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31827,\n \"src\": \"38233:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38224:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"38215:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31982,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38215:38:41\"\n },\n {\n \"expression\": {\n \"id\": 31985,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 31983,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38271:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"30\",\n \"id\": 31984,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"38280:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"38271:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31986,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38271:10:41\"\n }\n ]\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 32001,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31873,\n \"src\": \"38498:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n {\n \"id\": 32002,\n \"name\": \"amount\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31949,\n \"src\": \"38508:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32003,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31832,\n \"src\": \"38516:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 32000,\n \"name\": \"_withdrawFrom\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33168,\n \"src\": \"38484:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_uint32_$_t_uint256_$_t_address_$returns$__$\",\n \"typeString\": \"function (uint32,uint256,address)\"\n }\n },\n \"id\": 32004,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"38484:41:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32005,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"38484:41:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32008,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32006,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38595:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32007,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"38605:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"38595:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32010,\n \"nodeType\": \"IfStatement\",\n \"src\": \"38591:22:41\",\n \"trueBody\": {\n \"id\": 32009,\n \"nodeType\": \"Break\",\n \"src\": \"38608:5:41\"\n }\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 31868,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 31866,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31864,\n \"src\": \"36614:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 31867,\n \"name\": \"creditLength\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31859,\n \"src\": \"36618:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"36614:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32012,\n \"initializationExpression\": {\n \"assignments\": [\n 31864\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 31864,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"36611:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32012,\n \"src\": \"36603:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31863,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36603:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 31865,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"36603:9:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 31870,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"36632:3:41\",\n \"subExpression\": {\n \"id\": 31869,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31864,\n \"src\": \"36634:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 31871,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"36632:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"36598:2026:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32015,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32013,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38700:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32014,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"38709:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"38700:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32020,\n \"nodeType\": \"IfStatement\",\n \"src\": \"38696:57:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32017,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31830,\n \"src\": \"38746:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32016,\n \"name\": \"Cellar__IncompleteWithdraw\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31281,\n \"src\": \"38719:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256) pure\"\n }\n },\n \"id\": 32018,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"38719:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32019,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"38712:41:41\"\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 31828,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"35916:299:41\",\n \"text\": \" @dev Withdraw from positions in the order defined by `positions`.\\n @param assets the amount of assets to withdraw from cellar\\n @param receiver the address to sent withdrawn assets to\\n @dev Only loop through credit array because debt can not be withdraw by users.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_withdrawInOrder\",\n \"nameLocation\": \"36229:16:41\",\n \"parameters\": {\n \"id\": 31833,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 31830,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"36254:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32022,\n \"src\": \"36246:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 31829,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36246:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 31832,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"36270:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32022,\n \"src\": \"36262:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 31831,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"36262:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"36245:34:41\"\n },\n \"returnParameters\": {\n \"id\": 31834,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"36289:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32222,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"39162:1998:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32221,\n \"nodeType\": \"Block\",\n \"src\": \"39247:1913:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32031\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32031,\n \"mutability\": \"mutable\",\n \"name\": \"numOfCreditPositions\",\n \"nameLocation\": \"39265:20:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32221,\n \"src\": \"39257:28:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32030,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39257:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32034,\n \"initialValue\": {\n \"expression\": {\n \"id\": 32032,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"39288:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 32033,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"39304:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"39288:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"39257:53:41\"\n },\n {\n \"assignments\": [\n 32039\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32039,\n \"mutability\": \"mutable\",\n \"name\": \"creditAssets\",\n \"nameLocation\": \"39335:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32221,\n \"src\": \"39320:27:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32037,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32036,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"39320:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"39320:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"39320:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32038,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"39320:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32046,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 32044,\n \"name\": \"numOfCreditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32031,\n \"src\": \"39362:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32043,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"39350:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (contract ERC20[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32041,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32040,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"39354:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"39354:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"39354:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32042,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"39354:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n }\n },\n \"id\": 32045,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"39350:33:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"39320:63:41\"\n },\n {\n \"assignments\": [\n 32051\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32051,\n \"mutability\": \"mutable\",\n \"name\": \"creditBalances\",\n \"nameLocation\": \"39410:14:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32221,\n \"src\": \"39393:31:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32049,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39393:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32050,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"39393:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32057,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 32055,\n \"name\": \"numOfCreditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32031,\n \"src\": \"39441:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32054,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"39427:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (uint256[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32052,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39431:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32053,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"39431:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n }\n },\n \"id\": 32056,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"39427:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"39393:69:41\"\n },\n {\n \"condition\": {\n \"id\": 32058,\n \"name\": \"reportWithdrawable\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32025,\n \"src\": \"39552:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseBody\": {\n \"id\": 32219,\n \"nodeType\": \"Block\",\n \"src\": \"40068:1086:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32107\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32107,\n \"mutability\": \"mutable\",\n \"name\": \"numOfDebtPositions\",\n \"nameLocation\": \"40090:18:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32219,\n \"src\": \"40082:26:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32106,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40082:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32110,\n \"initialValue\": {\n \"expression\": {\n \"id\": 32108,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"40111:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 32109,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"40125:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"40111:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40082:49:41\"\n },\n {\n \"assignments\": [\n 32115\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32115,\n \"mutability\": \"mutable\",\n \"name\": \"debtAssets\",\n \"nameLocation\": \"40160:10:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32219,\n \"src\": \"40145:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32113,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32112,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"40145:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"40145:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"40145:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32114,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"40145:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32122,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 32120,\n \"name\": \"numOfDebtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32107,\n \"src\": \"40185:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32119,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"40173:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (contract ERC20[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32117,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32116,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"40177:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"40177:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"40177:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32118,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"40177:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n }\n },\n \"id\": 32121,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40173:31:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40145:59:41\"\n },\n {\n \"assignments\": [\n 32127\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32127,\n \"mutability\": \"mutable\",\n \"name\": \"debtBalances\",\n \"nameLocation\": \"40235:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32219,\n \"src\": \"40218:29:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32125,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40218:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32126,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"40218:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32133,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 32131,\n \"name\": \"numOfDebtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32107,\n \"src\": \"40264:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32130,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"40250:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (uint256[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32128,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40254:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32129,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"40254:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n }\n },\n \"id\": 32132,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40250:33:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40218:65:41\"\n },\n {\n \"body\": {\n \"id\": 32169,\n \"nodeType\": \"Block\",\n \"src\": \"40344:318:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32144\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32144,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"40369:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32169,\n \"src\": \"40362:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 32143,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40362:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32148,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 32145,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"40380:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 32147,\n \"indexExpression\": {\n \"id\": 32146,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32135,\n \"src\": \"40396:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40380:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40362:36:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32158,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 32155,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32149,\n \"name\": \"creditBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32051,\n \"src\": \"40537:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 32151,\n \"indexExpression\": {\n \"id\": 32150,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32135,\n \"src\": \"40552:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40537:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32153,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32144,\n \"src\": \"40568:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32152,\n \"name\": \"_balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33227,\n \"src\": \"40557:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 32154,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40557:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"40537:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 32156,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"40536:42:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32157,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"40582:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"40536:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32160,\n \"nodeType\": \"IfStatement\",\n \"src\": \"40532:61:41\",\n \"trueBody\": {\n \"id\": 32159,\n \"nodeType\": \"Continue\",\n \"src\": \"40585:8:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 32167,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32161,\n \"name\": \"creditAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32039,\n \"src\": \"40611:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 32163,\n \"indexExpression\": {\n \"id\": 32162,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32135,\n \"src\": \"40624:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40611:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32165,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32144,\n \"src\": \"40638:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32164,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"40629:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 32166,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40629:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"40611:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32168,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"40611:36:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32139,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32137,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32135,\n \"src\": \"40313:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 32138,\n \"name\": \"numOfCreditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32031,\n \"src\": \"40317:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"40313:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32170,\n \"initializationExpression\": {\n \"assignments\": [\n 32135\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32135,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"40310:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32170,\n \"src\": \"40302:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32134,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40302:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32136,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40302:9:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32141,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"40339:3:41\",\n \"subExpression\": {\n \"id\": 32140,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32135,\n \"src\": \"40341:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32142,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"40339:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"40297:365:41\"\n },\n {\n \"body\": {\n \"id\": 32206,\n \"nodeType\": \"Block\",\n \"src\": \"40720:312:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32181\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32181,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"40745:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32206,\n \"src\": \"40738:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 32180,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40738:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32185,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 32182,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"40756:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 32184,\n \"indexExpression\": {\n \"id\": 32183,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32172,\n \"src\": \"40770:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40756:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40738:34:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32195,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 32192,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32186,\n \"name\": \"debtBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32127,\n \"src\": \"40911:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 32188,\n \"indexExpression\": {\n \"id\": 32187,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32172,\n \"src\": \"40924:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40911:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32190,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32181,\n \"src\": \"40940:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32189,\n \"name\": \"_balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33227,\n \"src\": \"40929:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 32191,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40929:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"40911:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 32193,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"40910:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32194,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"40954:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"40910:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32197,\n \"nodeType\": \"IfStatement\",\n \"src\": \"40906:59:41\",\n \"trueBody\": {\n \"id\": 32196,\n \"nodeType\": \"Continue\",\n \"src\": \"40957:8:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 32204,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32198,\n \"name\": \"debtAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32115,\n \"src\": \"40983:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 32200,\n \"indexExpression\": {\n \"id\": 32199,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32172,\n \"src\": \"40994:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"40983:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32202,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32181,\n \"src\": \"41008:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32201,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"40999:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 32203,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"40999:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"40983:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32205,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"40983:34:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32176,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32174,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32172,\n \"src\": \"40691:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 32175,\n \"name\": \"numOfDebtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32107,\n \"src\": \"40695:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"40691:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32207,\n \"initializationExpression\": {\n \"assignments\": [\n 32172\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32172,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"40688:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32207,\n \"src\": \"40680:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32171,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"40680:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32173,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"40680:9:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32178,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"40715:3:41\",\n \"subExpression\": {\n \"id\": 32177,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32172,\n \"src\": \"40717:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32179,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"40715:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"40675:357:41\"\n },\n {\n \"expression\": {\n \"id\": 32217,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32208,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32028,\n \"src\": \"41045:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32211,\n \"name\": \"creditAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32039,\n \"src\": \"41081:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n {\n \"id\": 32212,\n \"name\": \"creditBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32051,\n \"src\": \"41095:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n {\n \"id\": 32213,\n \"name\": \"debtAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32115,\n \"src\": \"41111:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n {\n \"id\": 32214,\n \"name\": \"debtBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32127,\n \"src\": \"41123:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n {\n \"id\": 32215,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"41137:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n },\n {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n },\n {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n },\n {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n },\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"expression\": {\n \"id\": 32209,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"41054:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 32210,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"41066:14:41\",\n \"memberName\": \"getValuesDelta\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 50133,\n \"src\": \"41054:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_contract$_ERC20_$34556_$returns$_t_uint256_$\",\n \"typeString\": \"function (contract ERC20[] memory,uint256[] memory,contract ERC20[] memory,uint256[] memory,contract ERC20) view external returns (uint256)\"\n }\n },\n \"id\": 32216,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"41054:89:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"41045:98:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32218,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"41045:98:41\"\n }\n ]\n },\n \"id\": 32220,\n \"nodeType\": \"IfStatement\",\n \"src\": \"39548:1606:41\",\n \"trueBody\": {\n \"id\": 32105,\n \"nodeType\": \"Block\",\n \"src\": \"39572:490:41\",\n \"statements\": [\n {\n \"body\": {\n \"id\": 32094,\n \"nodeType\": \"Block\",\n \"src\": \"39633:338:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32069\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32069,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"39658:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32094,\n \"src\": \"39651:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 32068,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39651:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32073,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 32070,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"39669:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 32072,\n \"indexExpression\": {\n \"id\": 32071,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32060,\n \"src\": \"39685:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"39669:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"39651:36:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32083,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"components\": [\n {\n \"id\": 32080,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32074,\n \"name\": \"creditBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32051,\n \"src\": \"39839:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 32076,\n \"indexExpression\": {\n \"id\": 32075,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32060,\n \"src\": \"39854:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"39839:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32078,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32069,\n \"src\": \"39877:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32077,\n \"name\": \"_withdrawableFrom\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33201,\n \"src\": \"39859:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 32079,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"39859:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"39839:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 32081,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"39838:49:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32082,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"39891:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"39838:54:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32085,\n \"nodeType\": \"IfStatement\",\n \"src\": \"39834:68:41\",\n \"trueBody\": {\n \"id\": 32084,\n \"nodeType\": \"Continue\",\n \"src\": \"39894:8:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 32092,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 32086,\n \"name\": \"creditAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32039,\n \"src\": \"39920:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 32088,\n \"indexExpression\": {\n \"id\": 32087,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32060,\n \"src\": \"39933:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"39920:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32090,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32069,\n \"src\": \"39947:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 32089,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"39938:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 32091,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"39938:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"39920:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32093,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"39920:36:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32064,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32062,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32060,\n \"src\": \"39602:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 32063,\n \"name\": \"numOfCreditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32031,\n \"src\": \"39606:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"39602:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32095,\n \"initializationExpression\": {\n \"assignments\": [\n 32060\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32060,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"39599:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32095,\n \"src\": \"39591:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32059,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39591:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32061,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"39591:9:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32066,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"39628:3:41\",\n \"subExpression\": {\n \"id\": 32065,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32060,\n \"src\": \"39630:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32067,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"39628:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"39586:385:41\"\n },\n {\n \"expression\": {\n \"id\": 32103,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32096,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32028,\n \"src\": \"39984:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32099,\n \"name\": \"creditAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32039,\n \"src\": \"40015:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n {\n \"id\": 32100,\n \"name\": \"creditBalances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32051,\n \"src\": \"40029:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n {\n \"id\": 32101,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"40045:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n },\n {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n },\n {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n ],\n \"expression\": {\n \"id\": 32097,\n \"name\": \"priceRouter\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30134,\n \"src\": \"39993:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_PriceRouter_$52732\",\n \"typeString\": \"contract PriceRouter\"\n }\n },\n \"id\": 32098,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"40005:9:41\",\n \"memberName\": \"getValues\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 50164,\n \"src\": \"39993:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_contract$_ERC20_$34556_$returns$_t_uint256_$\",\n \"typeString\": \"function (contract ERC20[] memory,uint256[] memory,contract ERC20) view external returns (uint256)\"\n }\n },\n \"id\": 32102,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"39993:58:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"39984:67:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32104,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"39984:67:41\"\n }\n ]\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 32023,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"38875:282:41\",\n \"text\": \" @notice Internal accounting function that can report total assets, or total assets withdrawable.\\n @param reportWithdrawable if true, then the withdrawable total assets is reported,\\n if false, then the total assets is reported\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_accounting\",\n \"nameLocation\": \"39171:11:41\",\n \"parameters\": {\n \"id\": 32026,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32025,\n \"mutability\": \"mutable\",\n \"name\": \"reportWithdrawable\",\n \"nameLocation\": \"39188:18:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32222,\n \"src\": \"39183:23:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 32024,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39183:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"39182:25:41\"\n },\n \"returnParameters\": {\n \"id\": 32029,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32028,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"39239:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32222,\n \"src\": \"39231:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32027,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"39231:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"39230:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32246,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"41742:183:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32245,\n \"nodeType\": \"Block\",\n \"src\": \"41811:114:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32229,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"41821:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 32230,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"41821:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32231,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"41821:16:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32235,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32233,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"41855:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"31\",\n \"id\": 32234,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"41865:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"41855:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"hexValue\": \"5245454e5452414e4359\",\n \"id\": 32236,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"string\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"41868:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n },\n \"value\": \"REENTRANCY\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n }\n ],\n \"id\": 32232,\n \"name\": \"require\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n -18,\n -18\n ],\n \"referencedDeclaration\": -18,\n \"src\": \"41847:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$\",\n \"typeString\": \"function (bool,string memory) pure\"\n }\n },\n \"id\": 32237,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"41847:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32238,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"41847:34:41\"\n },\n {\n \"expression\": {\n \"id\": 32243,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32239,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32227,\n \"src\": \"41891:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 32241,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"41912:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32240,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"41900:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32242,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"41900:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"41891:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32244,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"41891:27:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34918\n ],\n \"documentation\": {\n \"id\": 32223,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"41166:571:41\",\n \"text\": \" @notice The total amount of assets in the cellar.\\n @dev EIP4626 states totalAssets needs to be inclusive of fees.\\n Since performance fees mint shares, total assets remains unchanged,\\n so this implementation is inclusive of fees even though it does not explicitly show it.\\n @dev EIP4626 states totalAssets must not revert, but it is possible for `totalAssets` to revert\\n so it does NOT conform to ERC4626 standards.\\n @dev Run a re-entrancy check because totalAssets can be wrong if re-entering from deposit/withdraws.\"\n },\n \"functionSelector\": \"01e1d114\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"totalAssets\",\n \"nameLocation\": \"41751:11:41\",\n \"overrides\": {\n \"id\": 32225,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"41777:8:41\"\n },\n \"parameters\": {\n \"id\": 32224,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"41762:2:41\"\n },\n \"returnParameters\": {\n \"id\": 32228,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32227,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"41803:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32246,\n \"src\": \"41795:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32226,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"41795:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"41794:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32269,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"42137:185:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32268,\n \"nodeType\": \"Block\",\n \"src\": \"42209:113:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32252,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"42219:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 32253,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"42219:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32254,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"42219:16:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32258,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32256,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"42253:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"31\",\n \"id\": 32257,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"42263:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"42253:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"hexValue\": \"5245454e5452414e4359\",\n \"id\": 32259,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"string\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"42266:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n },\n \"value\": \"REENTRANCY\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n }\n ],\n \"id\": 32255,\n \"name\": \"require\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n -18,\n -18\n ],\n \"referencedDeclaration\": -18,\n \"src\": \"42245:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$\",\n \"typeString\": \"function (bool,string memory) pure\"\n }\n },\n \"id\": 32260,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"42245:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32261,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"42245:34:41\"\n },\n {\n \"expression\": {\n \"id\": 32266,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32262,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32250,\n \"src\": \"42289:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"hexValue\": \"74727565\",\n \"id\": 32264,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"42310:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32263,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"42298:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32265,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"42298:17:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"42289:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32267,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"42289:26:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32247,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"41931:201:41\",\n \"text\": \" @notice The total amount of withdrawable assets in the cellar.\\n @dev Run a re-entrancy check because totalAssetsWithdrawable can be wrong if re-entering from deposit/withdraws.\"\n },\n \"functionSelector\": \"a8144e48\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"totalAssetsWithdrawable\",\n \"nameLocation\": \"42146:23:41\",\n \"parameters\": {\n \"id\": 32248,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"42169:2:41\"\n },\n \"returnParameters\": {\n \"id\": 32251,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32250,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"42201:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32269,\n \"src\": \"42193:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32249,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"42193:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"42192:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32287,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"42549:152:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32286,\n \"nodeType\": \"Block\",\n \"src\": \"42636:65:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 32284,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32278,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32276,\n \"src\": \"42646:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32280,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32272,\n \"src\": \"42672:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32281,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"42680:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32282,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"42680:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32279,\n \"name\": \"_convertToAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32548,\n \"src\": \"42655:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32283,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"42655:39:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"42646:48:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32285,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"42646:48:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34966\n ],\n \"documentation\": {\n \"id\": 32270,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"42328:216:41\",\n \"text\": \" @notice The amount of assets that the cellar would exchange for the amount of shares provided.\\n @param shares amount of shares to convert\\n @return assets the shares can be exchanged for\"\n },\n \"functionSelector\": \"07a2d13a\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"convertToAssets\",\n \"nameLocation\": \"42558:15:41\",\n \"overrides\": {\n \"id\": 32274,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"42602:8:41\"\n },\n \"parameters\": {\n \"id\": 32273,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32272,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"42582:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32287,\n \"src\": \"42574:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32271,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"42574:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"42573:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32277,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32276,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"42628:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32287,\n \"src\": \"42620:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32275,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"42620:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"42619:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32305,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"42928:152:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32304,\n \"nodeType\": \"Block\",\n \"src\": \"43015:65:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 32302,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32296,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32294,\n \"src\": \"43025:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32298,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32290,\n \"src\": \"43051:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32299,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"43059:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32300,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43059:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32297,\n \"name\": \"_convertToShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32582,\n \"src\": \"43034:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32301,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43034:39:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"43025:48:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32303,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"43025:48:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34942\n ],\n \"documentation\": {\n \"id\": 32288,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"42707:216:41\",\n \"text\": \" @notice The amount of shares that the cellar would exchange for the amount of assets provided.\\n @param assets amount of assets to convert\\n @return shares the assets can be exchanged for\"\n },\n \"functionSelector\": \"c6e6f592\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"convertToShares\",\n \"nameLocation\": \"42937:15:41\",\n \"overrides\": {\n \"id\": 32292,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"42981:8:41\"\n },\n \"parameters\": {\n \"id\": 32291,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32290,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"42961:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32305,\n \"src\": \"42953:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32289,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"42953:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"42952:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32295,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32294,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"43007:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32305,\n \"src\": \"42999:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32293,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"42999:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"42998:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32327,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"43304:189:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32326,\n \"nodeType\": \"Block\",\n \"src\": \"43387:106:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32315\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32315,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"43405:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32326,\n \"src\": \"43397:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32314,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43397:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32318,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32316,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"43420:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32317,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43420:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"43397:36:41\"\n },\n {\n \"expression\": {\n \"id\": 32324,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32319,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32312,\n \"src\": \"43443:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32321,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32308,\n \"src\": \"43465:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32322,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32315,\n \"src\": \"43473:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32320,\n \"name\": \"_previewMint\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32616,\n \"src\": \"43452:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32323,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43452:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"43443:43:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32325,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"43443:43:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35002\n ],\n \"documentation\": {\n \"id\": 32306,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"43086:213:41\",\n \"text\": \" @notice Simulate the effects of minting shares at the current block, given current on-chain conditions.\\n @param shares amount of shares to mint\\n @return assets that will be deposited\"\n },\n \"functionSelector\": \"b3d7f6b9\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"previewMint\",\n \"nameLocation\": \"43313:11:41\",\n \"overrides\": {\n \"id\": 32310,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"43353:8:41\"\n },\n \"parameters\": {\n \"id\": 32309,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32308,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"43333:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32327,\n \"src\": \"43325:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32307,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43325:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"43324:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32313,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32312,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"43379:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32327,\n \"src\": \"43371:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32311,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43371:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"43370:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32349,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"43724:197:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32348,\n \"nodeType\": \"Block\",\n \"src\": \"43811:110:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32337\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32337,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"43829:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32348,\n \"src\": \"43821:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32336,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43821:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32340,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32338,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"43844:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32339,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43844:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"43821:36:41\"\n },\n {\n \"expression\": {\n \"id\": 32346,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32341,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32334,\n \"src\": \"43867:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32343,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32330,\n \"src\": \"43893:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32344,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32337,\n \"src\": \"43901:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32342,\n \"name\": \"_previewWithdraw\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32650,\n \"src\": \"43876:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32345,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"43876:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"43867:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32347,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"43867:47:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35026\n ],\n \"documentation\": {\n \"id\": 32328,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"43499:220:41\",\n \"text\": \" @notice Simulate the effects of withdrawing assets at the current block, given current on-chain conditions.\\n @param assets amount of assets to withdraw\\n @return shares that will be redeemed\"\n },\n \"functionSelector\": \"0a28a477\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"previewWithdraw\",\n \"nameLocation\": \"43733:15:41\",\n \"overrides\": {\n \"id\": 32332,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"43777:8:41\"\n },\n \"parameters\": {\n \"id\": 32331,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32330,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"43757:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32349,\n \"src\": \"43749:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32329,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43749:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"43748:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32335,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32334,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"43803:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32349,\n \"src\": \"43795:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32333,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"43795:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"43794:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32371,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"44148:196:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32370,\n \"nodeType\": \"Block\",\n \"src\": \"44234:110:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32359\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32359,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"44252:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32370,\n \"src\": \"44244:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32358,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44244:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32362,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32360,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"44267:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32361,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"44267:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"44244:36:41\"\n },\n {\n \"expression\": {\n \"id\": 32368,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32363,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32356,\n \"src\": \"44290:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32365,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32352,\n \"src\": \"44316:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32366,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32359,\n \"src\": \"44324:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32364,\n \"name\": \"_convertToShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32582,\n \"src\": \"44299:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32367,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"44299:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"44290:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32369,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"44290:47:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 34978\n ],\n \"documentation\": {\n \"id\": 32350,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"43927:216:41\",\n \"text\": \" @notice Simulate the effects of depositing assets at the current block, given current on-chain conditions.\\n @param assets amount of assets to deposit\\n @return shares that will be minted\"\n },\n \"functionSelector\": \"ef8b30f7\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"previewDeposit\",\n \"nameLocation\": \"44157:14:41\",\n \"overrides\": {\n \"id\": 32354,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"44200:8:41\"\n },\n \"parameters\": {\n \"id\": 32353,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32352,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"44180:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32371,\n \"src\": \"44172:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32351,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44172:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"44171:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32357,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32356,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"44226:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32371,\n \"src\": \"44218:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32355,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44218:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"44217:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32393,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"44571:195:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32392,\n \"nodeType\": \"Block\",\n \"src\": \"44656:110:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32381\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32381,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"44674:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32392,\n \"src\": \"44666:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32380,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44666:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32384,\n \"initialValue\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32382,\n \"name\": \"totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n 32246\n ],\n \"referencedDeclaration\": 32246,\n \"src\": \"44689:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$_t_uint256_$\",\n \"typeString\": \"function () view returns (uint256)\"\n }\n },\n \"id\": 32383,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"44689:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"44666:36:41\"\n },\n {\n \"expression\": {\n \"id\": 32390,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32385,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32378,\n \"src\": \"44712:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32387,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32374,\n \"src\": \"44738:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32388,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32381,\n \"src\": \"44746:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32386,\n \"name\": \"_convertToAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32548,\n \"src\": \"44721:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32389,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"44721:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"44712:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32391,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"44712:47:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35038\n ],\n \"documentation\": {\n \"id\": 32372,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"44350:216:41\",\n \"text\": \" @notice Simulate the effects of redeeming shares at the current block, given current on-chain conditions.\\n @param shares amount of shares to redeem\\n @return assets that will be returned\"\n },\n \"functionSelector\": \"4cdad506\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"previewRedeem\",\n \"nameLocation\": \"44580:13:41\",\n \"overrides\": {\n \"id\": 32376,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"44622:8:41\"\n },\n \"parameters\": {\n \"id\": 32375,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32374,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"44602:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32393,\n \"src\": \"44594:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32373,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44594:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"44593:16:41\"\n },\n \"returnParameters\": {\n \"id\": 32379,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32378,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"44648:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32393,\n \"src\": \"44640:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32377,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"44640:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"44639:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32470,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"45071:825:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32469,\n \"nodeType\": \"Block\",\n \"src\": \"45158:738:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32403,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"45168:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 32404,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"45168:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32405,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"45168:16:41\"\n },\n {\n \"assignments\": [\n 32407\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32407,\n \"mutability\": \"mutable\",\n \"name\": \"lockTime\",\n \"nameLocation\": \"45263:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32469,\n \"src\": \"45255:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32406,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45255:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32411,\n \"initialValue\": {\n \"baseExpression\": {\n \"id\": 32408,\n \"name\": \"userShareLockStartTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31320,\n \"src\": \"45274:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 32410,\n \"indexExpression\": {\n \"id\": 32409,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32396,\n \"src\": \"45297:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"45274:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"45255:48:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32414,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32412,\n \"name\": \"lockTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32407,\n \"src\": \"45317:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32413,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"45329:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"45317:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32429,\n \"nodeType\": \"IfStatement\",\n \"src\": \"45313:169:41\",\n \"trueBody\": {\n \"id\": 32428,\n \"nodeType\": \"Block\",\n \"src\": \"45332:150:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32416\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32416,\n \"mutability\": \"mutable\",\n \"name\": \"timeSharesAreUnlocked\",\n \"nameLocation\": \"45354:21:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32428,\n \"src\": \"45346:29:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32415,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45346:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32420,\n \"initialValue\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32419,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32417,\n \"name\": \"lockTime\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32407,\n \"src\": \"45378:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 32418,\n \"name\": \"shareLockPeriod\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31315,\n \"src\": \"45389:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"45378:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"45346:58:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32424,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32421,\n \"name\": \"timeSharesAreUnlocked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32416,\n \"src\": \"45422:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 32422,\n \"name\": \"block\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -4,\n \"src\": \"45446:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_block\",\n \"typeString\": \"block\"\n }\n },\n \"id\": 32423,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"45452:9:41\",\n \"memberName\": \"timestamp\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"45446:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"45422:39:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32427,\n \"nodeType\": \"IfStatement\",\n \"src\": \"45418:53:41\",\n \"trueBody\": {\n \"expression\": {\n \"hexValue\": \"30\",\n \"id\": 32425,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"45470:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"functionReturnParameters\": 32402,\n \"id\": 32426,\n \"nodeType\": \"Return\",\n \"src\": \"45463:8:41\"\n }\n }\n ]\n }\n },\n {\n \"assignments\": [\n 32431\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32431,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"45544:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32469,\n \"src\": \"45536:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32430,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45536:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32435,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 32433,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"45571:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32432,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"45559:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32434,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"45559:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"45536:41:41\"\n },\n {\n \"assignments\": [\n 32437\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32437,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"45595:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32469,\n \"src\": \"45587:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32436,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45587:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32444,\n \"initialValue\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 32439,\n \"name\": \"balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34199,\n \"src\": \"45621:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_uint256_$\",\n \"typeString\": \"mapping(address => uint256)\"\n }\n },\n \"id\": 32441,\n \"indexExpression\": {\n \"id\": 32440,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32396,\n \"src\": \"45631:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"45621:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32442,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32431,\n \"src\": \"45639:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32438,\n \"name\": \"_convertToAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32548,\n \"src\": \"45604:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32443,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"45604:48:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"45587:65:41\"\n },\n {\n \"assignments\": [\n 32446\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32446,\n \"mutability\": \"mutable\",\n \"name\": \"withdrawable\",\n \"nameLocation\": \"45671:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32469,\n \"src\": \"45663:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32445,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45663:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32450,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"74727565\",\n \"id\": 32448,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"45698:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32447,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"45686:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32449,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"45686:17:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"45663:40:41\"\n },\n {\n \"expression\": {\n \"id\": 32458,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32451,\n \"name\": \"maxOut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32401,\n \"src\": \"45713:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32454,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32452,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32437,\n \"src\": \"45722:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<=\",\n \"rightExpression\": {\n \"id\": 32453,\n \"name\": \"withdrawable\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32446,\n \"src\": \"45732:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"45722:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"id\": 32456,\n \"name\": \"withdrawable\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32446,\n \"src\": \"45756:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32457,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"45722:46:41\",\n \"trueExpression\": {\n \"id\": 32455,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32437,\n \"src\": \"45747:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"45713:55:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32459,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"45713:55:41\"\n },\n {\n \"condition\": {\n \"id\": 32460,\n \"name\": \"inShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32398,\n \"src\": \"45783:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32468,\n \"nodeType\": \"IfStatement\",\n \"src\": \"45779:61:41\",\n \"trueBody\": {\n \"expression\": {\n \"id\": 32466,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32461,\n \"name\": \"maxOut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32401,\n \"src\": \"45793:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"id\": 32463,\n \"name\": \"maxOut\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32401,\n \"src\": \"45819:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32464,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32431,\n \"src\": \"45827:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32462,\n \"name\": \"_convertToShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32582,\n \"src\": \"45802:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256) view returns (uint256)\"\n }\n },\n \"id\": 32465,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"45802:38:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"45793:47:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32467,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"45793:47:41\"\n }\n }\n ]\n },\n \"documentation\": {\n \"id\": 32394,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"44772:294:41\",\n \"text\": \" @notice Finds the max amount of value an `owner` can remove from the cellar.\\n @param owner address of the user to find max value.\\n @param inShares if false, then returns value in terms of assets\\n if true then returns value in terms of shares\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_findMax\",\n \"nameLocation\": \"45080:8:41\",\n \"parameters\": {\n \"id\": 32399,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32396,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"45097:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32470,\n \"src\": \"45089:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32395,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45089:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32398,\n \"mutability\": \"mutable\",\n \"name\": \"inShares\",\n \"nameLocation\": \"45109:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32470,\n \"src\": \"45104:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 32397,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45104:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"45088:30:41\"\n },\n \"returnParameters\": {\n \"id\": 32402,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32401,\n \"mutability\": \"mutable\",\n \"name\": \"maxOut\",\n \"nameLocation\": \"45150:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32470,\n \"src\": \"45142:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32400,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"45142:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"45141:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32492,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"46282:165:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32491,\n \"nodeType\": \"Block\",\n \"src\": \"46357:90:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32482,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32480,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"46375:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"31\",\n \"id\": 32481,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46385:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"46375:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"hexValue\": \"5245454e5452414e4359\",\n \"id\": 32483,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"string\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46388:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n },\n \"value\": \"REENTRANCY\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n }\n ],\n \"id\": 32479,\n \"name\": \"require\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n -18,\n -18\n ],\n \"referencedDeclaration\": -18,\n \"src\": \"46367:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$\",\n \"typeString\": \"function (bool,string memory) pure\"\n }\n },\n \"id\": 32484,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"46367:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32485,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"46367:34:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 32487,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32473,\n \"src\": \"46427:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 32488,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46434:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32486,\n \"name\": \"_findMax\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32470,\n \"src\": \"46418:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (address,bool) view returns (uint256)\"\n }\n },\n \"id\": 32489,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"46418:22:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 32478,\n \"id\": 32490,\n \"nodeType\": \"Return\",\n \"src\": \"46411:29:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35080\n ],\n \"documentation\": {\n \"id\": 32471,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"45902:375:41\",\n \"text\": \" @notice Returns the max amount withdrawable by a user inclusive of performance fees\\n @dev EIP4626 states maxWithdraw must not revert, but it is possible for `totalAssets` to revert\\n so it does NOT conform to ERC4626 standards.\\n @param owner address to check maxWithdraw of.\\n @return the max amount of assets withdrawable by `owner`.\"\n },\n \"functionSelector\": \"ce96cb77\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"maxWithdraw\",\n \"nameLocation\": \"46291:11:41\",\n \"overrides\": {\n \"id\": 32475,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"46330:8:41\"\n },\n \"parameters\": {\n \"id\": 32474,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32473,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"46311:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32492,\n \"src\": \"46303:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32472,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"46303:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"46302:15:41\"\n },\n \"returnParameters\": {\n \"id\": 32478,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32477,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32492,\n \"src\": \"46348:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32476,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"46348:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"46347:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32514,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"46802:162:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32513,\n \"nodeType\": \"Block\",\n \"src\": \"46875:89:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32504,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32502,\n \"name\": \"locked\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30111,\n \"src\": \"46893:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"31\",\n \"id\": 32503,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46903:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1_by_1\",\n \"typeString\": \"int_const 1\"\n },\n \"value\": \"1\"\n },\n \"src\": \"46893:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n {\n \"hexValue\": \"5245454e5452414e4359\",\n \"id\": 32505,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"string\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46906:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n },\n \"value\": \"REENTRANCY\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n {\n \"typeIdentifier\": \"t_stringliteral_180a23d5434c537ca84b1e47f534d18e25bd055e02a65ce20bae4afd9c835f59\",\n \"typeString\": \"literal_string \\\"REENTRANCY\\\"\"\n }\n ],\n \"id\": 32501,\n \"name\": \"require\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [\n -18,\n -18\n ],\n \"referencedDeclaration\": -18,\n \"src\": \"46885:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$\",\n \"typeString\": \"function (bool,string memory) pure\"\n }\n },\n \"id\": 32506,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"46885:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32507,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"46885:34:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 32509,\n \"name\": \"owner\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32495,\n \"src\": \"46945:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"hexValue\": \"74727565\",\n \"id\": 32510,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"46952:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32508,\n \"name\": \"_findMax\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32470,\n \"src\": \"46936:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_address_$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (address,bool) view returns (uint256)\"\n }\n },\n \"id\": 32511,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"46936:21:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 32500,\n \"id\": 32512,\n \"nodeType\": \"Return\",\n \"src\": \"46929:28:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35092\n ],\n \"documentation\": {\n \"id\": 32493,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"46453:344:41\",\n \"text\": \" @notice Returns the max amount shares redeemable by a user\\n @dev EIP4626 states maxRedeem must not revert, but it is possible for `totalAssets` to revert\\n so it does NOT conform to ERC4626 standards.\\n @param owner address to check maxRedeem of.\\n @return the max amount of shares redeemable by `owner`.\"\n },\n \"functionSelector\": \"d905777e\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"maxRedeem\",\n \"nameLocation\": \"46811:9:41\",\n \"overrides\": {\n \"id\": 32497,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"46848:8:41\"\n },\n \"parameters\": {\n \"id\": 32496,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32495,\n \"mutability\": \"mutable\",\n \"name\": \"owner\",\n \"nameLocation\": \"46829:5:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32514,\n \"src\": \"46821:13:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32494,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"46821:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"46820:15:41\"\n },\n \"returnParameters\": {\n \"id\": 32500,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32499,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32514,\n \"src\": \"46866:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32498,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"46866:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"46865:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32548,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"47094:306:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32547,\n \"nodeType\": \"Block\",\n \"src\": \"47197:203:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32525\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32525,\n \"mutability\": \"mutable\",\n \"name\": \"totalShares\",\n \"nameLocation\": \"47215:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32547,\n \"src\": \"47207:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32524,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47207:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32527,\n \"initialValue\": {\n \"id\": 32526,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"47229:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"47207:33:41\"\n },\n {\n \"expression\": {\n \"id\": 32545,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32528,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32522,\n \"src\": \"47251:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32531,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32529,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32525,\n \"src\": \"47260:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32530,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"47275:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"47260:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"arguments\": [\n {\n \"id\": 32541,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32519,\n \"src\": \"47367:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32542,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32525,\n \"src\": \"47381:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 32539,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32517,\n \"src\": \"47349:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32540,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47356:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"47349:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32543,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47349:44:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32544,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"47260:133:41\",\n \"trueExpression\": {\n \"arguments\": [\n {\n \"hexValue\": \"3138\",\n \"id\": 32534,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"47313:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n \"value\": \"18\"\n },\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 32535,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"47317:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32536,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47323:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"47317:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 32537,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47317:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n ],\n \"expression\": {\n \"id\": 32532,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32517,\n \"src\": \"47291:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32533,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47298:14:41\",\n \"memberName\": \"changeDecimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54445,\n \"src\": \"47291:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint8,uint8) pure returns (uint256)\"\n }\n },\n \"id\": 32538,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47291:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"47251:142:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32546,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"47251:142:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32515,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"46970:119:41\",\n \"text\": \" @dev Used to more efficiently convert amount of shares to assets using a stored `totalAssets` value.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_convertToAssets\",\n \"nameLocation\": \"47103:16:41\",\n \"parameters\": {\n \"id\": 32520,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32517,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"47128:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32548,\n \"src\": \"47120:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32516,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47120:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32519,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"47144:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32548,\n \"src\": \"47136:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32518,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47136:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"47119:38:41\"\n },\n \"returnParameters\": {\n \"id\": 32523,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32522,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"47189:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32548,\n \"src\": \"47181:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32521,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47181:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"47180:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32582,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"47530:306:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32581,\n \"nodeType\": \"Block\",\n \"src\": \"47633:203:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32559\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32559,\n \"mutability\": \"mutable\",\n \"name\": \"totalShares\",\n \"nameLocation\": \"47651:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32581,\n \"src\": \"47643:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32558,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47643:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32561,\n \"initialValue\": {\n \"id\": 32560,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"47665:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"47643:33:41\"\n },\n {\n \"expression\": {\n \"id\": 32579,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32562,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32556,\n \"src\": \"47687:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32565,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32563,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32559,\n \"src\": \"47696:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32564,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"47711:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"47696:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"arguments\": [\n {\n \"id\": 32575,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32559,\n \"src\": \"47803:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32576,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32553,\n \"src\": \"47816:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 32573,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32551,\n \"src\": \"47785:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32574,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47792:10:41\",\n \"memberName\": \"mulDivDown\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54494,\n \"src\": \"47785:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32577,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47785:44:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32578,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"47696:133:41\",\n \"trueExpression\": {\n \"arguments\": [\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 32568,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"47749:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32569,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47755:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"47749:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 32570,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47749:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n {\n \"hexValue\": \"3138\",\n \"id\": 32571,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"47767:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n \"value\": \"18\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n }\n ],\n \"expression\": {\n \"id\": 32566,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32551,\n \"src\": \"47727:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32567,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"47734:14:41\",\n \"memberName\": \"changeDecimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54445,\n \"src\": \"47727:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint8,uint8) pure returns (uint256)\"\n }\n },\n \"id\": 32572,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"47727:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"47687:142:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32580,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"47687:142:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32549,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"47406:119:41\",\n \"text\": \" @dev Used to more efficiently convert amount of assets to shares using a stored `totalAssets` value.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_convertToShares\",\n \"nameLocation\": \"47539:16:41\",\n \"parameters\": {\n \"id\": 32554,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32551,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"47564:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32582,\n \"src\": \"47556:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32550,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47556:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32553,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"47580:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32582,\n \"src\": \"47572:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32552,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47572:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"47555:38:41\"\n },\n \"returnParameters\": {\n \"id\": 32557,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32556,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"47625:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32582,\n \"src\": \"47617:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32555,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47617:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"47616:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32616,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"47955:300:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32615,\n \"nodeType\": \"Block\",\n \"src\": \"48054:201:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32593\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32593,\n \"mutability\": \"mutable\",\n \"name\": \"totalShares\",\n \"nameLocation\": \"48072:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32615,\n \"src\": \"48064:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32592,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48064:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32595,\n \"initialValue\": {\n \"id\": 32594,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"48086:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"48064:33:41\"\n },\n {\n \"expression\": {\n \"id\": 32613,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32596,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32590,\n \"src\": \"48108:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32599,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32597,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32593,\n \"src\": \"48117:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32598,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"48132:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"48117:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"arguments\": [\n {\n \"id\": 32609,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32587,\n \"src\": \"48222:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32610,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32593,\n \"src\": \"48236:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 32607,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32585,\n \"src\": \"48206:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32608,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48213:8:41\",\n \"memberName\": \"mulDivUp\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54507,\n \"src\": \"48206:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32611,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48206:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32612,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"48117:131:41\",\n \"trueExpression\": {\n \"arguments\": [\n {\n \"hexValue\": \"3138\",\n \"id\": 32602,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"48170:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n \"value\": \"18\"\n },\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 32603,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"48174:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32604,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48180:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"48174:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 32605,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48174:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n ],\n \"expression\": {\n \"id\": 32600,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32585,\n \"src\": \"48148:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32601,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48155:14:41\",\n \"memberName\": \"changeDecimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54445,\n \"src\": \"48148:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint8,uint8) pure returns (uint256)\"\n }\n },\n \"id\": 32606,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48148:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"48108:140:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32614,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"48108:140:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32583,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"47842:108:41\",\n \"text\": \" @dev Used to more efficiently simulate minting shares using a stored `totalAssets` value.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_previewMint\",\n \"nameLocation\": \"47964:12:41\",\n \"parameters\": {\n \"id\": 32588,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32585,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"47985:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32616,\n \"src\": \"47977:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32584,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47977:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32587,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"48001:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32616,\n \"src\": \"47993:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32586,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"47993:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"47976:38:41\"\n },\n \"returnParameters\": {\n \"id\": 32591,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32590,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"48046:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32616,\n \"src\": \"48038:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32589,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48038:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"48037:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32650,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"48378:304:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32649,\n \"nodeType\": \"Block\",\n \"src\": \"48481:201:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 32627\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32627,\n \"mutability\": \"mutable\",\n \"name\": \"totalShares\",\n \"nameLocation\": \"48499:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32649,\n \"src\": \"48491:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32626,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48491:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32629,\n \"initialValue\": {\n \"id\": 32628,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"48513:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"48491:33:41\"\n },\n {\n \"expression\": {\n \"id\": 32647,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32630,\n \"name\": \"shares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32624,\n \"src\": \"48535:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32633,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32631,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32627,\n \"src\": \"48544:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"==\",\n \"rightExpression\": {\n \"hexValue\": \"30\",\n \"id\": 32632,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"48559:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"src\": \"48544:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"falseExpression\": {\n \"arguments\": [\n {\n \"id\": 32643,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32627,\n \"src\": \"48649:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32644,\n \"name\": \"_totalAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32621,\n \"src\": \"48662:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"id\": 32641,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32619,\n \"src\": \"48633:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32642,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48640:8:41\",\n \"memberName\": \"mulDivUp\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54507,\n \"src\": \"48633:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32645,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48633:42:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32646,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"Conditional\",\n \"src\": \"48544:131:41\",\n \"trueExpression\": {\n \"arguments\": [\n {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"expression\": {\n \"id\": 32636,\n \"name\": \"asset\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34599,\n \"src\": \"48597:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 32637,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48603:8:41\",\n \"memberName\": \"decimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 34193,\n \"src\": \"48597:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$__$returns$_t_uint8_$\",\n \"typeString\": \"function () view external returns (uint8)\"\n }\n },\n \"id\": 32638,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48597:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n {\n \"hexValue\": \"3138\",\n \"id\": 32639,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"48615:2:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n },\n \"value\": \"18\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n {\n \"typeIdentifier\": \"t_rational_18_by_1\",\n \"typeString\": \"int_const 18\"\n }\n ],\n \"expression\": {\n \"id\": 32634,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32619,\n \"src\": \"48575:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32635,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"48582:14:41\",\n \"memberName\": \"changeDecimals\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54445,\n \"src\": \"48575:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint8_$_t_uint8_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint8,uint8) pure returns (uint256)\"\n }\n },\n \"id\": 32640,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"48575:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"48535:140:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32648,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"48535:140:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32617,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"48261:112:41\",\n \"text\": \" @dev Used to more efficiently simulate withdrawing assets using a stored `totalAssets` value.\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_previewWithdraw\",\n \"nameLocation\": \"48387:16:41\",\n \"parameters\": {\n \"id\": 32622,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32619,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"48412:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32650,\n \"src\": \"48404:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32618,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48404:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32621,\n \"mutability\": \"mutable\",\n \"name\": \"_totalAssets\",\n \"nameLocation\": \"48428:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32650,\n \"src\": \"48420:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32620,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48420:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"48403:38:41\"\n },\n \"returnParameters\": {\n \"id\": 32625,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32624,\n \"mutability\": \"mutable\",\n \"name\": \"shares\",\n \"nameLocation\": \"48473:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32650,\n \"src\": \"48465:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32623,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"48465:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"48464:16:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 32657,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"48991:76:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"documentation\": {\n \"id\": 32651,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"48798:188:41\",\n \"text\": \" @notice Emitted on when the rebalance deviation is changed.\\n @param oldDeviation the old rebalance deviation\\n @param newDeviation the new rebalance deviation\"\n },\n \"eventSelector\": \"df4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff\",\n \"name\": \"RebalanceDeviationChanged\",\n \"nameLocation\": \"48997:25:41\",\n \"parameters\": {\n \"id\": 32656,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32653,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"oldDeviation\",\n \"nameLocation\": \"49031:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32657,\n \"src\": \"49023:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32652,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49023:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32655,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"newDeviation\",\n \"nameLocation\": \"49053:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32657,\n \"src\": \"49045:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32654,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49045:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"49022:44:41\"\n }\n },\n {\n \"id\": 32666,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"49321:87:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32658,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"49073:243:41\",\n \"text\": \" @notice totalAssets deviated outside the range set by `allowedRebalanceDeviation`.\\n @param assets the total assets in the cellar\\n @param min the minimum allowed assets\\n @param max the maximum allowed assets\"\n },\n \"errorSelector\": \"c51988ea\",\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\",\n \"nameLocation\": \"49327:38:41\",\n \"parameters\": {\n \"id\": 32665,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32660,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"49374:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32666,\n \"src\": \"49366:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32659,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49366:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32662,\n \"mutability\": \"mutable\",\n \"name\": \"min\",\n \"nameLocation\": \"49390:3:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32666,\n \"src\": \"49382:11:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32661,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49382:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32664,\n \"mutability\": \"mutable\",\n \"name\": \"max\",\n \"nameLocation\": \"49403:3:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32666,\n \"src\": \"49395:11:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32663,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49395:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"49365:42:41\"\n }\n },\n {\n \"id\": 32673,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"49626:79:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32667,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"49414:207:41\",\n \"text\": \" @notice Total shares in a cellar changed when they should stay constant.\\n @param current the current amount of total shares\\n @param expected the expected amount of total shares\"\n },\n \"errorSelector\": \"ad005164\",\n \"name\": \"Cellar__TotalSharesMustRemainConstant\",\n \"nameLocation\": \"49632:37:41\",\n \"parameters\": {\n \"id\": 32672,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32669,\n \"mutability\": \"mutable\",\n \"name\": \"current\",\n \"nameLocation\": \"49678:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32673,\n \"src\": \"49670:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32668,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49670:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32671,\n \"mutability\": \"mutable\",\n \"name\": \"expected\",\n \"nameLocation\": \"49695:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32673,\n \"src\": \"49687:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32670,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49687:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"49669:35:41\"\n }\n },\n {\n \"id\": 32680,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"49913:72:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32674,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"49711:197:41\",\n \"text\": \" @notice Total shares in a cellar changed when they should stay constant.\\n @param requested the requested rebalance deviation\\n @param max the max rebalance deviation.\"\n },\n \"errorSelector\": \"5a5521e0\",\n \"name\": \"Cellar__InvalidRebalanceDeviation\",\n \"nameLocation\": \"49919:33:41\",\n \"parameters\": {\n \"id\": 32679,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32676,\n \"mutability\": \"mutable\",\n \"name\": \"requested\",\n \"nameLocation\": \"49961:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32680,\n \"src\": \"49953:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32675,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49953:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32678,\n \"mutability\": \"mutable\",\n \"name\": \"max\",\n \"nameLocation\": \"49980:3:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32680,\n \"src\": \"49972:11:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32677,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"49972:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"49952:32:41\"\n }\n },\n {\n \"id\": 32685,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"50189:55:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32681,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"49991:193:41\",\n \"text\": \" @notice Strategist attempted to use an adaptor that is either paused or is not trusted by governance.\\n @param adaptor the adaptor address that is paused or not trusted.\"\n },\n \"errorSelector\": \"bbed6c2e\",\n \"name\": \"Cellar__CallToAdaptorNotAllowed\",\n \"nameLocation\": \"50195:31:41\",\n \"parameters\": {\n \"id\": 32684,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32683,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"50235:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32685,\n \"src\": \"50227:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32682,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"50227:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"50226:17:41\"\n }\n },\n {\n \"id\": 32689,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"50342:55:41\",\n \"nodes\": [],\n \"constant\": true,\n \"documentation\": {\n \"id\": 32686,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"50250:87:41\",\n \"text\": \" @notice Stores the max possible rebalance deviation for this cellar.\"\n },\n \"functionSelector\": \"6ff1c02a\",\n \"mutability\": \"constant\",\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"nameLocation\": \"50365:23:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n },\n \"typeName\": {\n \"id\": 32687,\n \"name\": \"uint64\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"50342:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"value\": {\n \"hexValue\": \"302e31653138\",\n \"id\": 32688,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"50391:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_100000000000000000_by_1\",\n \"typeString\": \"int_const 100000000000000000\"\n },\n \"value\": \"0.1e18\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 32693,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"50530:52:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 32690,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"50404:121:41\",\n \"text\": \" @notice The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.\"\n },\n \"functionSelector\": \"c244245a\",\n \"mutability\": \"mutable\",\n \"name\": \"allowedRebalanceDeviation\",\n \"nameLocation\": \"50545:25:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32691,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"50530:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"value\": {\n \"hexValue\": \"302e30303033653138\",\n \"id\": 32692,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"50573:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_300000000000000_by_1\",\n \"typeString\": \"int_const 300000000000000\"\n },\n \"value\": \"0.0003e18\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 32724,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"50744:402:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32723,\n \"nodeType\": \"Block\",\n \"src\": \"50816:330:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32703,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32701,\n \"name\": \"newDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32696,\n \"src\": \"50830:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 32702,\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32689,\n \"src\": \"50845:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n },\n \"src\": \"50830:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32709,\n \"nodeType\": \"IfStatement\",\n \"src\": \"50826:135:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32705,\n \"name\": \"newDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32696,\n \"src\": \"50923:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32706,\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32689,\n \"src\": \"50937:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint64\",\n \"typeString\": \"uint64\"\n }\n ],\n \"id\": 32704,\n \"name\": \"Cellar__InvalidRebalanceDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32680,\n \"src\": \"50889:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256) pure\"\n }\n },\n \"id\": 32707,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"50889:72:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32708,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"50882:79:41\"\n }\n },\n {\n \"assignments\": [\n 32711\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32711,\n \"mutability\": \"mutable\",\n \"name\": \"oldDeviation\",\n \"nameLocation\": \"50980:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32723,\n \"src\": \"50972:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32710,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"50972:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32713,\n \"initialValue\": {\n \"id\": 32712,\n \"name\": \"allowedRebalanceDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32693,\n \"src\": \"50995:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"50972:48:41\"\n },\n {\n \"expression\": {\n \"id\": 32716,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32714,\n \"name\": \"allowedRebalanceDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32693,\n \"src\": \"51030:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 32715,\n \"name\": \"newDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32696,\n \"src\": \"51058:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"51030:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32717,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"51030:40:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 32719,\n \"name\": \"oldDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32711,\n \"src\": \"51112:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32720,\n \"name\": \"newDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32696,\n \"src\": \"51126:12:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32718,\n \"name\": \"RebalanceDeviationChanged\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32657,\n \"src\": \"51086:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256)\"\n }\n },\n \"id\": 32721,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"51086:53:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32722,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"51081:58:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32694,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"50589:150:41\",\n \"text\": \" @notice Allows governance to change this cellars rebalance deviation.\\n @param newDeviation the new rebalance deviation value.\"\n },\n \"functionSelector\": \"530a3714\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 32699,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 32698,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"50806:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"50806:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"50806:9:41\"\n }\n ],\n \"name\": \"setRebalanceDeviation\",\n \"nameLocation\": \"50753:21:41\",\n \"parameters\": {\n \"id\": 32697,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32696,\n \"mutability\": \"mutable\",\n \"name\": \"newDeviation\",\n \"nameLocation\": \"50783:12:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32724,\n \"src\": \"50775:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32695,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"50775:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"50774:22:41\"\n },\n \"returnParameters\": {\n \"id\": 32700,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"50816:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 32727,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"51330:33:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 32725,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"51206:119:41\",\n \"text\": \" @notice This bool is used to stop strategists from abusing Base Adaptor functions(deposit/withdraw).\"\n },\n \"functionSelector\": \"4c4602da\",\n \"mutability\": \"mutable\",\n \"name\": \"blockExternalReceiver\",\n \"nameLocation\": \"51342:21:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 32726,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"51330:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 32733,\n \"nodeType\": \"StructDefinition\",\n \"src\": \"51576:77:41\",\n \"nodes\": [],\n \"canonicalName\": \"Cellar.AdaptorCall\",\n \"members\": [\n {\n \"constant\": false,\n \"id\": 32729,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"51613:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32733,\n \"src\": \"51605:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32728,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"51605:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32732,\n \"mutability\": \"mutable\",\n \"name\": \"callData\",\n \"nameLocation\": \"51638:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32733,\n \"src\": \"51630:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_storage_$dyn_storage_ptr\",\n \"typeString\": \"bytes[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32730,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"51630:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"id\": 32731,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"51630:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_storage_$dyn_storage_ptr\",\n \"typeString\": \"bytes[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"name\": \"AdaptorCall\",\n \"nameLocation\": \"51583:11:41\",\n \"scope\": 33437,\n \"visibility\": \"public\"\n },\n {\n \"id\": 32739,\n \"nodeType\": \"EventDefinition\",\n \"src\": \"51659:49:41\",\n \"nodes\": [],\n \"anonymous\": false,\n \"eventSelector\": \"7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf483\",\n \"name\": \"AdaptorCalled\",\n \"nameLocation\": \"51665:13:41\",\n \"parameters\": {\n \"id\": 32738,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32735,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"51687:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32739,\n \"src\": \"51679:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32734,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"51679:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32737,\n \"indexed\": false,\n \"mutability\": \"mutable\",\n \"name\": \"data\",\n \"nameLocation\": \"51702:4:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32739,\n \"src\": \"51696:10:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 32736,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"51696:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"51678:29:41\"\n }\n },\n {\n \"id\": 32904,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"52415:1775:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 32903,\n \"nodeType\": \"Block\",\n \"src\": \"52497:1693:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32751,\n \"name\": \"_whenNotShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 31022,\n \"src\": \"52507:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 32752,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"52507:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32753,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"52507:18:41\"\n },\n {\n \"expression\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32754,\n \"name\": \"_checkIfPaused\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30999,\n \"src\": \"52535:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$__$returns$__$\",\n \"typeString\": \"function () view\"\n }\n },\n \"id\": 32755,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"52535:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32756,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"52535:16:41\"\n },\n {\n \"expression\": {\n \"id\": 32759,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32757,\n \"name\": \"blockExternalReceiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32727,\n \"src\": \"52561:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 32758,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"52585:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"52561:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32760,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"52561:28:41\"\n },\n {\n \"assignments\": [\n 32762\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32762,\n \"mutability\": \"mutable\",\n \"name\": \"minimumAllowedAssets\",\n \"nameLocation\": \"52692:20:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32903,\n \"src\": \"52684:28:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32761,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"52684:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32763,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"52684:28:41\"\n },\n {\n \"assignments\": [\n 32765\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32765,\n \"mutability\": \"mutable\",\n \"name\": \"maximumAllowedAssets\",\n \"nameLocation\": \"52730:20:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32903,\n \"src\": \"52722:28:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32764,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"52722:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32766,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"52722:28:41\"\n },\n {\n \"assignments\": [\n 32768\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32768,\n \"mutability\": \"mutable\",\n \"name\": \"totalShares\",\n \"nameLocation\": \"52768:11:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32903,\n \"src\": \"52760:19:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32767,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"52760:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32769,\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"52760:19:41\"\n },\n {\n \"id\": 32802,\n \"nodeType\": \"Block\",\n \"src\": \"52789:338:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32771\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32771,\n \"mutability\": \"mutable\",\n \"name\": \"assetsBeforeAdaptorCall\",\n \"nameLocation\": \"52811:23:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32802,\n \"src\": \"52803:31:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32770,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"52803:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32775,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 32773,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"52849:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32772,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"52837:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32774,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"52837:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"52803:52:41\"\n },\n {\n \"expression\": {\n \"id\": 32785,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32776,\n \"name\": \"minimumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32762,\n \"src\": \"52869:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"components\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32781,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"hexValue\": \"31653138\",\n \"id\": 32779,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"52926:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"-\",\n \"rightExpression\": {\n \"id\": 32780,\n \"name\": \"allowedRebalanceDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32693,\n \"src\": \"52933:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"52926:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 32782,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"52925:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"hexValue\": \"31653138\",\n \"id\": 32783,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"52961:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n }\n ],\n \"expression\": {\n \"id\": 32777,\n \"name\": \"assetsBeforeAdaptorCall\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32771,\n \"src\": \"52892:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32778,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"52916:8:41\",\n \"memberName\": \"mulDivUp\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54507,\n \"src\": \"52892:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32784,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"52892:74:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"52869:97:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32786,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"52869:97:41\"\n },\n {\n \"expression\": {\n \"id\": 32796,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32787,\n \"name\": \"maximumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32765,\n \"src\": \"52980:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"components\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32792,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"hexValue\": \"31653138\",\n \"id\": 32790,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"53037:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 32791,\n \"name\": \"allowedRebalanceDeviation\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32693,\n \"src\": \"53044:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53037:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 32793,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"53036:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"hexValue\": \"31653138\",\n \"id\": 32794,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"53072:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n },\n \"value\": \"1e18\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_rational_1000000000000000000_by_1\",\n \"typeString\": \"int_const 1000000000000000000\"\n }\n ],\n \"expression\": {\n \"id\": 32788,\n \"name\": \"assetsBeforeAdaptorCall\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32771,\n \"src\": \"53003:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32789,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53027:8:41\",\n \"memberName\": \"mulDivUp\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 54507,\n \"src\": \"53003:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure returns (uint256)\"\n }\n },\n \"id\": 32795,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53003:74:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"52980:97:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32797,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"52980:97:41\"\n },\n {\n \"expression\": {\n \"id\": 32800,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32798,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32768,\n \"src\": \"53091:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"id\": 32799,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"53105:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53091:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32801,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"53091:25:41\"\n }\n ]\n },\n {\n \"body\": {\n \"id\": 32867,\n \"nodeType\": \"Block\",\n \"src\": \"53211:437:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32815\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32815,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"53233:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32867,\n \"src\": \"53225:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32814,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"53225:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32820,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32816,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32744,\n \"src\": \"53243:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32818,\n \"indexExpression\": {\n \"id\": 32817,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53248:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53243:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32819,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53251:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32729,\n \"src\": \"53243:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"53225:33:41\"\n },\n {\n \"condition\": {\n \"id\": 32824,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"53349:26:41\",\n \"subExpression\": {\n \"baseExpression\": {\n \"id\": 32821,\n \"name\": \"adaptorCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30406,\n \"src\": \"53350:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n }\n },\n \"id\": 32823,\n \"indexExpression\": {\n \"id\": 32822,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32815,\n \"src\": \"53367:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53350:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32829,\n \"nodeType\": \"IfStatement\",\n \"src\": \"53345:79:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32826,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32815,\n \"src\": \"53416:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 32825,\n \"name\": \"Cellar__CallToAdaptorNotAllowed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32685,\n \"src\": \"53384:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_address_$returns$__$\",\n \"typeString\": \"function (address) pure\"\n }\n },\n \"id\": 32827,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53384:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32828,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"53377:47:41\"\n }\n },\n {\n \"body\": {\n \"id\": 32865,\n \"nodeType\": \"Block\",\n \"src\": \"53490:148:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32847,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32744,\n \"src\": \"53537:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32849,\n \"indexExpression\": {\n \"id\": 32848,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53542:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53537:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32850,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53545:8:41\",\n \"memberName\": \"callData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32732,\n \"src\": \"53537:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 32852,\n \"indexExpression\": {\n \"id\": 32851,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32831,\n \"src\": \"53554:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53537:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"expression\": {\n \"id\": 32844,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32815,\n \"src\": \"53508:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 32846,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53516:20:41\",\n \"memberName\": \"functionDelegateCall\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 24224,\n \"src\": \"53508:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$\",\n \"typeString\": \"function (address,bytes memory) returns (bytes memory)\"\n }\n },\n \"id\": 32853,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53508:49:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n \"id\": 32854,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"53508:49:41\"\n },\n {\n \"eventCall\": {\n \"arguments\": [\n {\n \"id\": 32856,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32815,\n \"src\": \"53594:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"baseExpression\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32857,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32744,\n \"src\": \"53603:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32859,\n \"indexExpression\": {\n \"id\": 32858,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53608:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53603:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32860,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53611:8:41\",\n \"memberName\": \"callData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32732,\n \"src\": \"53603:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 32862,\n \"indexExpression\": {\n \"id\": 32861,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32831,\n \"src\": \"53620:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53603:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"id\": 32855,\n \"name\": \"AdaptorCalled\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32739,\n \"src\": \"53580:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$\",\n \"typeString\": \"function (address,bytes memory)\"\n }\n },\n \"id\": 32863,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53580:43:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32864,\n \"nodeType\": \"EmitStatement\",\n \"src\": \"53575:48:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32840,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32834,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32831,\n \"src\": \"53456:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32835,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32744,\n \"src\": \"53460:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32837,\n \"indexExpression\": {\n \"id\": 32836,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53465:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"53460:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32838,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53468:8:41\",\n \"memberName\": \"callData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32732,\n \"src\": \"53460:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 32839,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53477:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"53460:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53456:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32866,\n \"initializationExpression\": {\n \"assignments\": [\n 32831\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32831,\n \"mutability\": \"mutable\",\n \"name\": \"j\",\n \"nameLocation\": \"53449:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32866,\n \"src\": \"53443:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n \"typeName\": {\n \"id\": 32830,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"53443:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32833,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 32832,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"53453:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"53443:11:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32842,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": false,\n \"src\": \"53485:3:41\",\n \"subExpression\": {\n \"id\": 32841,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32831,\n \"src\": \"53485:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"id\": 32843,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"53485:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"53438:200:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32810,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32807,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53189:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 32808,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32744,\n \"src\": \"53193:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32809,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"53198:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"53193:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53189:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32868,\n \"initializationExpression\": {\n \"assignments\": [\n 32804\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32804,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"53182:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32868,\n \"src\": \"53176:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n \"typeName\": {\n \"id\": 32803,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"53176:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32806,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 32805,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"53186:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"53176:11:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32812,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"53206:3:41\",\n \"subExpression\": {\n \"id\": 32811,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32804,\n \"src\": \"53208:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"id\": 32813,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"53206:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"53171:477:41\"\n },\n {\n \"assignments\": [\n 32870\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32870,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"53805:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32903,\n \"src\": \"53797:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 32869,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"53797:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32874,\n \"initialValue\": {\n \"arguments\": [\n {\n \"hexValue\": \"66616c7365\",\n \"id\": 32872,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"53826:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n ],\n \"id\": 32871,\n \"name\": \"_accounting\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32222,\n \"src\": \"53814:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_bool_$returns$_t_uint256_$\",\n \"typeString\": \"function (bool) view returns (uint256)\"\n }\n },\n \"id\": 32873,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53814:18:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"53797:35:41\"\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"id\": 32881,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32877,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32875,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32870,\n \"src\": \"53846:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 32876,\n \"name\": \"minimumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32762,\n \"src\": \"53855:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53846:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"||\",\n \"rightExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32880,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32878,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32870,\n \"src\": \"53879:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \">\",\n \"rightExpression\": {\n \"id\": 32879,\n \"name\": \"maximumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32765,\n \"src\": \"53888:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"53879:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"src\": \"53846:62:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32889,\n \"nodeType\": \"IfStatement\",\n \"src\": \"53842:190:41\",\n \"trueBody\": {\n \"id\": 32888,\n \"nodeType\": \"Block\",\n \"src\": \"53910:122:41\",\n \"statements\": [\n {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32883,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32870,\n \"src\": \"53970:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32884,\n \"name\": \"minimumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32762,\n \"src\": \"53978:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32885,\n \"name\": \"maximumAllowedAssets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32765,\n \"src\": \"54000:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32882,\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32666,\n \"src\": \"53931:38:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256,uint256) pure\"\n }\n },\n \"id\": 32886,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"53931:90:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32887,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"53924:97:41\"\n }\n ]\n }\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32892,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32890,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32768,\n \"src\": \"54045:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 32891,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"54060:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"54045:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32898,\n \"nodeType\": \"IfStatement\",\n \"src\": \"54041:102:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32894,\n \"name\": \"totalSupply\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34195,\n \"src\": \"54118:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 32895,\n \"name\": \"totalShares\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32768,\n \"src\": \"54131:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 32893,\n \"name\": \"Cellar__TotalSharesMustRemainConstant\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32673,\n \"src\": \"54080:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$\",\n \"typeString\": \"function (uint256,uint256) pure\"\n }\n },\n \"id\": 32896,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"54080:63:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32897,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"54073:70:41\"\n }\n },\n {\n \"expression\": {\n \"id\": 32901,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 32899,\n \"name\": \"blockExternalReceiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32727,\n \"src\": \"54154:21:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 32900,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"54178:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"54154:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32902,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"54154:29:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32740,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"51714:696:41\",\n \"text\": \" @notice Allows strategists to manage their Cellar using arbitrary logic calls to adaptors.\\n @dev There are several safety checks in this function to prevent strategists from abusing it.\\n - `blockExternalReceiver`\\n - `totalAssets` must not change by much\\n - `totalShares` must remain constant\\n - adaptors must be set up to be used with this cellar\\n @dev Since `totalAssets` is allowed to deviate slightly, strategists could abuse this by sending\\n multiple `callOnAdaptor` calls rapidly, to gradually change the share price.\\n To mitigate this, rate limiting will be put in place on the Sommelier side.\"\n },\n \"functionSelector\": \"4e84befe\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [\n {\n \"id\": 32747,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 32746,\n \"name\": \"onlyOwner\",\n \"nameLocations\": [\n \"52474:9:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26548,\n \"src\": \"52474:9:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"52474:9:41\"\n },\n {\n \"id\": 32749,\n \"kind\": \"modifierInvocation\",\n \"modifierName\": {\n \"id\": 32748,\n \"name\": \"nonReentrant\",\n \"nameLocations\": [\n \"52484:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 30130,\n \"src\": \"52484:12:41\"\n },\n \"nodeType\": \"ModifierInvocation\",\n \"src\": \"52484:12:41\"\n }\n ],\n \"name\": \"callOnAdaptor\",\n \"nameLocation\": \"52424:13:41\",\n \"parameters\": {\n \"id\": 32745,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32744,\n \"mutability\": \"mutable\",\n \"name\": \"data\",\n \"nameLocation\": \"52459:4:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 32904,\n \"src\": \"52438:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32742,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32741,\n \"name\": \"AdaptorCall\",\n \"nameLocations\": [\n \"52438:11:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 32733,\n \"src\": \"52438:11:41\"\n },\n \"referencedDeclaration\": 32733,\n \"src\": \"52438:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_storage_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall\"\n }\n },\n \"id\": 32743,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"52438:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_storage_$dyn_storage_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"52437:27:41\"\n },\n \"returnParameters\": {\n \"id\": 32750,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"52497:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 32907,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"54397:34:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32905,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"54312:80:41\",\n \"text\": \" @notice External contract attempted to initiate a flash loan.\"\n },\n \"errorSelector\": \"9448dba0\",\n \"name\": \"Cellar__ExternalInitiator\",\n \"nameLocation\": \"54403:25:41\",\n \"parameters\": {\n \"id\": 32906,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"54428:2:41\"\n }\n },\n {\n \"id\": 32910,\n \"nodeType\": \"ErrorDefinition\",\n \"src\": \"54518:34:41\",\n \"nodes\": [],\n \"documentation\": {\n \"id\": 32908,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"54437:76:41\",\n \"text\": \" @notice executeOperation was not called by the Aave Pool.\"\n },\n \"errorSelector\": \"49456ad9\",\n \"name\": \"Cellar__CallerNotAavePool\",\n \"nameLocation\": \"54524:25:41\",\n \"parameters\": {\n \"id\": 32909,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"54549:2:41\"\n }\n },\n {\n \"id\": 32914,\n \"nodeType\": \"VariableDeclaration\",\n \"src\": \"54636:68:41\",\n \"nodes\": [],\n \"constant\": false,\n \"documentation\": {\n \"id\": 32911,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"54558:73:41\",\n \"text\": \" @notice The Aave V2 Pool contract on Ethereum Mainnet.\"\n },\n \"functionSelector\": \"a03e4bc3\",\n \"mutability\": \"mutable\",\n \"name\": \"aavePool\",\n \"nameLocation\": \"54651:8:41\",\n \"scope\": 33437,\n \"stateVariable\": true,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32912,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54636:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"value\": {\n \"hexValue\": \"307837643237363864453332623062383062376133343534633036426441633934413639444463374139\",\n \"id\": 32913,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"54662:42:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"value\": \"0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9\"\n },\n \"visibility\": \"public\"\n },\n {\n \"id\": 33053,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"54817:1117:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33052,\n \"nodeType\": \"Block\",\n \"src\": \"55039:895:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"id\": 32938,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32933,\n \"name\": \"initiator\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32926,\n \"src\": \"55053:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"arguments\": [\n {\n \"id\": 32936,\n \"name\": \"this\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -28,\n \"src\": \"55074:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_contract$_Cellar_$33437\",\n \"typeString\": \"contract Cellar\"\n }\n ],\n \"id\": 32935,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"55066:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_address_$\",\n \"typeString\": \"type(address)\"\n },\n \"typeName\": {\n \"id\": 32934,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55066:7:41\",\n \"typeDescriptions\": {}\n }\n },\n \"id\": 32937,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55066:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"55053:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32942,\n \"nodeType\": \"IfStatement\",\n \"src\": \"55049:66:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32939,\n \"name\": \"Cellar__ExternalInitiator\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32907,\n \"src\": \"55088:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 32940,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55088:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32941,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"55081:34:41\"\n }\n },\n {\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"id\": 32946,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"expression\": {\n \"id\": 32943,\n \"name\": \"msg\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -15,\n \"src\": \"55129:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_message\",\n \"typeString\": \"msg\"\n }\n },\n \"id\": 32944,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55133:6:41\",\n \"memberName\": \"sender\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"55129:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"!=\",\n \"rightExpression\": {\n \"id\": 32945,\n \"name\": \"aavePool\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32914,\n \"src\": \"55143:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"src\": \"55129:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32950,\n \"nodeType\": \"IfStatement\",\n \"src\": \"55125:62:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [],\n \"expression\": {\n \"argumentTypes\": [],\n \"id\": 32947,\n \"name\": \"Cellar__CallerNotAavePool\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32910,\n \"src\": \"55160:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 32948,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55160:27:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32949,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"55153:34:41\"\n }\n },\n {\n \"assignments\": [\n 32955\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32955,\n \"mutability\": \"mutable\",\n \"name\": \"data\",\n \"nameLocation\": \"55219:4:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33052,\n \"src\": \"55198:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32953,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 32952,\n \"name\": \"AdaptorCall\",\n \"nameLocations\": [\n \"55198:11:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 32733,\n \"src\": \"55198:11:41\"\n },\n \"referencedDeclaration\": 32733,\n \"src\": \"55198:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_storage_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall\"\n }\n },\n \"id\": 32954,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"55198:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_storage_$dyn_storage_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32963,\n \"initialValue\": {\n \"arguments\": [\n {\n \"id\": 32958,\n \"name\": \"params\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32928,\n \"src\": \"55237:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_calldata_ptr\",\n \"typeString\": \"bytes calldata\"\n }\n },\n {\n \"components\": [\n {\n \"baseExpression\": {\n \"id\": 32959,\n \"name\": \"AdaptorCall\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32733,\n \"src\": \"55246:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_struct$_AdaptorCall_$32733_storage_ptr_$\",\n \"typeString\": \"type(struct Cellar.AdaptorCall storage pointer)\"\n }\n },\n \"id\": 32960,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55246:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(struct Cellar.AdaptorCall memory[] memory)\"\n }\n }\n ],\n \"id\": 32961,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"55245:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(struct Cellar.AdaptorCall memory[] memory)\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_calldata_ptr\",\n \"typeString\": \"bytes calldata\"\n },\n {\n \"typeIdentifier\": \"t_type$_t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr_$\",\n \"typeString\": \"type(struct Cellar.AdaptorCall memory[] memory)\"\n }\n ],\n \"expression\": {\n \"id\": 32956,\n \"name\": \"abi\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -1,\n \"src\": \"55226:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_abi\",\n \"typeString\": \"abi\"\n }\n },\n \"id\": 32957,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"55230:6:41\",\n \"memberName\": \"decode\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"55226:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_abidecode_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 32962,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55226:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"55198:63:41\"\n },\n {\n \"body\": {\n \"id\": 33018,\n \"nodeType\": \"Block\",\n \"src\": \"55346:371:41\",\n \"statements\": [\n {\n \"assignments\": [\n 32976\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32976,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"55368:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33018,\n \"src\": \"55360:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32975,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55360:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32981,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32977,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32955,\n \"src\": \"55378:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32979,\n \"indexExpression\": {\n \"id\": 32978,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32965,\n \"src\": \"55383:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55378:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32980,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55386:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32729,\n \"src\": \"55378:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"55360:33:41\"\n },\n {\n \"condition\": {\n \"id\": 32985,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"!\",\n \"prefix\": true,\n \"src\": \"55484:26:41\",\n \"subExpression\": {\n \"baseExpression\": {\n \"id\": 32982,\n \"name\": \"adaptorCatalogue\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30406,\n \"src\": \"55485:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_address_$_t_bool_$\",\n \"typeString\": \"mapping(address => bool)\"\n }\n },\n \"id\": 32984,\n \"indexExpression\": {\n \"id\": 32983,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32976,\n \"src\": \"55502:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55485:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 32990,\n \"nodeType\": \"IfStatement\",\n \"src\": \"55480:79:41\",\n \"trueBody\": {\n \"errorCall\": {\n \"arguments\": [\n {\n \"id\": 32987,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32976,\n \"src\": \"55551:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 32986,\n \"name\": \"Cellar__CallToAdaptorNotAllowed\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32685,\n \"src\": \"55519:31:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_error_pure$_t_address_$returns$__$\",\n \"typeString\": \"function (address) pure\"\n }\n },\n \"id\": 32988,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55519:40:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 32989,\n \"nodeType\": \"RevertStatement\",\n \"src\": \"55512:47:41\"\n }\n },\n {\n \"body\": {\n \"id\": 33016,\n \"nodeType\": \"Block\",\n \"src\": \"55625:82:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33008,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32955,\n \"src\": \"55672:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 33010,\n \"indexExpression\": {\n \"id\": 33009,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32965,\n \"src\": \"55677:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55672:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 33011,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55680:8:41\",\n \"memberName\": \"callData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32732,\n \"src\": \"55672:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 33013,\n \"indexExpression\": {\n \"id\": 33012,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32992,\n \"src\": \"55689:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55672:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"expression\": {\n \"id\": 33005,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32976,\n \"src\": \"55643:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 33007,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55651:20:41\",\n \"memberName\": \"functionDelegateCall\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 24224,\n \"src\": \"55643:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$\",\n \"typeString\": \"function (address,bytes memory) returns (bytes memory)\"\n }\n },\n \"id\": 33014,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55643:49:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n \"id\": 33015,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"55643:49:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33001,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32995,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32992,\n \"src\": \"55591:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 32996,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32955,\n \"src\": \"55595:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32998,\n \"indexExpression\": {\n \"id\": 32997,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32965,\n \"src\": \"55600:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55595:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_AdaptorCall_$32733_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory\"\n }\n },\n \"id\": 32999,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55603:8:41\",\n \"memberName\": \"callData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 32732,\n \"src\": \"55595:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"bytes memory[] memory\"\n }\n },\n \"id\": 33000,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55612:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"55595:23:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"55591:27:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33017,\n \"initializationExpression\": {\n \"assignments\": [\n 32992\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32992,\n \"mutability\": \"mutable\",\n \"name\": \"j\",\n \"nameLocation\": \"55584:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33017,\n \"src\": \"55578:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n \"typeName\": {\n \"id\": 32991,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55578:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32994,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 32993,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"55588:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"55578:11:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 33003,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": false,\n \"src\": \"55620:3:41\",\n \"subExpression\": {\n \"id\": 33002,\n \"name\": \"j\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32992,\n \"src\": \"55620:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"id\": 33004,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"55620:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"55573:134:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 32971,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 32968,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32965,\n \"src\": \"55324:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 32969,\n \"name\": \"data\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32955,\n \"src\": \"55328:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_struct$_AdaptorCall_$32733_memory_ptr_$dyn_memory_ptr\",\n \"typeString\": \"struct Cellar.AdaptorCall memory[] memory\"\n }\n },\n \"id\": 32970,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55333:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"55328:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"55324:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33019,\n \"initializationExpression\": {\n \"assignments\": [\n 32965\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 32965,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"55317:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33019,\n \"src\": \"55311:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n },\n \"typeName\": {\n \"id\": 32964,\n \"name\": \"uint8\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55311:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 32967,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 32966,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"55321:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"55311:11:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 32973,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"55341:3:41\",\n \"subExpression\": {\n \"id\": 32972,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32965,\n \"src\": \"55343:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint8\",\n \"typeString\": \"uint8\"\n }\n },\n \"id\": 32974,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"55341:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"55306:411:41\"\n },\n {\n \"body\": {\n \"id\": 33048,\n \"nodeType\": \"Block\",\n \"src\": \"55815:91:41\",\n \"statements\": [\n {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 33037,\n \"name\": \"aavePool\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32914,\n \"src\": \"55858:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"components\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33044,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"baseExpression\": {\n \"id\": 33038,\n \"name\": \"amounts\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32921,\n \"src\": \"55869:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_calldata_ptr\",\n \"typeString\": \"uint256[] calldata\"\n }\n },\n \"id\": 33040,\n \"indexExpression\": {\n \"id\": 33039,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33021,\n \"src\": \"55877:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55869:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"baseExpression\": {\n \"id\": 33041,\n \"name\": \"premiums\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32924,\n \"src\": \"55882:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_calldata_ptr\",\n \"typeString\": \"uint256[] calldata\"\n }\n },\n \"id\": 33043,\n \"indexExpression\": {\n \"id\": 33042,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33021,\n \"src\": \"55891:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55882:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"55869:24:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"id\": 33045,\n \"isConstant\": false,\n \"isInlineArray\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"TupleExpression\",\n \"src\": \"55868:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"expression\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33032,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32918,\n \"src\": \"55835:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_address_$dyn_calldata_ptr\",\n \"typeString\": \"address[] calldata\"\n }\n },\n \"id\": 33034,\n \"indexExpression\": {\n \"id\": 33033,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33021,\n \"src\": \"55842:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"55835:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 33031,\n \"name\": \"ERC20\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 34556,\n \"src\": \"55829:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"type(contract ERC20)\"\n }\n },\n \"id\": 33035,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55829:16:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33036,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55846:11:41\",\n \"memberName\": \"safeApprove\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 35306,\n \"src\": \"55829:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_contract$_ERC20_$34556_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (contract ERC20,address,uint256)\"\n }\n },\n \"id\": 33046,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"55829:66:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_tuple$__$\",\n \"typeString\": \"tuple()\"\n }\n },\n \"id\": 33047,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"55829:66:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33027,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33024,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33021,\n \"src\": \"55790:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 33025,\n \"name\": \"amounts\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 32921,\n \"src\": \"55794:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_calldata_ptr\",\n \"typeString\": \"uint256[] calldata\"\n }\n },\n \"id\": 33026,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"55802:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"55794:14:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"55790:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33049,\n \"initializationExpression\": {\n \"assignments\": [\n 33021\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33021,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"55783:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33049,\n \"src\": \"55775:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33020,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55775:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33023,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 33022,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"55787:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"55775:13:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 33029,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"55810:3:41\",\n \"subExpression\": {\n \"id\": 33028,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33021,\n \"src\": \"55812:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33030,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"55810:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"55770:136:41\"\n },\n {\n \"expression\": {\n \"hexValue\": \"74727565\",\n \"id\": 33050,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"55923:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"functionReturnParameters\": 32932,\n \"id\": 33051,\n \"nodeType\": \"Return\",\n \"src\": \"55916:11:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 32915,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"54711:101:41\",\n \"text\": \" @notice Allows strategist to utilize Aave flashloans while rebalancing the cellar.\"\n },\n \"functionSelector\": \"920f5c84\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"executeOperation\",\n \"nameLocation\": \"54826:16:41\",\n \"parameters\": {\n \"id\": 32929,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32918,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"54871:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"54852:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"calldata\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_address_$dyn_calldata_ptr\",\n \"typeString\": \"address[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32916,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54852:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 32917,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"54852:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_address_$dyn_storage_ptr\",\n \"typeString\": \"address[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32921,\n \"mutability\": \"mutable\",\n \"name\": \"amounts\",\n \"nameLocation\": \"54906:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"54887:26:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"calldata\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_calldata_ptr\",\n \"typeString\": \"uint256[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32919,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54887:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32920,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"54887:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32924,\n \"mutability\": \"mutable\",\n \"name\": \"premiums\",\n \"nameLocation\": \"54942:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"54923:27:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"calldata\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_calldata_ptr\",\n \"typeString\": \"uint256[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 32922,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54923:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 32923,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"54923:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32926,\n \"mutability\": \"mutable\",\n \"name\": \"initiator\",\n \"nameLocation\": \"54968:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"54960:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 32925,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54960:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 32928,\n \"mutability\": \"mutable\",\n \"name\": \"params\",\n \"nameLocation\": \"55002:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"54987:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"calldata\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_calldata_ptr\",\n \"typeString\": \"bytes\"\n },\n \"typeName\": {\n \"id\": 32927,\n \"name\": \"bytes\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"54987:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage_ptr\",\n \"typeString\": \"bytes\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"54842:172:41\"\n },\n \"returnParameters\": {\n \"id\": 32932,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 32931,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33053,\n \"src\": \"55033:4:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"typeName\": {\n \"id\": 32930,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"55033:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"55032:6:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 33073,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"56208:144:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33072,\n \"nodeType\": \"Block\",\n \"src\": \"56276:76:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 33062,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"56290:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33065,\n \"nodeType\": \"IfStatement\",\n \"src\": \"56286:24:41\",\n \"trueBody\": {\n \"expression\": {\n \"hexValue\": \"30\",\n \"id\": 33063,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"56309:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"functionReturnParameters\": 33061,\n \"id\": 33064,\n \"nodeType\": \"Return\",\n \"src\": \"56302:8:41\"\n }\n },\n {\n \"expression\": {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 33068,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"56333:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n },\n \"typeName\": {\n \"id\": 33067,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56333:7:41\",\n \"typeDescriptions\": {}\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n }\n ],\n \"id\": 33066,\n \"name\": \"type\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -27,\n \"src\": \"56328:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_metatype_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 33069,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"56328:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_meta_type_t_uint256\",\n \"typeString\": \"type(uint256)\"\n }\n },\n \"id\": 33070,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"56342:3:41\",\n \"memberName\": \"max\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"56328:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 33061,\n \"id\": 33071,\n \"nodeType\": \"Return\",\n \"src\": \"56321:24:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35052\n ],\n \"documentation\": {\n \"id\": 33054,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"56051:152:41\",\n \"text\": \" @notice Total amount of assets that can be deposited for a user.\\n @return assets maximum amount of assets that can be deposited\"\n },\n \"functionSelector\": \"402d267d\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"maxDeposit\",\n \"nameLocation\": \"56217:10:41\",\n \"overrides\": {\n \"id\": 33058,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"56249:8:41\"\n },\n \"parameters\": {\n \"id\": 33057,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33056,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33073,\n \"src\": \"56228:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33055,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56228:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"56227:9:41\"\n },\n \"returnParameters\": {\n \"id\": 33061,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33060,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33073,\n \"src\": \"56267:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33059,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56267:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"56266:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 33093,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"56509:141:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33092,\n \"nodeType\": \"Block\",\n \"src\": \"56574:76:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"id\": 33082,\n \"name\": \"isShutdown\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30955,\n \"src\": \"56588:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33085,\n \"nodeType\": \"IfStatement\",\n \"src\": \"56584:24:41\",\n \"trueBody\": {\n \"expression\": {\n \"hexValue\": \"30\",\n \"id\": 33083,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"56607:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"functionReturnParameters\": 33081,\n \"id\": 33084,\n \"nodeType\": \"Return\",\n \"src\": \"56600:8:41\"\n }\n },\n {\n \"expression\": {\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 33088,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"ElementaryTypeNameExpression\",\n \"src\": \"56631:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n },\n \"typeName\": {\n \"id\": 33087,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56631:7:41\",\n \"typeDescriptions\": {}\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_type$_t_uint256_$\",\n \"typeString\": \"type(uint256)\"\n }\n ],\n \"id\": 33086,\n \"name\": \"type\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -27,\n \"src\": \"56626:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_metatype_pure$__$returns$__$\",\n \"typeString\": \"function () pure\"\n }\n },\n \"id\": 33089,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"56626:13:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_meta_type_t_uint256\",\n \"typeString\": \"type(uint256)\"\n }\n },\n \"id\": 33090,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"56640:3:41\",\n \"memberName\": \"max\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"56626:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 33081,\n \"id\": 33091,\n \"nodeType\": \"Return\",\n \"src\": \"56619:24:41\"\n }\n ]\n },\n \"baseFunctions\": [\n 35066\n ],\n \"documentation\": {\n \"id\": 33074,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"56358:146:41\",\n \"text\": \" @notice Total amount of shares that can be minted for a user.\\n @return shares maximum amount of shares that can be minted\"\n },\n \"functionSelector\": \"c63d75b6\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"maxMint\",\n \"nameLocation\": \"56518:7:41\",\n \"overrides\": {\n \"id\": 33078,\n \"nodeType\": \"OverrideSpecifier\",\n \"overrides\": [],\n \"src\": \"56547:8:41\"\n },\n \"parameters\": {\n \"id\": 33077,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33076,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33093,\n \"src\": \"56526:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33075,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56526:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"56525:9:41\"\n },\n \"returnParameters\": {\n \"id\": 33081,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33080,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33093,\n \"src\": \"56565:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33079,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"56565:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"56564:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"public\"\n },\n {\n \"id\": 33129,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"57000:414:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33128,\n \"nodeType\": \"Block\",\n \"src\": \"57062:352:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 33102\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33102,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"57080:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33128,\n \"src\": \"57072:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33101,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57072:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33107,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33103,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"57090:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33105,\n \"indexExpression\": {\n \"id\": 33104,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33096,\n \"src\": \"57106:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"57090:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33106,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57116:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29734,\n \"src\": \"57090:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"57072:51:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"expression\": {\n \"expression\": {\n \"id\": 33113,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"57215:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_BaseAdaptor_$43962_$\",\n \"typeString\": \"type(contract BaseAdaptor)\"\n }\n },\n \"id\": 33114,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57227:7:41\",\n \"memberName\": \"deposit\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 43787,\n \"src\": \"57215:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_declaration_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$\",\n \"typeString\": \"function BaseAdaptor.deposit(uint256,bytes memory,bytes memory)\"\n }\n },\n \"id\": 33115,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57235:8:41\",\n \"memberName\": \"selector\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"57215:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes4\",\n \"typeString\": \"bytes4\"\n }\n },\n {\n \"id\": 33116,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33098,\n \"src\": \"57261:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33117,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"57285:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33119,\n \"indexExpression\": {\n \"id\": 33118,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33096,\n \"src\": \"57301:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"57285:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33120,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57311:11:41\",\n \"memberName\": \"adaptorData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29738,\n \"src\": \"57285:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n },\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33121,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"57340:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33123,\n \"indexExpression\": {\n \"id\": 33122,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33096,\n \"src\": \"57356:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"57340:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33124,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57366:17:41\",\n \"memberName\": \"configurationData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29740,\n \"src\": \"57340:43:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes4\",\n \"typeString\": \"bytes4\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n },\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n ],\n \"expression\": {\n \"id\": 33111,\n \"name\": \"abi\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -1,\n \"src\": \"57175:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_abi\",\n \"typeString\": \"abi\"\n }\n },\n \"id\": 33112,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57179:18:41\",\n \"memberName\": \"encodeWithSelector\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"57175:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$\",\n \"typeString\": \"function (bytes4) pure returns (bytes memory)\"\n }\n },\n \"id\": 33125,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"57175:222:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"expression\": {\n \"id\": 33108,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33102,\n \"src\": \"57133:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 33110,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57141:20:41\",\n \"memberName\": \"functionDelegateCall\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 24224,\n \"src\": \"57133:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$\",\n \"typeString\": \"function (address,bytes memory) returns (bytes memory)\"\n }\n },\n \"id\": 33126,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"57133:274:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n \"id\": 33127,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"57133:274:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33094,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"56767:228:41\",\n \"text\": \" @dev Deposit into a position according to its position type and update related state.\\n @param position address to deposit funds into\\n @param assets the amount of assets to deposit into the position\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_depositTo\",\n \"nameLocation\": \"57009:10:41\",\n \"parameters\": {\n \"id\": 33099,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33096,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"57027:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33129,\n \"src\": \"57020:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 33095,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57020:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 33098,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"57045:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33129,\n \"src\": \"57037:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33097,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57037:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"57019:33:41\"\n },\n \"returnParameters\": {\n \"id\": 33100,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"57062:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 33168,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"57719:462:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33167,\n \"nodeType\": \"Block\",\n \"src\": \"57802:379:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 33140\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33140,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"57820:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33167,\n \"src\": \"57812:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33139,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57812:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33145,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33141,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"57830:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33143,\n \"indexExpression\": {\n \"id\": 33142,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33132,\n \"src\": \"57846:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"57830:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33144,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57856:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29734,\n \"src\": \"57830:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"57812:51:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"arguments\": [\n {\n \"expression\": {\n \"expression\": {\n \"id\": 33151,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"57955:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_BaseAdaptor_$43962_$\",\n \"typeString\": \"type(contract BaseAdaptor)\"\n }\n },\n \"id\": 33152,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57967:8:41\",\n \"memberName\": \"withdraw\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 43799,\n \"src\": \"57955:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_declaration_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$\",\n \"typeString\": \"function BaseAdaptor.withdraw(uint256,address,bytes memory,bytes memory)\"\n }\n },\n \"id\": 33153,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57976:8:41\",\n \"memberName\": \"selector\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"57955:29:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes4\",\n \"typeString\": \"bytes4\"\n }\n },\n {\n \"id\": 33154,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33134,\n \"src\": \"58002:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n {\n \"id\": 33155,\n \"name\": \"receiver\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33136,\n \"src\": \"58026:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33156,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58052:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33158,\n \"indexExpression\": {\n \"id\": 33157,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33132,\n \"src\": \"58068:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58052:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33159,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58078:11:41\",\n \"memberName\": \"adaptorData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29738,\n \"src\": \"58052:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n },\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33160,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58107:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33162,\n \"indexExpression\": {\n \"id\": 33161,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33132,\n \"src\": \"58123:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58107:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33163,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58133:17:41\",\n \"memberName\": \"configurationData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29740,\n \"src\": \"58107:43:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes4\",\n \"typeString\": \"bytes4\"\n },\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n },\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n ],\n \"expression\": {\n \"id\": 33149,\n \"name\": \"abi\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": -1,\n \"src\": \"57915:3:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_magic_abi\",\n \"typeString\": \"abi\"\n }\n },\n \"id\": 33150,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"memberLocation\": \"57919:18:41\",\n \"memberName\": \"encodeWithSelector\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"57915:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$\",\n \"typeString\": \"function (bytes4) pure returns (bytes memory)\"\n }\n },\n \"id\": 33164,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"57915:249:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n ],\n \"expression\": {\n \"id\": 33146,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33140,\n \"src\": \"57873:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"id\": 33148,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"57881:20:41\",\n \"memberName\": \"functionDelegateCall\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 24224,\n \"src\": \"57873:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$\",\n \"typeString\": \"function (address,bytes memory) returns (bytes memory)\"\n }\n },\n \"id\": 33165,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"57873:301:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_memory_ptr\",\n \"typeString\": \"bytes memory\"\n }\n },\n \"id\": 33166,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"57873:301:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33130,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"57420:294:41\",\n \"text\": \" @dev Withdraw from a position according to its position type and update related state.\\n @param position address to withdraw funds from\\n @param assets the amount of assets to withdraw from the position\\n @param receiver the address to sent withdrawn assets to\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_withdrawFrom\",\n \"nameLocation\": \"57728:13:41\",\n \"parameters\": {\n \"id\": 33137,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33132,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"57749:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33168,\n \"src\": \"57742:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 33131,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57742:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 33134,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"57767:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33168,\n \"src\": \"57759:14:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33133,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57759:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 33136,\n \"mutability\": \"mutable\",\n \"name\": \"receiver\",\n \"nameLocation\": \"57783:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33168,\n \"src\": \"57775:16:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33135,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"57775:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"57741:51:41\"\n },\n \"returnParameters\": {\n \"id\": 33138,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"57802:0:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"nonpayable\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 33201,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"58357:427:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33200,\n \"nodeType\": \"Block\",\n \"src\": \"58433:351:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"condition\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33176,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58513:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33178,\n \"indexExpression\": {\n \"id\": 33177,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33171,\n \"src\": \"58529:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58513:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33179,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58539:6:41\",\n \"memberName\": \"isDebt\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29736,\n \"src\": \"58513:32:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33182,\n \"nodeType\": \"IfStatement\",\n \"src\": \"58509:46:41\",\n \"trueBody\": {\n \"expression\": {\n \"hexValue\": \"30\",\n \"id\": 33180,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"58554:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"functionReturnParameters\": 33175,\n \"id\": 33181,\n \"nodeType\": \"Return\",\n \"src\": \"58547:8:41\"\n }\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33190,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58665:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33192,\n \"indexExpression\": {\n \"id\": 33191,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33171,\n \"src\": \"58681:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58665:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33193,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58691:11:41\",\n \"memberName\": \"adaptorData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29738,\n \"src\": \"58665:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n },\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33194,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58720:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33196,\n \"indexExpression\": {\n \"id\": 33195,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33171,\n \"src\": \"58736:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58720:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33197,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58746:17:41\",\n \"memberName\": \"configurationData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29740,\n \"src\": \"58720:43:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n },\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n ],\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33184,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"58596:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33186,\n \"indexExpression\": {\n \"id\": 33185,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33171,\n \"src\": \"58612:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"58596:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33187,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58622:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29734,\n \"src\": \"58596:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 33183,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"58584:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_BaseAdaptor_$43962_$\",\n \"typeString\": \"type(contract BaseAdaptor)\"\n }\n },\n \"id\": 33188,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"58584:46:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_BaseAdaptor_$43962\",\n \"typeString\": \"contract BaseAdaptor\"\n }\n },\n \"id\": 33189,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"58631:16:41\",\n \"memberName\": \"withdrawableFrom\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 43817,\n \"src\": \"58584:63:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$\",\n \"typeString\": \"function (bytes memory,bytes memory) view external returns (uint256)\"\n }\n },\n \"id\": 33198,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"58584:193:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 33175,\n \"id\": 33199,\n \"nodeType\": \"Return\",\n \"src\": \"58565:212:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33169,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"58187:165:41\",\n \"text\": \" @dev Get the withdrawable balance of a position according to its position type.\\n @param position position to get the withdrawable balance of\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_withdrawableFrom\",\n \"nameLocation\": \"58366:17:41\",\n \"parameters\": {\n \"id\": 33172,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33171,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"58391:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33201,\n \"src\": \"58384:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 33170,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"58384:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"58383:17:41\"\n },\n \"returnParameters\": {\n \"id\": 33175,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33174,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33201,\n \"src\": \"58424:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33173,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"58424:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"58423:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 33227,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"59116:223:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33226,\n \"nodeType\": \"Block\",\n \"src\": \"59185:154:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 33210\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33210,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"59203:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33226,\n \"src\": \"59195:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33209,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59195:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33215,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33211,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"59213:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33213,\n \"indexExpression\": {\n \"id\": 33212,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33204,\n \"src\": \"59229:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"59213:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33214,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59239:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29734,\n \"src\": \"59213:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"59195:51:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33220,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"59294:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33222,\n \"indexExpression\": {\n \"id\": 33221,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33204,\n \"src\": \"59310:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"59294:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33223,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59320:11:41\",\n \"memberName\": \"adaptorData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29738,\n \"src\": \"59294:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n ],\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 33217,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33210,\n \"src\": \"59275:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 33216,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"59263:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_BaseAdaptor_$43962_$\",\n \"typeString\": \"type(contract BaseAdaptor)\"\n }\n },\n \"id\": 33218,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59263:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_BaseAdaptor_$43962\",\n \"typeString\": \"contract BaseAdaptor\"\n }\n },\n \"id\": 33219,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59284:9:41\",\n \"memberName\": \"balanceOf\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 43807,\n \"src\": \"59263:30:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$\",\n \"typeString\": \"function (bytes memory) view external returns (uint256)\"\n }\n },\n \"id\": 33224,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59263:69:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"functionReturnParameters\": 33208,\n \"id\": 33225,\n \"nodeType\": \"Return\",\n \"src\": \"59256:76:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33202,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"58790:321:41\",\n \"text\": \" @dev Get the balance of a position according to its position type.\\n @dev For ERC4626 position balances, this uses `previewRedeem` as opposed\\n to `convertToAssets` so that balanceOf ERC4626 positions includes fees taken on withdraw.\\n @param position position to get the balance of\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_balanceOf\",\n \"nameLocation\": \"59125:10:41\",\n \"parameters\": {\n \"id\": 33205,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33204,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"59143:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33227,\n \"src\": \"59136:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 33203,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59136:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"59135:17:41\"\n },\n \"returnParameters\": {\n \"id\": 33208,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33207,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33227,\n \"src\": \"59176:7:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33206,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59176:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"59175:9:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 33254,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"59476:217:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33253,\n \"nodeType\": \"Block\",\n \"src\": \"59541:152:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 33237\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33237,\n \"mutability\": \"mutable\",\n \"name\": \"adaptor\",\n \"nameLocation\": \"59559:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33253,\n \"src\": \"59551:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n },\n \"typeName\": {\n \"id\": 33236,\n \"name\": \"address\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59551:7:41\",\n \"stateMutability\": \"nonpayable\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33242,\n \"initialValue\": {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33238,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"59569:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33240,\n \"indexExpression\": {\n \"id\": 33239,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33230,\n \"src\": \"59585:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"59569:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33241,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59595:7:41\",\n \"memberName\": \"adaptor\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29734,\n \"src\": \"59569:33:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"59551:51:41\"\n },\n {\n \"expression\": {\n \"arguments\": [\n {\n \"expression\": {\n \"baseExpression\": {\n \"id\": 33247,\n \"name\": \"getPositionData\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30309,\n \"src\": \"59648:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_mapping$_t_uint32_$_t_struct$_PositionData_$29741_storage_$\",\n \"typeString\": \"mapping(uint32 => struct Registry.PositionData storage ref)\"\n }\n },\n \"id\": 33249,\n \"indexExpression\": {\n \"id\": 33248,\n \"name\": \"position\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33230,\n \"src\": \"59664:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"59648:25:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_struct$_PositionData_$29741_storage\",\n \"typeString\": \"struct Registry.PositionData storage ref\"\n }\n },\n \"id\": 33250,\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59674:11:41\",\n \"memberName\": \"adaptorData\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 29738,\n \"src\": \"59648:37:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_bytes_storage\",\n \"typeString\": \"bytes storage ref\"\n }\n ],\n \"expression\": {\n \"arguments\": [\n {\n \"id\": 33244,\n \"name\": \"adaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33237,\n \"src\": \"59631:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_address\",\n \"typeString\": \"address\"\n }\n ],\n \"id\": 33243,\n \"name\": \"BaseAdaptor\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 43962,\n \"src\": \"59619:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_type$_t_contract$_BaseAdaptor_$43962_$\",\n \"typeString\": \"type(contract BaseAdaptor)\"\n }\n },\n \"id\": 33245,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"typeConversion\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59619:20:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_BaseAdaptor_$43962\",\n \"typeString\": \"contract BaseAdaptor\"\n }\n },\n \"id\": 33246,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59640:7:41\",\n \"memberName\": \"assetOf\",\n \"nodeType\": \"MemberAccess\",\n \"referencedDeclaration\": 43826,\n \"src\": \"59619:28:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (bytes memory) view external returns (contract ERC20)\"\n }\n },\n \"id\": 33251,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59619:67:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"functionReturnParameters\": 33235,\n \"id\": 33252,\n \"nodeType\": \"Return\",\n \"src\": \"59612:74:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33228,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"59345:126:41\",\n \"text\": \" @dev Get the asset of a position according to its position type.\\n @param position to get the asset of\"\n },\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"_assetOf\",\n \"nameLocation\": \"59485:8:41\",\n \"parameters\": {\n \"id\": 33231,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33230,\n \"mutability\": \"mutable\",\n \"name\": \"position\",\n \"nameLocation\": \"59501:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33254,\n \"src\": \"59494:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n },\n \"typeName\": {\n \"id\": 33229,\n \"name\": \"uint32\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59494:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"59493:17:41\"\n },\n \"returnParameters\": {\n \"id\": 33235,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33234,\n \"mutability\": \"mutable\",\n \"name\": \"\",\n \"nameLocation\": \"-1:-1:-1\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33254,\n \"src\": \"59534:5:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n },\n \"typeName\": {\n \"id\": 33233,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 33232,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"59534:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"59534:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"59534:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"59533:7:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"internal\"\n },\n {\n \"id\": 33296,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"59778:263:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33295,\n \"nodeType\": \"Block\",\n \"src\": \"59853:188:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"expression\": {\n \"id\": 33270,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 33262,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33260,\n \"src\": \"59863:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"expression\": {\n \"id\": 33267,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"59884:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33268,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59900:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"59884:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 33266,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"59872:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (contract ERC20[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33264,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 33263,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"59876:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"59876:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"59876:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33265,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"59876:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n }\n },\n \"id\": 33269,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59872:35:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"src\": \"59863:44:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 33271,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"59863:44:41\"\n },\n {\n \"body\": {\n \"id\": 33293,\n \"nodeType\": \"Block\",\n \"src\": \"59970:65:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 33291,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33283,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33260,\n \"src\": \"59984:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 33285,\n \"indexExpression\": {\n \"id\": 33284,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33273,\n \"src\": \"59991:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"59984:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33287,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60005:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33289,\n \"indexExpression\": {\n \"id\": 33288,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33273,\n \"src\": \"60021:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60005:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 33286,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"59996:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 33290,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"59996:28:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"59984:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33292,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"59984:40:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33279,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33276,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33273,\n \"src\": \"59937:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 33277,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"59941:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33278,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"59957:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"59941:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"59937:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33294,\n \"initializationExpression\": {\n \"assignments\": [\n 33273\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33273,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"59930:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33294,\n \"src\": \"59922:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33272,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"59922:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33275,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 33274,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"59934:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"59922:13:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 33281,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"59965:3:41\",\n \"subExpression\": {\n \"id\": 33280,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33273,\n \"src\": \"59967:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33282,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"59965:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"59917:118:41\"\n }\n ]\n },\n \"documentation\": {\n \"id\": 33255,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"59699:74:41\",\n \"text\": \" @notice Get all the credit positions underlying assets.\"\n },\n \"functionSelector\": \"087ed837\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"getPositionAssets\",\n \"nameLocation\": \"59787:17:41\",\n \"parameters\": {\n \"id\": 33256,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"59804:2:41\"\n },\n \"returnParameters\": {\n \"id\": 33261,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33260,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"59845:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33296,\n \"src\": \"59830:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33258,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 33257,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"59830:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"59830:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"59830:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33259,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"59830:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"59829:23:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"external\"\n },\n {\n \"id\": 33436,\n \"nodeType\": \"FunctionDefinition\",\n \"src\": \"60047:893:41\",\n \"nodes\": [],\n \"body\": {\n \"id\": 33435,\n \"nodeType\": \"Block\",\n \"src\": \"60202:738:41\",\n \"nodes\": [],\n \"statements\": [\n {\n \"assignments\": [\n 33310\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33310,\n \"mutability\": \"mutable\",\n \"name\": \"creditLen\",\n \"nameLocation\": \"60220:9:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33435,\n \"src\": \"60212:17:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33309,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60212:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33313,\n \"initialValue\": {\n \"expression\": {\n \"id\": 33311,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60232:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33312,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"60248:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"60232:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"60212:42:41\"\n },\n {\n \"assignments\": [\n 33315\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33315,\n \"mutability\": \"mutable\",\n \"name\": \"debtLen\",\n \"nameLocation\": \"60272:7:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33435,\n \"src\": \"60264:15:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33314,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60264:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33318,\n \"initialValue\": {\n \"expression\": {\n \"id\": 33316,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"60282:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33317,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"60296:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"60282:20:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"60264:38:41\"\n },\n {\n \"expression\": {\n \"id\": 33328,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 33319,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33301,\n \"src\": \"60312:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33326,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33324,\n \"name\": \"creditLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33310,\n \"src\": \"60333:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 33325,\n \"name\": \"debtLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33315,\n \"src\": \"60345:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60333:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 33323,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"60321:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (contract ERC20[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33321,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 33320,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"60325:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"60325:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"60325:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33322,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60325:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n }\n },\n \"id\": 33327,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60321:32:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"src\": \"60312:41:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 33329,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60312:41:41\"\n },\n {\n \"expression\": {\n \"id\": 33338,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 33330,\n \"name\": \"balances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33304,\n \"src\": \"60363:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33336,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33334,\n \"name\": \"creditLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33310,\n \"src\": \"60388:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 33335,\n \"name\": \"debtLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33315,\n \"src\": \"60400:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60388:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 33333,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"60374:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (uint256[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33331,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60378:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33332,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60378:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n }\n },\n \"id\": 33337,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60374:34:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"src\": \"60363:45:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 33339,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60363:45:41\"\n },\n {\n \"expression\": {\n \"id\": 33348,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"id\": 33340,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33307,\n \"src\": \"60418:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[] memory\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33346,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33344,\n \"name\": \"creditLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33310,\n \"src\": \"60438:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"id\": 33345,\n \"name\": \"debtLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33315,\n \"src\": \"60450:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60438:19:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n ],\n \"id\": 33343,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"lValueRequested\": false,\n \"nodeType\": \"NewExpression\",\n \"src\": \"60427:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$\",\n \"typeString\": \"function (uint256) pure returns (bool[] memory)\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33341,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60431:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33342,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60431:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_storage_ptr\",\n \"typeString\": \"bool[]\"\n }\n }\n },\n \"id\": 33347,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60427:31:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[] memory\"\n }\n },\n \"src\": \"60418:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[] memory\"\n }\n },\n \"id\": 33349,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60418:40:41\"\n },\n {\n \"body\": {\n \"id\": 33386,\n \"nodeType\": \"Block\",\n \"src\": \"60508:154:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 33368,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33360,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33301,\n \"src\": \"60522:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 33362,\n \"indexExpression\": {\n \"id\": 33361,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60529:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60522:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33364,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60543:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33366,\n \"indexExpression\": {\n \"id\": 33365,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60559:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60543:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 33363,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"60534:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 33367,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60534:28:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"60522:40:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33369,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60522:40:41\"\n },\n {\n \"expression\": {\n \"id\": 33378,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33370,\n \"name\": \"balances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33304,\n \"src\": \"60576:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 33372,\n \"indexExpression\": {\n \"id\": 33371,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60585:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60576:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33374,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60601:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33376,\n \"indexExpression\": {\n \"id\": 33375,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60617:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60601:18:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 33373,\n \"name\": \"_balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33227,\n \"src\": \"60590:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 33377,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60590:30:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60576:44:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33379,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60576:44:41\"\n },\n {\n \"expression\": {\n \"id\": 33384,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33380,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33307,\n \"src\": \"60634:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[] memory\"\n }\n },\n \"id\": 33382,\n \"indexExpression\": {\n \"id\": 33381,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60641:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60634:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"66616c7365\",\n \"id\": 33383,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"60646:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"false\"\n },\n \"src\": \"60634:17:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33385,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60634:17:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33356,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33354,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60488:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 33355,\n \"name\": \"creditLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33310,\n \"src\": \"60492:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60488:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33387,\n \"initializationExpression\": {\n \"assignments\": [\n 33351\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33351,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"60481:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33387,\n \"src\": \"60473:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33350,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60473:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33353,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 33352,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"60485:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"60473:13:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 33358,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"60503:3:41\",\n \"subExpression\": {\n \"id\": 33357,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33351,\n \"src\": \"60505:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33359,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60503:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"60468:194:41\"\n },\n {\n \"body\": {\n \"id\": 33433,\n \"nodeType\": \"Block\",\n \"src\": \"60710:224:41\",\n \"statements\": [\n {\n \"expression\": {\n \"id\": 33409,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33398,\n \"name\": \"assets\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33301,\n \"src\": \"60724:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[] memory\"\n }\n },\n \"id\": 33403,\n \"indexExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33402,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33399,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60731:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 33400,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60735:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33401,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"60751:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"60735:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60731:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60724:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33405,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"60770:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33407,\n \"indexExpression\": {\n \"id\": 33406,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60784:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60770:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 33404,\n \"name\": \"_assetOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33254,\n \"src\": \"60761:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_contract$_ERC20_$34556_$\",\n \"typeString\": \"function (uint32) view returns (contract ERC20)\"\n }\n },\n \"id\": 33408,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60761:26:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"src\": \"60724:63:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33410,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60724:63:41\"\n },\n {\n \"expression\": {\n \"id\": 33422,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33411,\n \"name\": \"balances\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33304,\n \"src\": \"60801:8:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[] memory\"\n }\n },\n \"id\": 33416,\n \"indexExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33415,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33412,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60810:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 33413,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60814:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33414,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"60830:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"60814:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60810:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60801:36:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"arguments\": [\n {\n \"baseExpression\": {\n \"id\": 33418,\n \"name\": \"debtPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30298,\n \"src\": \"60851:13:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33420,\n \"indexExpression\": {\n \"id\": 33419,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60865:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60851:16:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n }\n ],\n \"expression\": {\n \"argumentTypes\": [\n {\n \"typeIdentifier\": \"t_uint32\",\n \"typeString\": \"uint32\"\n }\n ],\n \"id\": 33417,\n \"name\": \"_balanceOf\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33227,\n \"src\": \"60840:10:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_function_internal_view$_t_uint32_$returns$_t_uint256_$\",\n \"typeString\": \"function (uint32) view returns (uint256)\"\n }\n },\n \"id\": 33421,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"kind\": \"functionCall\",\n \"lValueRequested\": false,\n \"nameLocations\": [],\n \"names\": [],\n \"nodeType\": \"FunctionCall\",\n \"src\": \"60840:28:41\",\n \"tryCall\": false,\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60801:67:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33423,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60801:67:41\"\n },\n {\n \"expression\": {\n \"id\": 33431,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftHandSide\": {\n \"baseExpression\": {\n \"id\": 33424,\n \"name\": \"isDebt\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33307,\n \"src\": \"60882:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[] memory\"\n }\n },\n \"id\": 33429,\n \"indexExpression\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33428,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33425,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60889:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"+\",\n \"rightExpression\": {\n \"expression\": {\n \"id\": 33426,\n \"name\": \"creditPositions\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 30294,\n \"src\": \"60893:15:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint32_$dyn_storage\",\n \"typeString\": \"uint32[] storage ref\"\n }\n },\n \"id\": 33427,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"memberLocation\": \"60909:6:41\",\n \"memberName\": \"length\",\n \"nodeType\": \"MemberAccess\",\n \"src\": \"60893:22:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60889:26:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"isConstant\": false,\n \"isLValue\": true,\n \"isPure\": false,\n \"lValueRequested\": true,\n \"nodeType\": \"IndexAccess\",\n \"src\": \"60882:34:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"nodeType\": \"Assignment\",\n \"operator\": \"=\",\n \"rightHandSide\": {\n \"hexValue\": \"74727565\",\n \"id\": 33430,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"bool\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"60919:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n },\n \"value\": \"true\"\n },\n \"src\": \"60882:41:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33432,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60882:41:41\"\n }\n ]\n },\n \"condition\": {\n \"commonType\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"id\": 33394,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"leftExpression\": {\n \"id\": 33392,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60692:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"nodeType\": \"BinaryOperation\",\n \"operator\": \"<\",\n \"rightExpression\": {\n \"id\": 33393,\n \"name\": \"debtLen\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33315,\n \"src\": \"60696:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"src\": \"60692:11:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33434,\n \"initializationExpression\": {\n \"assignments\": [\n 33389\n ],\n \"declarations\": [\n {\n \"constant\": false,\n \"id\": 33389,\n \"mutability\": \"mutable\",\n \"name\": \"i\",\n \"nameLocation\": \"60685:1:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33434,\n \"src\": \"60677:9:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"default\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n },\n \"typeName\": {\n \"id\": 33388,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60677:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"id\": 33391,\n \"initialValue\": {\n \"hexValue\": \"30\",\n \"id\": 33390,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": true,\n \"kind\": \"number\",\n \"lValueRequested\": false,\n \"nodeType\": \"Literal\",\n \"src\": \"60689:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_rational_0_by_1\",\n \"typeString\": \"int_const 0\"\n },\n \"value\": \"0\"\n },\n \"nodeType\": \"VariableDeclarationStatement\",\n \"src\": \"60677:13:41\"\n },\n \"loopExpression\": {\n \"expression\": {\n \"id\": 33396,\n \"isConstant\": false,\n \"isLValue\": false,\n \"isPure\": false,\n \"lValueRequested\": false,\n \"nodeType\": \"UnaryOperation\",\n \"operator\": \"++\",\n \"prefix\": true,\n \"src\": \"60705:3:41\",\n \"subExpression\": {\n \"id\": 33395,\n \"name\": \"i\",\n \"nodeType\": \"Identifier\",\n \"overloadedDeclarations\": [],\n \"referencedDeclaration\": 33389,\n \"src\": \"60707:1:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33397,\n \"nodeType\": \"ExpressionStatement\",\n \"src\": \"60705:3:41\"\n },\n \"nodeType\": \"ForStatement\",\n \"src\": \"60672:262:41\"\n }\n ]\n },\n \"functionSelector\": \"78e0233e\",\n \"implemented\": true,\n \"kind\": \"function\",\n \"modifiers\": [],\n \"name\": \"viewPositionBalances\",\n \"nameLocation\": \"60056:20:41\",\n \"parameters\": {\n \"id\": 33297,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [],\n \"src\": \"60076:2:41\"\n },\n \"returnParameters\": {\n \"id\": 33308,\n \"nodeType\": \"ParameterList\",\n \"parameters\": [\n {\n \"constant\": false,\n \"id\": 33301,\n \"mutability\": \"mutable\",\n \"name\": \"assets\",\n \"nameLocation\": \"60141:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33436,\n \"src\": \"60126:21:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_memory_ptr\",\n \"typeString\": \"contract ERC20[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33299,\n \"nodeType\": \"UserDefinedTypeName\",\n \"pathNode\": {\n \"id\": 33298,\n \"name\": \"ERC20\",\n \"nameLocations\": [\n \"60126:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 34556,\n \"src\": \"60126:5:41\"\n },\n \"referencedDeclaration\": 34556,\n \"src\": \"60126:5:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_contract$_ERC20_$34556\",\n \"typeString\": \"contract ERC20\"\n }\n },\n \"id\": 33300,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60126:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_contract$_ERC20_$34556_$dyn_storage_ptr\",\n \"typeString\": \"contract ERC20[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 33304,\n \"mutability\": \"mutable\",\n \"name\": \"balances\",\n \"nameLocation\": \"60166:8:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33436,\n \"src\": \"60149:25:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_memory_ptr\",\n \"typeString\": \"uint256[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33302,\n \"name\": \"uint256\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60149:7:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_uint256\",\n \"typeString\": \"uint256\"\n }\n },\n \"id\": 33303,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60149:9:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_uint256_$dyn_storage_ptr\",\n \"typeString\": \"uint256[]\"\n }\n },\n \"visibility\": \"internal\"\n },\n {\n \"constant\": false,\n \"id\": 33307,\n \"mutability\": \"mutable\",\n \"name\": \"isDebt\",\n \"nameLocation\": \"60190:6:41\",\n \"nodeType\": \"VariableDeclaration\",\n \"scope\": 33436,\n \"src\": \"60176:20:41\",\n \"stateVariable\": false,\n \"storageLocation\": \"memory\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_memory_ptr\",\n \"typeString\": \"bool[]\"\n },\n \"typeName\": {\n \"baseType\": {\n \"id\": 33305,\n \"name\": \"bool\",\n \"nodeType\": \"ElementaryTypeName\",\n \"src\": \"60176:4:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_bool\",\n \"typeString\": \"bool\"\n }\n },\n \"id\": 33306,\n \"nodeType\": \"ArrayTypeName\",\n \"src\": \"60176:6:41\",\n \"typeDescriptions\": {\n \"typeIdentifier\": \"t_array$_t_bool_$dyn_storage_ptr\",\n \"typeString\": \"bool[]\"\n }\n },\n \"visibility\": \"internal\"\n }\n ],\n \"src\": \"60125:72:41\"\n },\n \"scope\": 33437,\n \"stateMutability\": \"view\",\n \"virtual\": false,\n \"visibility\": \"external\"\n }\n ],\n \"abstract\": false,\n \"baseContracts\": [\n {\n \"baseName\": {\n \"id\": 30058,\n \"name\": \"ERC4626\",\n \"nameLocations\": [\n \"825:7:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 35137,\n \"src\": \"825:7:41\"\n },\n \"id\": 30059,\n \"nodeType\": \"InheritanceSpecifier\",\n \"src\": \"825:7:41\"\n },\n {\n \"baseName\": {\n \"id\": 30060,\n \"name\": \"Owned\",\n \"nameLocations\": [\n \"834:5:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 26585,\n \"src\": \"834:5:41\"\n },\n \"id\": 30061,\n \"nodeType\": \"InheritanceSpecifier\",\n \"src\": \"834:5:41\"\n },\n {\n \"baseName\": {\n \"id\": 30062,\n \"name\": \"ERC721Holder\",\n \"nameLocations\": [\n \"841:12:41\"\n ],\n \"nodeType\": \"IdentifierPath\",\n \"referencedDeclaration\": 24007,\n \"src\": \"841:12:41\"\n },\n \"id\": 30063,\n \"nodeType\": \"InheritanceSpecifier\",\n \"src\": \"841:12:41\"\n }\n ],\n \"canonicalName\": \"Cellar\",\n \"contractDependencies\": [],\n \"contractKind\": \"contract\",\n \"documentation\": {\n \"id\": 30057,\n \"nodeType\": \"StructuredDocumentation\",\n \"src\": \"653:152:41\",\n \"text\": \" @title Sommelier Cellar\\n @notice A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.\\n @author crispymangoes\"\n },\n \"fullyImplemented\": true,\n \"linearizedBaseContracts\": [\n 33437,\n 24007,\n 23922,\n 26585,\n 35137,\n 34556\n ],\n \"name\": \"Cellar\",\n \"nameLocation\": \"815:6:41\",\n \"scope\": 33438,\n \"usedErrors\": [\n 30248,\n 30253,\n 30258,\n 30265,\n 30272,\n 30277,\n 30282,\n 30285,\n 30290,\n 30856,\n 30859,\n 30946,\n 30949,\n 30952,\n 31273,\n 31276,\n 31281,\n 31286,\n 31289,\n 31296,\n 31301,\n 31443,\n 32666,\n 32673,\n 32680,\n 32685,\n 32907,\n 32910\n ]\n }\n ],\n \"license\": \"Apache-2.0\"\n },\n \"id\": 41\n}") . expect ("invalid abi") + serde_json :: from_str ("[\n {\n \"inputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"_registry\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"expectedAsset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__AssetMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__CallToAdaptorNotAllowed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__CallerNotAavePool\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ContractNotShutdown\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ContractShutdown\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__DebtMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxDeposit\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__DepositRestricted\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ExternalInitiator\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"illiquidPosition\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__IlliquidWithdraw\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetsOwed\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__IncompleteWithdraw\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidFee\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidFeeCut\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__InvalidHoldingPosition\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"requested\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__InvalidRebalanceDeviation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__InvalidShareLockPeriod\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"depositor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Cellar__NotApprovedToDepositOnBehalf\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__Paused\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionAlreadyUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxPositions\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__PositionArrayFull\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"sharesRemaining\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__PositionNotEmpty\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionNotInCatalogue\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"Cellar__PositionNotUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__RemovingHoldingPosition\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"timeSharesAreUnlocked\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentBlock\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__SharesAreLocked\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"min\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"max\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__TotalAssetDeviatedOutsideRange\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"current\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expected\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Cellar__TotalSharesMustRemainConstant\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ZeroAssets\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"Cellar__ZeroShares\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"AdaptorCalled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"AdaptorCatalogueAltered\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Approval\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Deposit\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"version\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformFee\",\n \"type\": \"uint64\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformFee\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"PlatformFeeChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionAdded\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"inCatalogue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"PositionCatalogueAltered\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"position\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionRemoved\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"newPosition1\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"newPosition2\",\n \"type\": \"uint32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index1\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index2\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"PositionSwapped\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldDeviation\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"RebalanceDeviationChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldPeriod\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newPeriod\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ShareLockingPeriodChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"isShutdown\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"ShutdownChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldPayoutAddress\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"newPayoutAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"StrategistPayoutAddressChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"oldPlatformCut\",\n \"type\": \"uint64\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"newPlatformCut\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"StrategistPlatformCutChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Withdraw\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"GRAVITY_BRIDGE_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAXIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_FEE_CUT\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_PLATFORM_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_POSITIONS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_REBALANCE_DEVIATION\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MINIMUM_SHARE_LOCK_PERIOD\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PRICE_ROUTER_REGISTRY_SLOT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"aavePool\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"adaptorCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"addAdaptorToCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"addPosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"addPositionToCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"allowedRebalanceDeviation\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"asset\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"blockExternalReceiver\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"checkTotalAssets\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"allowableRange\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"cachePriceRouter\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"callData\",\n \"type\": \"bytes[]\"\n }\n ],\n \"internalType\": \"struct Cellar.AdaptorCall[]\",\n \"name\": \"data\",\n \"type\": \"tuple[]\"\n }\n ],\n \"name\": \"callOnAdaptor\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"convertToAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"convertToShares\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"creditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"debtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"premiums\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"initiator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"executeOperation\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"feeData\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"strategistPlatformCut\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"platformFee\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"lastAccrual\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"strategistPayoutAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"forcePositionOut\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getCreditPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDebtPositions\",\n \"outputs\": [\n {\n \"internalType\": \"uint32[]\",\n \"name\": \"\",\n \"type\": \"uint32[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getPositionAssets\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"getPositionData\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isDebt\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"adaptorData\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"configurationData\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"holdingPosition\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"ignorePause\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"initiateShutdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"isPositionUsed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isShutdown\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"liftShutdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"locked\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"maxWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }\n ],\n \"name\": \"multicall\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"nonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"onERC721Received\",\n \"outputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"\",\n \"type\": \"bytes4\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"positionCatalogue\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewDeposit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewMint\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewRedeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"previewWithdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"priceRouter\",\n \"outputs\": [\n {\n \"internalType\": \"contract PriceRouter\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"redeem\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"registry\",\n \"outputs\": [\n {\n \"internalType\": \"contract Registry\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"adaptor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"removeAdaptorFromCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"removePosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"removePositionFromCatalogue\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"positionId\",\n \"type\": \"uint32\"\n }\n ],\n \"name\": \"setHoldingPosition\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newDeviation\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setRebalanceDeviation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newLock\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setShareLockPeriod\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"payout\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setStrategistPayoutAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"cut\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"setStrategistPlatformCut\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"shareLockPeriod\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"index1\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"index2\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"inDebtArray\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"swapPositions\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"toggle\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"toggleIgnorePause\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalAssetsWithdrawable\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transfer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferFrom\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userShareLockStartTime\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"viewPositionBalances\",\n \"outputs\": [\n {\n \"internalType\": \"contract ERC20[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"balances\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"bool[]\",\n \"name\": \"isDebt\",\n \"type\": \"bool[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assets\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"shares\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n]\n") . expect ("invalid abi") }); #[derive(Clone)] pub struct CellarV2_2(ethers::contract::Contract); @@ -212,13 +212,14 @@ mod cellarv2_2_mod { .method_hash([76, 70, 2, 218], ()) .expect("method not found (this should never happen)") } - #[doc = "Calls the contract's `cachePriceRouter` (0x6925ba2c) function"] + #[doc = "Calls the contract's `cachePriceRouter` (0x58db626d) function"] pub fn cache_price_router( &self, check_total_assets: bool, + allowable_range: u16, ) -> ethers::contract::builders::ContractCall { self.0 - .method_hash([105, 37, 186, 44], check_total_assets) + .method_hash([88, 219, 98, 109], (check_total_assets, allowable_range)) .expect("method not found (this should never happen)") } #[doc = "Calls the contract's `callOnAdaptor` (0x4e84befe) function"] @@ -376,6 +377,15 @@ mod cellarv2_2_mod { .method_hash([153, 89, 175, 148], ()) .expect("method not found (this should never happen)") } + #[doc = "Calls the contract's `initialize` (0x439fab91) function"] + pub fn initialize( + &self, + params: ethers::core::types::Bytes, + ) -> ethers::contract::builders::ContractCall { + self.0 + .method_hash([67, 159, 171, 145], params) + .expect("method not found (this should never happen)") + } #[doc = "Calls the contract's `initiateShutdown` (0x0a680e18) function"] pub fn initiate_shutdown(&self) -> ethers::contract::builders::ContractCall { self.0 @@ -813,6 +823,12 @@ mod cellarv2_2_mod { pub fn deposit_filter(&self) -> ethers::contract::builders::Event { self.0.event() } + #[doc = "Gets the contract's `Initialized` event"] + pub fn initialized_filter( + &self, + ) -> ethers::contract::builders::Event { + self.0.event() + } #[doc = "Gets the contract's `OwnershipTransferred` event"] pub fn ownership_transferred_filter( &self, @@ -977,6 +993,21 @@ mod cellarv2_2_mod { serde :: Deserialize, serde :: Serialize, )] + #[ethevent(name = "Initialized", abi = "Initialized(uint8)")] + pub struct InitializedFilter { + pub version: u8, + } + #[derive( + Clone, + Debug, + Default, + Eq, + PartialEq, + ethers :: contract :: EthEvent, + ethers :: contract :: EthDisplay, + serde :: Deserialize, + serde :: Serialize, + )] #[ethevent( name = "OwnershipTransferred", abi = "OwnershipTransferred(address,address)" @@ -1216,6 +1247,7 @@ mod cellarv2_2_mod { AdaptorCatalogueAlteredFilter(AdaptorCatalogueAlteredFilter), ApprovalFilter(ApprovalFilter), DepositFilter(DepositFilter), + InitializedFilter(InitializedFilter), OwnershipTransferredFilter(OwnershipTransferredFilter), PlatformFeeChangedFilter(PlatformFeeChangedFilter), PositionAddedFilter(PositionAddedFilter), @@ -1247,6 +1279,9 @@ mod cellarv2_2_mod { if let Ok(decoded) = DepositFilter::decode_log(log) { return Ok(CellarV2_2Events::DepositFilter(decoded)); } + if let Ok(decoded) = InitializedFilter::decode_log(log) { + return Ok(CellarV2_2Events::InitializedFilter(decoded)); + } if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) { return Ok(CellarV2_2Events::OwnershipTransferredFilter(decoded)); } @@ -1300,6 +1335,7 @@ mod cellarv2_2_mod { CellarV2_2Events::AdaptorCatalogueAlteredFilter(element) => element.fmt(f), CellarV2_2Events::ApprovalFilter(element) => element.fmt(f), CellarV2_2Events::DepositFilter(element) => element.fmt(f), + CellarV2_2Events::InitializedFilter(element) => element.fmt(f), CellarV2_2Events::OwnershipTransferredFilter(element) => element.fmt(f), CellarV2_2Events::PlatformFeeChangedFilter(element) => element.fmt(f), CellarV2_2Events::PositionAddedFilter(element) => element.fmt(f), @@ -1629,7 +1665,7 @@ mod cellarv2_2_mod { )] #[ethcall(name = "blockExternalReceiver", abi = "blockExternalReceiver()")] pub struct BlockExternalReceiverCall; - #[doc = "Container type for all input parameters for the `cachePriceRouter`function with signature `cachePriceRouter(bool)` and selector `[105, 37, 186, 44]`"] + #[doc = "Container type for all input parameters for the `cachePriceRouter`function with signature `cachePriceRouter(bool,uint16)` and selector `[88, 219, 98, 109]`"] #[derive( Clone, Debug, @@ -1641,9 +1677,10 @@ mod cellarv2_2_mod { serde :: Deserialize, serde :: Serialize, )] - #[ethcall(name = "cachePriceRouter", abi = "cachePriceRouter(bool)")] + #[ethcall(name = "cachePriceRouter", abi = "cachePriceRouter(bool,uint16)")] pub struct CachePriceRouterCall { pub check_total_assets: bool, + pub allowable_range: u16, } #[doc = "Container type for all input parameters for the `callOnAdaptor`function with signature `callOnAdaptor((address,bytes[])[])` and selector `[78, 132, 190, 254]`"] #[derive( @@ -1894,6 +1931,22 @@ mod cellarv2_2_mod { )] #[ethcall(name = "ignorePause", abi = "ignorePause()")] pub struct IgnorePauseCall; + #[doc = "Container type for all input parameters for the `initialize`function with signature `initialize(bytes)` and selector `[67, 159, 171, 145]`"] + #[derive( + Clone, + Debug, + Default, + Eq, + PartialEq, + ethers :: contract :: EthCall, + ethers :: contract :: EthDisplay, + serde :: Deserialize, + serde :: Serialize, + )] + #[ethcall(name = "initialize", abi = "initialize(bytes)")] + pub struct InitializeCall { + pub params: ethers::core::types::Bytes, + } #[doc = "Container type for all input parameters for the `initiateShutdown`function with signature `initiateShutdown()` and selector `[10, 104, 14, 24]`"] #[derive( Clone, @@ -2668,6 +2721,7 @@ mod cellarv2_2_mod { GetPositionData(GetPositionDataCall), HoldingPosition(HoldingPositionCall), IgnorePause(IgnorePauseCall), + Initialize(InitializeCall), InitiateShutdown(InitiateShutdownCall), IsPaused(IsPausedCall), IsPositionUsed(IsPositionUsedCall), @@ -2905,6 +2959,11 @@ mod cellarv2_2_mod { { return Ok(CellarV2_2Calls::IgnorePause(decoded)); } + if let Ok(decoded) = + ::decode(data.as_ref()) + { + return Ok(CellarV2_2Calls::Initialize(decoded)); + } if let Ok(decoded) = ::decode(data.as_ref()) { @@ -3176,6 +3235,7 @@ mod cellarv2_2_mod { CellarV2_2Calls::GetPositionData(element) => element.encode(), CellarV2_2Calls::HoldingPosition(element) => element.encode(), CellarV2_2Calls::IgnorePause(element) => element.encode(), + CellarV2_2Calls::Initialize(element) => element.encode(), CellarV2_2Calls::InitiateShutdown(element) => element.encode(), CellarV2_2Calls::IsPaused(element) => element.encode(), CellarV2_2Calls::IsPositionUsed(element) => element.encode(), @@ -3265,6 +3325,7 @@ mod cellarv2_2_mod { CellarV2_2Calls::GetPositionData(element) => element.fmt(f), CellarV2_2Calls::HoldingPosition(element) => element.fmt(f), CellarV2_2Calls::IgnorePause(element) => element.fmt(f), + CellarV2_2Calls::Initialize(element) => element.fmt(f), CellarV2_2Calls::InitiateShutdown(element) => element.fmt(f), CellarV2_2Calls::IsPaused(element) => element.fmt(f), CellarV2_2Calls::IsPositionUsed(element) => element.fmt(f), @@ -3499,6 +3560,11 @@ mod cellarv2_2_mod { CellarV2_2Calls::IgnorePause(var) } } + impl ::std::convert::From for CellarV2_2Calls { + fn from(var: InitializeCall) -> Self { + CellarV2_2Calls::Initialize(var) + } + } impl ::std::convert::From for CellarV2_2Calls { fn from(var: InitiateShutdownCall) -> Self { CellarV2_2Calls::InitiateShutdown(var) diff --git a/steward_proto_go/steward_proto/cellar_v2.pb.go b/steward_proto_go/steward_proto/cellar_v2.pb.go index cbf73275..d2725804 100644 --- a/steward_proto_go/steward_proto/cellar_v2.pb.go +++ b/steward_proto_go/steward_proto/cellar_v2.pb.go @@ -1510,6 +1510,7 @@ type CellarV2_2_FunctionCall struct { // *CellarV2_2_FunctionCall_AddPositionToCatalogue // *CellarV2_2_FunctionCall_RemoveAdaptorFromCatalogue // *CellarV2_2_FunctionCall_RemovePositionFromCatalogue + // *CellarV2_2_FunctionCall_CachePriceRouter Function isCellarV2_2_FunctionCall_Function `protobuf_oneof:"function"` } @@ -1657,6 +1658,13 @@ func (x *CellarV2_2_FunctionCall) GetRemovePositionFromCatalogue() *CellarV2_2_R return nil } +func (x *CellarV2_2_FunctionCall) GetCachePriceRouter() *CellarV2_2_CachePriceRouter { + if x, ok := x.GetFunction().(*CellarV2_2_FunctionCall_CachePriceRouter); ok { + return x.CachePriceRouter + } + return nil +} + type isCellarV2_2_FunctionCall_Function interface { isCellarV2_2_FunctionCall_Function() } @@ -1736,6 +1744,11 @@ type CellarV2_2_FunctionCall_RemovePositionFromCatalogue struct { RemovePositionFromCatalogue *CellarV2_2_RemovePositionFromCatalogue `protobuf:"bytes,15,opt,name=remove_position_from_catalogue,json=removePositionFromCatalogue,proto3,oneof"` } +type CellarV2_2_FunctionCall_CachePriceRouter struct { + // Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` + CachePriceRouter *CellarV2_2_CachePriceRouter `protobuf:"bytes,16,opt,name=cache_price_router,json=cachePriceRouter,proto3,oneof"` +} + func (*CellarV2_2_FunctionCall_AddPosition) isCellarV2_2_FunctionCall_Function() {} func (*CellarV2_2_FunctionCall_CallOnAdaptor) isCellarV2_2_FunctionCall_Function() {} @@ -1766,6 +1779,8 @@ func (*CellarV2_2_FunctionCall_RemoveAdaptorFromCatalogue) isCellarV2_2_Function func (*CellarV2_2_FunctionCall_RemovePositionFromCatalogue) isCellarV2_2_FunctionCall_Function() {} +func (*CellarV2_2_FunctionCall_CachePriceRouter) isCellarV2_2_FunctionCall_Function() {} + // // Insert a trusted position to the list of positions used by the cellar at a given index. // @@ -2624,6 +2639,67 @@ func (x *CellarV2_2_RemovePositionFromCatalogue) GetPositionId() uint32 { return 0 } +// +// Updates the cellar to use the latest price router in the registry. +// +// Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` +type CellarV2_2_CachePriceRouter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether to check the total assets of the cellar + CheckTotalAssets bool `protobuf:"varint,1,opt,name=check_total_assets,json=checkTotalAssets,proto3" json:"check_total_assets,omitempty"` + // The allowable range of the cellar's total assets to deviate between old and new routers + AllowableRange uint32 `protobuf:"varint,2,opt,name=allowable_range,json=allowableRange,proto3" json:"allowable_range,omitempty"` +} + +func (x *CellarV2_2_CachePriceRouter) Reset() { + *x = CellarV2_2_CachePriceRouter{} + if protoimpl.UnsafeEnabled { + mi := &file_cellar_v2_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CellarV2_2_CachePriceRouter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CellarV2_2_CachePriceRouter) ProtoMessage() {} + +func (x *CellarV2_2_CachePriceRouter) ProtoReflect() protoreflect.Message { + mi := &file_cellar_v2_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CellarV2_2_CachePriceRouter.ProtoReflect.Descriptor instead. +func (*CellarV2_2_CachePriceRouter) Descriptor() ([]byte, []int) { + return file_cellar_v2_proto_rawDescGZIP(), []int{1, 17} +} + +func (x *CellarV2_2_CachePriceRouter) GetCheckTotalAssets() bool { + if x != nil { + return x.CheckTotalAssets + } + return false +} + +func (x *CellarV2_2_CachePriceRouter) GetAllowableRange() uint32 { + if x != nil { + return x.AllowableRange + } + return 0 +} + // The function you wish to execute on the target cellar type CellarV2_5_FunctionCall struct { state protoimpl.MessageState @@ -2655,7 +2731,7 @@ type CellarV2_5_FunctionCall struct { func (x *CellarV2_5_FunctionCall) Reset() { *x = CellarV2_5_FunctionCall{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[33] + mi := &file_cellar_v2_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2668,7 +2744,7 @@ func (x *CellarV2_5_FunctionCall) String() string { func (*CellarV2_5_FunctionCall) ProtoMessage() {} func (x *CellarV2_5_FunctionCall) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[33] + mi := &file_cellar_v2_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2969,7 +3045,7 @@ type CellarV2_5_AddPosition struct { func (x *CellarV2_5_AddPosition) Reset() { *x = CellarV2_5_AddPosition{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[34] + mi := &file_cellar_v2_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2982,7 +3058,7 @@ func (x *CellarV2_5_AddPosition) String() string { func (*CellarV2_5_AddPosition) ProtoMessage() {} func (x *CellarV2_5_AddPosition) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[34] + mi := &file_cellar_v2_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3041,7 +3117,7 @@ type CellarV2_5_CallOnAdaptor struct { func (x *CellarV2_5_CallOnAdaptor) Reset() { *x = CellarV2_5_CallOnAdaptor{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[35] + mi := &file_cellar_v2_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3054,7 +3130,7 @@ func (x *CellarV2_5_CallOnAdaptor) String() string { func (*CellarV2_5_CallOnAdaptor) ProtoMessage() {} func (x *CellarV2_5_CallOnAdaptor) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[35] + mi := &file_cellar_v2_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3095,7 +3171,7 @@ type CellarV2_5_RemovePosition struct { func (x *CellarV2_5_RemovePosition) Reset() { *x = CellarV2_5_RemovePosition{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[36] + mi := &file_cellar_v2_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3108,7 +3184,7 @@ func (x *CellarV2_5_RemovePosition) String() string { func (*CellarV2_5_RemovePosition) ProtoMessage() {} func (x *CellarV2_5_RemovePosition) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[36] + mi := &file_cellar_v2_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3154,7 +3230,7 @@ type CellarV2_5_SetHoldingPosition struct { func (x *CellarV2_5_SetHoldingPosition) Reset() { *x = CellarV2_5_SetHoldingPosition{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[37] + mi := &file_cellar_v2_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3167,7 +3243,7 @@ func (x *CellarV2_5_SetHoldingPosition) String() string { func (*CellarV2_5_SetHoldingPosition) ProtoMessage() {} func (x *CellarV2_5_SetHoldingPosition) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[37] + mi := &file_cellar_v2_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3205,7 +3281,7 @@ type CellarV2_5_SetStrategistPayoutAddress struct { func (x *CellarV2_5_SetStrategistPayoutAddress) Reset() { *x = CellarV2_5_SetStrategistPayoutAddress{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[38] + mi := &file_cellar_v2_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3218,7 +3294,7 @@ func (x *CellarV2_5_SetStrategistPayoutAddress) String() string { func (*CellarV2_5_SetStrategistPayoutAddress) ProtoMessage() {} func (x *CellarV2_5_SetStrategistPayoutAddress) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[38] + mi := &file_cellar_v2_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3261,7 +3337,7 @@ type CellarV2_5_SwapPositions struct { func (x *CellarV2_5_SwapPositions) Reset() { *x = CellarV2_5_SwapPositions{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[39] + mi := &file_cellar_v2_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3274,7 +3350,7 @@ func (x *CellarV2_5_SwapPositions) String() string { func (*CellarV2_5_SwapPositions) ProtoMessage() {} func (x *CellarV2_5_SwapPositions) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[39] + mi := &file_cellar_v2_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3326,7 +3402,7 @@ type CellarV2_5_SetShareLockPeriod struct { func (x *CellarV2_5_SetShareLockPeriod) Reset() { *x = CellarV2_5_SetShareLockPeriod{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[40] + mi := &file_cellar_v2_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3339,7 +3415,7 @@ func (x *CellarV2_5_SetShareLockPeriod) String() string { func (*CellarV2_5_SetShareLockPeriod) ProtoMessage() {} func (x *CellarV2_5_SetShareLockPeriod) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[40] + mi := &file_cellar_v2_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3378,7 +3454,7 @@ type CellarV2_5_SetRebalanceDeviation struct { func (x *CellarV2_5_SetRebalanceDeviation) Reset() { *x = CellarV2_5_SetRebalanceDeviation{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[41] + mi := &file_cellar_v2_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3391,7 +3467,7 @@ func (x *CellarV2_5_SetRebalanceDeviation) String() string { func (*CellarV2_5_SetRebalanceDeviation) ProtoMessage() {} func (x *CellarV2_5_SetRebalanceDeviation) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[41] + mi := &file_cellar_v2_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3427,7 +3503,7 @@ type CellarV2_5_InitiateShutdown struct { func (x *CellarV2_5_InitiateShutdown) Reset() { *x = CellarV2_5_InitiateShutdown{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[42] + mi := &file_cellar_v2_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3440,7 +3516,7 @@ func (x *CellarV2_5_InitiateShutdown) String() string { func (*CellarV2_5_InitiateShutdown) ProtoMessage() {} func (x *CellarV2_5_InitiateShutdown) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[42] + mi := &file_cellar_v2_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3472,7 +3548,7 @@ type CellarV2_5_SetStrategistPlatformCut struct { func (x *CellarV2_5_SetStrategistPlatformCut) Reset() { *x = CellarV2_5_SetStrategistPlatformCut{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[43] + mi := &file_cellar_v2_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3485,7 +3561,7 @@ func (x *CellarV2_5_SetStrategistPlatformCut) String() string { func (*CellarV2_5_SetStrategistPlatformCut) ProtoMessage() {} func (x *CellarV2_5_SetStrategistPlatformCut) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[43] + mi := &file_cellar_v2_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3521,7 +3597,7 @@ type CellarV2_5_LiftShutdown struct { func (x *CellarV2_5_LiftShutdown) Reset() { *x = CellarV2_5_LiftShutdown{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[44] + mi := &file_cellar_v2_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3534,7 +3610,7 @@ func (x *CellarV2_5_LiftShutdown) String() string { func (*CellarV2_5_LiftShutdown) ProtoMessage() {} func (x *CellarV2_5_LiftShutdown) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[44] + mi := &file_cellar_v2_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3565,7 +3641,7 @@ type CellarV2_5_AddAdaptorToCatalogue struct { func (x *CellarV2_5_AddAdaptorToCatalogue) Reset() { *x = CellarV2_5_AddAdaptorToCatalogue{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[45] + mi := &file_cellar_v2_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3578,7 +3654,7 @@ func (x *CellarV2_5_AddAdaptorToCatalogue) String() string { func (*CellarV2_5_AddAdaptorToCatalogue) ProtoMessage() {} func (x *CellarV2_5_AddAdaptorToCatalogue) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[45] + mi := &file_cellar_v2_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3616,7 +3692,7 @@ type CellarV2_5_Multicall struct { func (x *CellarV2_5_Multicall) Reset() { *x = CellarV2_5_Multicall{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[46] + mi := &file_cellar_v2_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3629,7 +3705,7 @@ func (x *CellarV2_5_Multicall) String() string { func (*CellarV2_5_Multicall) ProtoMessage() {} func (x *CellarV2_5_Multicall) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[46] + mi := &file_cellar_v2_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3667,7 +3743,7 @@ type CellarV2_5_AddPositionToCatalogue struct { func (x *CellarV2_5_AddPositionToCatalogue) Reset() { *x = CellarV2_5_AddPositionToCatalogue{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[47] + mi := &file_cellar_v2_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3680,7 +3756,7 @@ func (x *CellarV2_5_AddPositionToCatalogue) String() string { func (*CellarV2_5_AddPositionToCatalogue) ProtoMessage() {} func (x *CellarV2_5_AddPositionToCatalogue) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[47] + mi := &file_cellar_v2_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3718,7 +3794,7 @@ type CellarV2_5_RemoveAdaptorFromCatalogue struct { func (x *CellarV2_5_RemoveAdaptorFromCatalogue) Reset() { *x = CellarV2_5_RemoveAdaptorFromCatalogue{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[48] + mi := &file_cellar_v2_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3731,7 +3807,7 @@ func (x *CellarV2_5_RemoveAdaptorFromCatalogue) String() string { func (*CellarV2_5_RemoveAdaptorFromCatalogue) ProtoMessage() {} func (x *CellarV2_5_RemoveAdaptorFromCatalogue) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[48] + mi := &file_cellar_v2_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3769,7 +3845,7 @@ type CellarV2_5_RemovePositionFromCatalogue struct { func (x *CellarV2_5_RemovePositionFromCatalogue) Reset() { *x = CellarV2_5_RemovePositionFromCatalogue{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[49] + mi := &file_cellar_v2_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3782,7 +3858,7 @@ func (x *CellarV2_5_RemovePositionFromCatalogue) String() string { func (*CellarV2_5_RemovePositionFromCatalogue) ProtoMessage() {} func (x *CellarV2_5_RemovePositionFromCatalogue) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[49] + mi := &file_cellar_v2_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3820,7 +3896,7 @@ type CellarV2_5_IncreaseShareSupplyCap struct { func (x *CellarV2_5_IncreaseShareSupplyCap) Reset() { *x = CellarV2_5_IncreaseShareSupplyCap{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[50] + mi := &file_cellar_v2_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3833,7 +3909,7 @@ func (x *CellarV2_5_IncreaseShareSupplyCap) String() string { func (*CellarV2_5_IncreaseShareSupplyCap) ProtoMessage() {} func (x *CellarV2_5_IncreaseShareSupplyCap) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[50] + mi := &file_cellar_v2_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3871,7 +3947,7 @@ type CellarV2_5_DecreaseShareSupplyCap struct { func (x *CellarV2_5_DecreaseShareSupplyCap) Reset() { *x = CellarV2_5_DecreaseShareSupplyCap{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[51] + mi := &file_cellar_v2_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3884,7 +3960,7 @@ func (x *CellarV2_5_DecreaseShareSupplyCap) String() string { func (*CellarV2_5_DecreaseShareSupplyCap) ProtoMessage() {} func (x *CellarV2_5_DecreaseShareSupplyCap) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[51] + mi := &file_cellar_v2_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3925,7 +4001,7 @@ type CellarV2_5_SetSharePriceOracle struct { func (x *CellarV2_5_SetSharePriceOracle) Reset() { *x = CellarV2_5_SetSharePriceOracle{} if protoimpl.UnsafeEnabled { - mi := &file_cellar_v2_proto_msgTypes[52] + mi := &file_cellar_v2_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3938,7 +4014,7 @@ func (x *CellarV2_5_SetSharePriceOracle) String() string { func (*CellarV2_5_SetSharePriceOracle) ProtoMessage() {} func (x *CellarV2_5_SetSharePriceOracle) ProtoReflect() protoreflect.Message { - mi := &file_cellar_v2_proto_msgTypes[52] + mi := &file_cellar_v2_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4135,7 +4211,7 @@ var file_cellar_v2_proto_rawDesc = []byte{ 0x46, 0x65, 0x65, 0x1a, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x0e, 0x0a, 0x0c, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xfa, 0x14, 0x0a, 0x0a, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, + 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x16, 0x0a, 0x0a, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x32, 0x12, 0x4a, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, @@ -4145,7 +4221,7 @@ var file_cellar_v2_proto_rawDesc = []byte{ 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x32, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x1a, 0xd1, 0x0b, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, + 0x1a, 0xaa, 0x0c, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x47, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x32, 0x2e, @@ -4237,424 +4313,436 @@ var file_cellar_v2_proto_rawDesc = []byte{ 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, - 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x3c, - 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, - 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4a, 0x0a, 0x0e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, - 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, - 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x35, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x48, - 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, - 0x34, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x79, 0x6f, 0x75, 0x74, 0x1a, 0x65, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, - 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x31, 0x12, - 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x32, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, - 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x2f, 0x0a, 0x12, - 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x1a, 0x3c, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x65, - 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, - 0x65, 0x77, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x12, 0x0a, 0x10, 0x49, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, - 0x33, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, - 0x65, 0x77, 0x5f, 0x63, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x65, - 0x77, 0x43, 0x75, 0x74, 0x1a, 0x0e, 0x0a, 0x0c, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x31, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x4a, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, - 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, - 0x56, 0x32, 0x5f, 0x32, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, - 0x6c, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x73, - 0x1a, 0x39, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x36, 0x0a, 0x1a, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, 0x6d, - 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x6f, 0x72, 0x1a, 0x3e, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x22, 0xeb, 0x18, 0x0a, 0x0a, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x12, - 0x4a, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x40, 0x0a, 0x09, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, - 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x48, 0x00, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x1a, 0x8c, 0x0e, - 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x47, - 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x41, 0x64, 0x64, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, - 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, - 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x6e, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x4f, 0x6e, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, - 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x14, 0x73, 0x65, 0x74, - 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, - 0x53, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x1d, 0x73, 0x65, 0x74, 0x5f, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, - 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x4d, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x32, 0x2e, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x10, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, + 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, + 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x3c, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x4f, + 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, + 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x1a, 0x35, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x34, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x1a, 0x65, + 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x31, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x32, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x2f, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6e, + 0x65, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, + 0x65, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x1a, 0x3c, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x52, 0x65, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x76, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x33, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x43, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, 0x75, 0x74, 0x1a, 0x0e, 0x0a, + 0x0c, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x31, 0x0a, + 0x15, 0x41, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, + 0x1a, 0x57, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x4a, 0x0a, + 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, + 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x32, 0x2e, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x16, 0x41, 0x64, 0x64, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x36, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x1a, 0x3e, 0x0a, 0x1b, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x69, 0x0a, 0x10, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0xeb, 0x18, 0x0a, 0x0a, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, + 0x32, 0x5f, 0x35, 0x12, 0x4a, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, + 0x5f, 0x35, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x48, + 0x00, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, + 0x40, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, + 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x1a, 0x8c, 0x0e, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, + 0x6c, 0x6c, 0x12, 0x47, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, - 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x66, 0x0a, 0x17, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, - 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x15, 0x73, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, - 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x15, 0x73, 0x65, 0x74, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, - 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x63, - 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x56, 0x0a, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, - 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, - 0x70, 0x0a, 0x1b, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x63, 0x75, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, + 0x61, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0f, 0x63, + 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x43, 0x61, 0x6c, + 0x6c, 0x4f, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, + 0x6c, 0x6c, 0x4f, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, + 0x14, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, + 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x74, 0x48, 0x6f, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x1d, + 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x5f, 0x70, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, + 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x65, 0x74, 0x53, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, + 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x66, 0x0a, 0x17, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, - 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x43, 0x75, 0x74, 0x48, 0x00, 0x52, 0x18, 0x73, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x75, - 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6c, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, - 0x77, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x73, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x15, 0x73, + 0x65, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, + 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x12, 0x73, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x56, 0x0a, 0x11, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x48, + 0x00, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x12, 0x70, 0x0a, 0x1b, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x63, + 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, - 0x2e, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52, - 0x0c, 0x6c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x67, 0x0a, - 0x18, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x5f, - 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, - 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, - 0x15, 0x61, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, - 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, - 0x67, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, - 0x35, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, - 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x16, 0x61, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x75, 0x65, 0x12, 0x76, 0x0a, 0x1d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x61, 0x64, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, - 0x67, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, - 0x35, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x46, - 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x1a, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x79, 0x0a, 0x1e, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, - 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, - 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x75, 0x74, 0x48, 0x00, 0x52, 0x18, 0x73, 0x65, 0x74, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x43, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6c, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, + 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, + 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x12, 0x67, 0x0a, 0x18, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, + 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, + 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x41, 0x64, 0x64, 0x41, + 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, + 0x65, 0x48, 0x00, 0x52, 0x15, 0x61, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, + 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, + 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x16, + 0x61, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x76, 0x0a, 0x1d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, + 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, + 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, + 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x79, + 0x0a, 0x1e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, + 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, + 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x48, 0x00, 0x52, 0x16, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x6a, 0x0a, 0x19, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x63, - 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x61, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, - 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x2e, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, - 0x70, 0x12, 0x6a, 0x0a, 0x19, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x44, 0x65, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x43, 0x61, 0x70, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x61, 0x0a, - 0x16, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, - 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, 0x65, 0x74, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, 0x0a, - 0x0b, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, - 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x3c, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x6e, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, - 0x76, 0x33, 0x2e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0d, - 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x1a, 0x35, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x34, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x1a, 0x65, 0x0a, - 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, - 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x31, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x32, + 0x70, 0x12, 0x61, 0x0a, 0x16, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, + 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x48, 0x00, 0x52, + 0x13, 0x73, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x72, + 0x61, 0x63, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, + 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x3c, 0x0a, 0x0d, 0x43, 0x61, + 0x6c, 0x6c, 0x4f, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x61, + 0x6c, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x1a, 0x2f, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, - 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, - 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x1a, 0x3c, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x52, 0x65, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, - 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x53, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x33, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x43, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x75, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, 0x75, 0x74, 0x1a, 0x0e, 0x0a, 0x0c, - 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x31, 0x0a, 0x15, - 0x41, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, 0x65, 0x62, 0x74, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x1a, 0x35, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x48, 0x6f, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x34, 0x0a, 0x1a, 0x53, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6f, + 0x75, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x1a, 0x65, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x31, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x31, 0x12, 0x17, 0x0a, 0x07, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x32, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x44, + 0x65, 0x62, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x1a, 0x2f, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x1a, 0x3c, 0x0a, 0x15, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x44, 0x65, + 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x33, 0x0a, 0x18, 0x53, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x63, + 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, 0x75, 0x74, + 0x1a, 0x0e, 0x0a, 0x0c, 0x4c, 0x69, 0x66, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, + 0x1a, 0x31, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, + 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, + 0x74, 0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x12, 0x4a, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6c, + 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, + 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x0d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x16, + 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x36, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x1a, - 0x57, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x4a, 0x0a, 0x0e, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x32, 0x5f, 0x35, 0x2e, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x1a, 0x36, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x1a, 0x3e, 0x0a, 0x1b, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x31, 0x0a, 0x16, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x61, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, 0x61, 0x70, 0x1a, 0x31, - 0x0a, 0x16, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, - 0x63, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, 0x61, - 0x70, 0x1a, 0x4e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe8, - 0x12, 0x0a, 0x0b, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x54, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x73, - 0x77, 0x61, 0x70, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, - 0x76, 0x33, 0x2e, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x10, 0x75, 0x6e, - 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x58, - 0x0a, 0x15, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, - 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x41, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x61, 0x61, 0x76, 0x65, 0x41, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x18, 0x61, 0x61, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x44, 0x65, 0x62, 0x74, + 0x3e, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, + 0x31, 0x0a, 0x16, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, + 0x5f, 0x63, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x43, + 0x61, 0x70, 0x1a, 0x31, 0x0a, 0x16, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x61, 0x70, 0x12, 0x17, 0x0a, 0x07, + 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, + 0x65, 0x77, 0x43, 0x61, 0x70, 0x1a, 0x4e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x22, 0xe8, 0x12, 0x0a, 0x0b, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x43, 0x61, + 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x54, 0x0a, 0x13, + 0x75, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, + 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, + 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, + 0x52, 0x10, 0x75, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x56, 0x31, 0x43, 0x61, 0x6c, + 0x6c, 0x73, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, + 0x61, 0x76, 0x65, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, + 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x61, 0x61, 0x76, 0x65, 0x41, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x18, + 0x61, 0x61, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, + 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, + 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x61, 0x61, 0x76, 0x65, 0x44, + 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, + 0x64, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, + 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x61, 0x61, + 0x76, 0x65, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, + 0x61, 0x0a, 0x18, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, + 0x61, 0x76, 0x65, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x61, 0x61, + 0x76, 0x65, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x43, 0x61, 0x6c, + 0x6c, 0x73, 0x12, 0x5f, 0x0a, 0x18, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x61, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x13, + 0x61, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, + 0x6c, 0x6c, 0x73, 0x12, 0x68, 0x0a, 0x1b, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x64, + 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, + 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x61, 0x61, 0x76, 0x65, 0x44, 0x65, 0x62, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x64, 0x0a, 0x19, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, - 0x73, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, - 0x76, 0x65, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, - 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x11, 0x61, 0x61, 0x76, 0x65, 0x41, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x18, 0x61, - 0x61, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, - 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x44, - 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, - 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x61, 0x61, 0x76, 0x65, 0x44, 0x65, - 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x5f, - 0x0a, 0x18, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, - 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x13, 0x61, 0x61, 0x76, 0x65, - 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, - 0x68, 0x0a, 0x1b, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x09, + 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x16, 0x61, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4e, 0x0a, + 0x11, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, + 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x6e, 0x65, 0x49, 0x6e, 0x63, 0x68, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6f, + 0x6e, 0x65, 0x49, 0x6e, 0x63, 0x68, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x67, 0x0a, + 0x1a, 0x66, 0x65, 0x65, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x73, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x46, + 0x65, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x16, + 0x66, 0x65, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x56, + 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x78, + 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x5a, 0x65, 0x72, + 0x6f, 0x58, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, + 0x48, 0x00, 0x52, 0x0c, 0x7a, 0x65, 0x72, 0x6f, 0x58, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, + 0x12, 0x67, 0x0a, 0x1a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x6e, + 0x69, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x33, 0x2e, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, - 0x00, 0x52, 0x16, 0x61, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x6f, 0x6e, 0x65, - 0x5f, 0x69, 0x6e, 0x63, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x33, 0x2e, 0x4f, 0x6e, 0x65, 0x49, 0x6e, 0x63, 0x68, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, - 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x49, 0x6e, - 0x63, 0x68, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x65, 0x65, - 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x5f, 0x76, - 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x65, 0x65, 0x73, 0x41, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x16, 0x66, 0x65, 0x65, 0x73, - 0x41, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x56, 0x31, 0x43, 0x61, 0x6c, - 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x78, 0x5f, 0x76, 0x31, 0x5f, - 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x74, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x5a, 0x65, 0x72, 0x6f, 0x58, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0c, - 0x7a, 0x65, 0x72, 0x6f, 0x58, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x67, 0x0a, 0x1a, - 0x73, 0x77, 0x61, 0x70, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x6e, 0x69, 0x73, 0x77, 0x61, - 0x70, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x77, - 0x61, 0x70, 0x57, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x16, 0x73, - 0x77, 0x61, 0x70, 0x57, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x31, - 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, - 0x00, 0x52, 0x14, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x65, 0x6c, 0x6c, 0x61, - 0x72, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x65, - 0x6c, 0x6c, 0x61, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, - 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x56, 0x31, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x76, - 0x33, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x55, 0x6e, - 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x32, - 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, - 0x56, 0x33, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x94, 0x01, 0x0a, 0x2b, 0x61, 0x61, - 0x76, 0x65, 0x5f, 0x76, 0x32, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x37, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x61, 0x76, - 0x65, 0x56, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x73, - 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x24, 0x61, 0x61, 0x76, 0x65, - 0x56, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, - 0x12, 0x4b, 0x0a, 0x10, 0x66, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x74, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0d, - 0x66, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x72, 0x0a, - 0x1f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x32, 0x5f, - 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, - 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, - 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x19, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, - 0x76, 0x65, 0x56, 0x32, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, - 0x73, 0x12, 0x7b, 0x0a, 0x22, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, 0x65, - 0x5f, 0x76, 0x32, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, - 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, - 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, - 0x52, 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, 0x44, 0x65, - 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x91, - 0x01, 0x0a, 0x2a, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, - 0x33, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, + 0x33, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x57, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, + 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, + 0x00, 0x52, 0x16, 0x73, 0x77, 0x61, 0x70, 0x57, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x69, 0x73, 0x77, + 0x61, 0x70, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x76, 0x32, 0x5f, 0x63, + 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, + 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x14, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x63, + 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x61, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, + 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x72, + 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x73, 0x77, + 0x61, 0x70, 0x5f, 0x76, 0x33, 0x5f, 0x76, 0x32, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x33, 0x2e, 0x55, 0x6e, 0x69, 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x6f, 0x72, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x10, 0x75, 0x6e, 0x69, + 0x73, 0x77, 0x61, 0x70, 0x56, 0x33, 0x56, 0x32, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x94, 0x01, + 0x0a, 0x2b, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x32, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, + 0x2e, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x41, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x24, + 0x61, 0x61, 0x76, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x41, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, 0x31, 0x43, + 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x66, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, + 0x48, 0x00, 0x52, 0x0d, 0x66, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, + 0x73, 0x12, 0x72, 0x0a, 0x1f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, 0x65, + 0x5f, 0x76, 0x32, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, + 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, + 0x76, 0x65, 0x56, 0x32, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, + 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x19, 0x6d, 0x6f, 0x72, 0x70, + 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, + 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x7b, 0x0a, 0x22, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, + 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x32, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, + 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x32, 0x44, 0x65, 0x62, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, + 0x6c, 0x73, 0x48, 0x00, 0x52, 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, + 0x56, 0x32, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, + 0x6c, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x2a, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, + 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, + 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, + 0x00, 0x52, 0x23, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, + 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x7c, 0x0a, 0x23, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, + 0x5f, 0x61, 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x23, 0x6d, - 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, 0x31, 0x43, 0x61, 0x6c, - 0x6c, 0x73, 0x12, 0x7c, 0x0a, 0x23, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, - 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x61, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x32, 0x70, - 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, - 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, - 0x32, 0x50, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, - 0x48, 0x00, 0x52, 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, - 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x32, 0x70, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, - 0x12, 0x7b, 0x0a, 0x22, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, 0x61, 0x76, 0x65, 0x5f, - 0x76, 0x33, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x31, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, - 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x72, 0x70, 0x68, 0x6f, - 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, - 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x5d, 0x0a, - 0x16, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, - 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, - 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x0b, 0x0a, 0x09, - 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x10, 0x5a, 0x0e, 0x2f, 0x73, 0x74, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6b, 0x65, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, + 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, + 0x76, 0x65, 0x56, 0x33, 0x41, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x32, 0x70, 0x56, 0x31, 0x43, + 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x7b, 0x0a, 0x22, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x5f, 0x61, + 0x61, 0x76, 0x65, 0x5f, 0x76, 0x33, 0x5f, 0x64, 0x65, 0x62, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x6f, + 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x41, 0x64, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, + 0x73, 0x48, 0x00, 0x52, 0x1c, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x6f, 0x41, 0x61, 0x76, 0x65, 0x56, + 0x33, 0x44, 0x65, 0x62, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, + 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x76, 0x31, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x33, 0x2e, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x6f, 0x72, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x31, 0x43, 0x61, 0x6c, 0x6c, 0x73, + 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x10, 0x5a, + 0x0e, 0x2f, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4669,7 +4757,7 @@ func file_cellar_v2_proto_rawDescGZIP() []byte { return file_cellar_v2_proto_rawDescData } -var file_cellar_v2_proto_msgTypes = make([]protoimpl.MessageInfo, 53) +var file_cellar_v2_proto_msgTypes = make([]protoimpl.MessageInfo, 54) var file_cellar_v2_proto_goTypes = []interface{}{ (*CellarV2)(nil), // 0: steward.v3.CellarV2 (*CellarV2_2)(nil), // 1: steward.v3.CellarV2_2 @@ -4704,49 +4792,50 @@ var file_cellar_v2_proto_goTypes = []interface{}{ (*CellarV2_2_AddPositionToCatalogue)(nil), // 30: steward.v3.CellarV2_2.AddPositionToCatalogue (*CellarV2_2_RemoveAdaptorFromCatalogue)(nil), // 31: steward.v3.CellarV2_2.RemoveAdaptorFromCatalogue (*CellarV2_2_RemovePositionFromCatalogue)(nil), // 32: steward.v3.CellarV2_2.RemovePositionFromCatalogue - (*CellarV2_5_FunctionCall)(nil), // 33: steward.v3.CellarV2_5.FunctionCall - (*CellarV2_5_AddPosition)(nil), // 34: steward.v3.CellarV2_5.AddPosition - (*CellarV2_5_CallOnAdaptor)(nil), // 35: steward.v3.CellarV2_5.CallOnAdaptor - (*CellarV2_5_RemovePosition)(nil), // 36: steward.v3.CellarV2_5.RemovePosition - (*CellarV2_5_SetHoldingPosition)(nil), // 37: steward.v3.CellarV2_5.SetHoldingPosition - (*CellarV2_5_SetStrategistPayoutAddress)(nil), // 38: steward.v3.CellarV2_5.SetStrategistPayoutAddress - (*CellarV2_5_SwapPositions)(nil), // 39: steward.v3.CellarV2_5.SwapPositions - (*CellarV2_5_SetShareLockPeriod)(nil), // 40: steward.v3.CellarV2_5.SetShareLockPeriod - (*CellarV2_5_SetRebalanceDeviation)(nil), // 41: steward.v3.CellarV2_5.SetRebalanceDeviation - (*CellarV2_5_InitiateShutdown)(nil), // 42: steward.v3.CellarV2_5.InitiateShutdown - (*CellarV2_5_SetStrategistPlatformCut)(nil), // 43: steward.v3.CellarV2_5.SetStrategistPlatformCut - (*CellarV2_5_LiftShutdown)(nil), // 44: steward.v3.CellarV2_5.LiftShutdown - (*CellarV2_5_AddAdaptorToCatalogue)(nil), // 45: steward.v3.CellarV2_5.AddAdaptorToCatalogue - (*CellarV2_5_Multicall)(nil), // 46: steward.v3.CellarV2_5.Multicall - (*CellarV2_5_AddPositionToCatalogue)(nil), // 47: steward.v3.CellarV2_5.AddPositionToCatalogue - (*CellarV2_5_RemoveAdaptorFromCatalogue)(nil), // 48: steward.v3.CellarV2_5.RemoveAdaptorFromCatalogue - (*CellarV2_5_RemovePositionFromCatalogue)(nil), // 49: steward.v3.CellarV2_5.RemovePositionFromCatalogue - (*CellarV2_5_IncreaseShareSupplyCap)(nil), // 50: steward.v3.CellarV2_5.IncreaseShareSupplyCap - (*CellarV2_5_DecreaseShareSupplyCap)(nil), // 51: steward.v3.CellarV2_5.DecreaseShareSupplyCap - (*CellarV2_5_SetSharePriceOracle)(nil), // 52: steward.v3.CellarV2_5.SetSharePriceOracle - (*UniswapV3AdaptorV1Calls)(nil), // 53: steward.v3.UniswapV3AdaptorV1Calls - (*AaveATokenAdaptorV1Calls)(nil), // 54: steward.v3.AaveATokenAdaptorV1Calls - (*AaveDebtTokenAdaptorV1Calls)(nil), // 55: steward.v3.AaveDebtTokenAdaptorV1Calls - (*CompoundCTokenAdaptorV2Calls)(nil), // 56: steward.v3.CompoundCTokenAdaptorV2Calls - (*AaveATokenAdaptorV2Calls)(nil), // 57: steward.v3.AaveATokenAdaptorV2Calls - (*AaveDebtTokenAdaptorV2Calls)(nil), // 58: steward.v3.AaveDebtTokenAdaptorV2Calls - (*AaveV3ATokenAdaptorV1Calls)(nil), // 59: steward.v3.AaveV3ATokenAdaptorV1Calls - (*AaveV3DebtTokenAdaptorV1Calls)(nil), // 60: steward.v3.AaveV3DebtTokenAdaptorV1Calls - (*OneInchAdaptorV1Calls)(nil), // 61: steward.v3.OneInchAdaptorV1Calls - (*FeesAndReservesAdaptorV1Calls)(nil), // 62: steward.v3.FeesAndReservesAdaptorV1Calls - (*ZeroXAdaptorV1Calls)(nil), // 63: steward.v3.ZeroXAdaptorV1Calls - (*SwapWithUniswapAdaptorV1Calls)(nil), // 64: steward.v3.SwapWithUniswapAdaptorV1Calls - (*VestingSimpleAdaptorV2Calls)(nil), // 65: steward.v3.VestingSimpleAdaptorV2Calls - (*CellarAdaptorV1Calls)(nil), // 66: steward.v3.CellarAdaptorV1Calls - (*UniswapV3AdaptorV2Calls)(nil), // 67: steward.v3.UniswapV3AdaptorV2Calls - (*AaveV2EnableAssetAsCollateralAdaptorV1Calls)(nil), // 68: steward.v3.AaveV2EnableAssetAsCollateralAdaptorV1Calls - (*FTokenAdaptorV1Calls)(nil), // 69: steward.v3.FTokenAdaptorV1Calls - (*MorphoAaveV2ATokenAdaptorV1Calls)(nil), // 70: steward.v3.MorphoAaveV2ATokenAdaptorV1Calls - (*MorphoAaveV2DebtTokenAdaptorV1Calls)(nil), // 71: steward.v3.MorphoAaveV2DebtTokenAdaptorV1Calls - (*MorphoAaveV3ATokenCollateralAdaptorV1Calls)(nil), // 72: steward.v3.MorphoAaveV3ATokenCollateralAdaptorV1Calls - (*MorphoAaveV3ATokenP2PAdaptorV1Calls)(nil), // 73: steward.v3.MorphoAaveV3ATokenP2PAdaptorV1Calls - (*MorphoAaveV3DebtTokenAdaptorV1Calls)(nil), // 74: steward.v3.MorphoAaveV3DebtTokenAdaptorV1Calls - (*BalancerPoolAdaptorV1Calls)(nil), // 75: steward.v3.BalancerPoolAdaptorV1Calls + (*CellarV2_2_CachePriceRouter)(nil), // 33: steward.v3.CellarV2_2.CachePriceRouter + (*CellarV2_5_FunctionCall)(nil), // 34: steward.v3.CellarV2_5.FunctionCall + (*CellarV2_5_AddPosition)(nil), // 35: steward.v3.CellarV2_5.AddPosition + (*CellarV2_5_CallOnAdaptor)(nil), // 36: steward.v3.CellarV2_5.CallOnAdaptor + (*CellarV2_5_RemovePosition)(nil), // 37: steward.v3.CellarV2_5.RemovePosition + (*CellarV2_5_SetHoldingPosition)(nil), // 38: steward.v3.CellarV2_5.SetHoldingPosition + (*CellarV2_5_SetStrategistPayoutAddress)(nil), // 39: steward.v3.CellarV2_5.SetStrategistPayoutAddress + (*CellarV2_5_SwapPositions)(nil), // 40: steward.v3.CellarV2_5.SwapPositions + (*CellarV2_5_SetShareLockPeriod)(nil), // 41: steward.v3.CellarV2_5.SetShareLockPeriod + (*CellarV2_5_SetRebalanceDeviation)(nil), // 42: steward.v3.CellarV2_5.SetRebalanceDeviation + (*CellarV2_5_InitiateShutdown)(nil), // 43: steward.v3.CellarV2_5.InitiateShutdown + (*CellarV2_5_SetStrategistPlatformCut)(nil), // 44: steward.v3.CellarV2_5.SetStrategistPlatformCut + (*CellarV2_5_LiftShutdown)(nil), // 45: steward.v3.CellarV2_5.LiftShutdown + (*CellarV2_5_AddAdaptorToCatalogue)(nil), // 46: steward.v3.CellarV2_5.AddAdaptorToCatalogue + (*CellarV2_5_Multicall)(nil), // 47: steward.v3.CellarV2_5.Multicall + (*CellarV2_5_AddPositionToCatalogue)(nil), // 48: steward.v3.CellarV2_5.AddPositionToCatalogue + (*CellarV2_5_RemoveAdaptorFromCatalogue)(nil), // 49: steward.v3.CellarV2_5.RemoveAdaptorFromCatalogue + (*CellarV2_5_RemovePositionFromCatalogue)(nil), // 50: steward.v3.CellarV2_5.RemovePositionFromCatalogue + (*CellarV2_5_IncreaseShareSupplyCap)(nil), // 51: steward.v3.CellarV2_5.IncreaseShareSupplyCap + (*CellarV2_5_DecreaseShareSupplyCap)(nil), // 52: steward.v3.CellarV2_5.DecreaseShareSupplyCap + (*CellarV2_5_SetSharePriceOracle)(nil), // 53: steward.v3.CellarV2_5.SetSharePriceOracle + (*UniswapV3AdaptorV1Calls)(nil), // 54: steward.v3.UniswapV3AdaptorV1Calls + (*AaveATokenAdaptorV1Calls)(nil), // 55: steward.v3.AaveATokenAdaptorV1Calls + (*AaveDebtTokenAdaptorV1Calls)(nil), // 56: steward.v3.AaveDebtTokenAdaptorV1Calls + (*CompoundCTokenAdaptorV2Calls)(nil), // 57: steward.v3.CompoundCTokenAdaptorV2Calls + (*AaveATokenAdaptorV2Calls)(nil), // 58: steward.v3.AaveATokenAdaptorV2Calls + (*AaveDebtTokenAdaptorV2Calls)(nil), // 59: steward.v3.AaveDebtTokenAdaptorV2Calls + (*AaveV3ATokenAdaptorV1Calls)(nil), // 60: steward.v3.AaveV3ATokenAdaptorV1Calls + (*AaveV3DebtTokenAdaptorV1Calls)(nil), // 61: steward.v3.AaveV3DebtTokenAdaptorV1Calls + (*OneInchAdaptorV1Calls)(nil), // 62: steward.v3.OneInchAdaptorV1Calls + (*FeesAndReservesAdaptorV1Calls)(nil), // 63: steward.v3.FeesAndReservesAdaptorV1Calls + (*ZeroXAdaptorV1Calls)(nil), // 64: steward.v3.ZeroXAdaptorV1Calls + (*SwapWithUniswapAdaptorV1Calls)(nil), // 65: steward.v3.SwapWithUniswapAdaptorV1Calls + (*VestingSimpleAdaptorV2Calls)(nil), // 66: steward.v3.VestingSimpleAdaptorV2Calls + (*CellarAdaptorV1Calls)(nil), // 67: steward.v3.CellarAdaptorV1Calls + (*UniswapV3AdaptorV2Calls)(nil), // 68: steward.v3.UniswapV3AdaptorV2Calls + (*AaveV2EnableAssetAsCollateralAdaptorV1Calls)(nil), // 69: steward.v3.AaveV2EnableAssetAsCollateralAdaptorV1Calls + (*FTokenAdaptorV1Calls)(nil), // 70: steward.v3.FTokenAdaptorV1Calls + (*MorphoAaveV2ATokenAdaptorV1Calls)(nil), // 71: steward.v3.MorphoAaveV2ATokenAdaptorV1Calls + (*MorphoAaveV2DebtTokenAdaptorV1Calls)(nil), // 72: steward.v3.MorphoAaveV2DebtTokenAdaptorV1Calls + (*MorphoAaveV3ATokenCollateralAdaptorV1Calls)(nil), // 73: steward.v3.MorphoAaveV3ATokenCollateralAdaptorV1Calls + (*MorphoAaveV3ATokenP2PAdaptorV1Calls)(nil), // 74: steward.v3.MorphoAaveV3ATokenP2PAdaptorV1Calls + (*MorphoAaveV3DebtTokenAdaptorV1Calls)(nil), // 75: steward.v3.MorphoAaveV3DebtTokenAdaptorV1Calls + (*BalancerPoolAdaptorV1Calls)(nil), // 76: steward.v3.BalancerPoolAdaptorV1Calls } var file_cellar_v2_proto_depIdxs = []int32{ 4, // 0: steward.v3.CellarV2.add_position:type_name -> steward.v3.CellarV2.AddPosition @@ -4763,31 +4852,31 @@ var file_cellar_v2_proto_depIdxs = []int32{ 15, // 11: steward.v3.CellarV2.lift_shutdown:type_name -> steward.v3.CellarV2.LiftShutdown 16, // 12: steward.v3.CellarV2_2.function_call:type_name -> steward.v3.CellarV2_2.FunctionCall 29, // 13: steward.v3.CellarV2_2.multicall:type_name -> steward.v3.CellarV2_2.Multicall - 33, // 14: steward.v3.CellarV2_5.function_call:type_name -> steward.v3.CellarV2_5.FunctionCall - 46, // 15: steward.v3.CellarV2_5.multicall:type_name -> steward.v3.CellarV2_5.Multicall - 53, // 16: steward.v3.AdaptorCall.uniswap_v3_v1_calls:type_name -> steward.v3.UniswapV3AdaptorV1Calls - 54, // 17: steward.v3.AdaptorCall.aave_a_token_v1_calls:type_name -> steward.v3.AaveATokenAdaptorV1Calls - 55, // 18: steward.v3.AdaptorCall.aave_debt_token_v1_calls:type_name -> steward.v3.AaveDebtTokenAdaptorV1Calls - 56, // 19: steward.v3.AdaptorCall.compound_c_token_v2_calls:type_name -> steward.v3.CompoundCTokenAdaptorV2Calls - 57, // 20: steward.v3.AdaptorCall.aave_a_token_v2_calls:type_name -> steward.v3.AaveATokenAdaptorV2Calls - 58, // 21: steward.v3.AdaptorCall.aave_debt_token_v2_calls:type_name -> steward.v3.AaveDebtTokenAdaptorV2Calls - 59, // 22: steward.v3.AdaptorCall.aave_v3_a_token_v1_calls:type_name -> steward.v3.AaveV3ATokenAdaptorV1Calls - 60, // 23: steward.v3.AdaptorCall.aave_v3_debt_token_v1_calls:type_name -> steward.v3.AaveV3DebtTokenAdaptorV1Calls - 61, // 24: steward.v3.AdaptorCall.one_inch_v1_calls:type_name -> steward.v3.OneInchAdaptorV1Calls - 62, // 25: steward.v3.AdaptorCall.fees_and_reserves_v1_calls:type_name -> steward.v3.FeesAndReservesAdaptorV1Calls - 63, // 26: steward.v3.AdaptorCall.zero_x_v1_calls:type_name -> steward.v3.ZeroXAdaptorV1Calls - 64, // 27: steward.v3.AdaptorCall.swap_with_uniswap_v1_calls:type_name -> steward.v3.SwapWithUniswapAdaptorV1Calls - 65, // 28: steward.v3.AdaptorCall.vesting_simple_v2_calls:type_name -> steward.v3.VestingSimpleAdaptorV2Calls - 66, // 29: steward.v3.AdaptorCall.cellar_v1_calls:type_name -> steward.v3.CellarAdaptorV1Calls - 67, // 30: steward.v3.AdaptorCall.uniswap_v3_v2_calls:type_name -> steward.v3.UniswapV3AdaptorV2Calls - 68, // 31: steward.v3.AdaptorCall.aave_v2_enable_asset_as_collateral_v1_calls:type_name -> steward.v3.AaveV2EnableAssetAsCollateralAdaptorV1Calls - 69, // 32: steward.v3.AdaptorCall.f_token_v1_calls:type_name -> steward.v3.FTokenAdaptorV1Calls - 70, // 33: steward.v3.AdaptorCall.morpho_aave_v2_a_token_v1_calls:type_name -> steward.v3.MorphoAaveV2ATokenAdaptorV1Calls - 71, // 34: steward.v3.AdaptorCall.morpho_aave_v2_debt_token_v1_calls:type_name -> steward.v3.MorphoAaveV2DebtTokenAdaptorV1Calls - 72, // 35: steward.v3.AdaptorCall.morpho_aave_v3_a_token_collateral_v1_calls:type_name -> steward.v3.MorphoAaveV3ATokenCollateralAdaptorV1Calls - 73, // 36: steward.v3.AdaptorCall.morpho_aave_v3_a_token_p2p_v1_calls:type_name -> steward.v3.MorphoAaveV3ATokenP2PAdaptorV1Calls - 74, // 37: steward.v3.AdaptorCall.morpho_aave_v3_debt_token_v1_calls:type_name -> steward.v3.MorphoAaveV3DebtTokenAdaptorV1Calls - 75, // 38: steward.v3.AdaptorCall.balancer_pool_v1_calls:type_name -> steward.v3.BalancerPoolAdaptorV1Calls + 34, // 14: steward.v3.CellarV2_5.function_call:type_name -> steward.v3.CellarV2_5.FunctionCall + 47, // 15: steward.v3.CellarV2_5.multicall:type_name -> steward.v3.CellarV2_5.Multicall + 54, // 16: steward.v3.AdaptorCall.uniswap_v3_v1_calls:type_name -> steward.v3.UniswapV3AdaptorV1Calls + 55, // 17: steward.v3.AdaptorCall.aave_a_token_v1_calls:type_name -> steward.v3.AaveATokenAdaptorV1Calls + 56, // 18: steward.v3.AdaptorCall.aave_debt_token_v1_calls:type_name -> steward.v3.AaveDebtTokenAdaptorV1Calls + 57, // 19: steward.v3.AdaptorCall.compound_c_token_v2_calls:type_name -> steward.v3.CompoundCTokenAdaptorV2Calls + 58, // 20: steward.v3.AdaptorCall.aave_a_token_v2_calls:type_name -> steward.v3.AaveATokenAdaptorV2Calls + 59, // 21: steward.v3.AdaptorCall.aave_debt_token_v2_calls:type_name -> steward.v3.AaveDebtTokenAdaptorV2Calls + 60, // 22: steward.v3.AdaptorCall.aave_v3_a_token_v1_calls:type_name -> steward.v3.AaveV3ATokenAdaptorV1Calls + 61, // 23: steward.v3.AdaptorCall.aave_v3_debt_token_v1_calls:type_name -> steward.v3.AaveV3DebtTokenAdaptorV1Calls + 62, // 24: steward.v3.AdaptorCall.one_inch_v1_calls:type_name -> steward.v3.OneInchAdaptorV1Calls + 63, // 25: steward.v3.AdaptorCall.fees_and_reserves_v1_calls:type_name -> steward.v3.FeesAndReservesAdaptorV1Calls + 64, // 26: steward.v3.AdaptorCall.zero_x_v1_calls:type_name -> steward.v3.ZeroXAdaptorV1Calls + 65, // 27: steward.v3.AdaptorCall.swap_with_uniswap_v1_calls:type_name -> steward.v3.SwapWithUniswapAdaptorV1Calls + 66, // 28: steward.v3.AdaptorCall.vesting_simple_v2_calls:type_name -> steward.v3.VestingSimpleAdaptorV2Calls + 67, // 29: steward.v3.AdaptorCall.cellar_v1_calls:type_name -> steward.v3.CellarAdaptorV1Calls + 68, // 30: steward.v3.AdaptorCall.uniswap_v3_v2_calls:type_name -> steward.v3.UniswapV3AdaptorV2Calls + 69, // 31: steward.v3.AdaptorCall.aave_v2_enable_asset_as_collateral_v1_calls:type_name -> steward.v3.AaveV2EnableAssetAsCollateralAdaptorV1Calls + 70, // 32: steward.v3.AdaptorCall.f_token_v1_calls:type_name -> steward.v3.FTokenAdaptorV1Calls + 71, // 33: steward.v3.AdaptorCall.morpho_aave_v2_a_token_v1_calls:type_name -> steward.v3.MorphoAaveV2ATokenAdaptorV1Calls + 72, // 34: steward.v3.AdaptorCall.morpho_aave_v2_debt_token_v1_calls:type_name -> steward.v3.MorphoAaveV2DebtTokenAdaptorV1Calls + 73, // 35: steward.v3.AdaptorCall.morpho_aave_v3_a_token_collateral_v1_calls:type_name -> steward.v3.MorphoAaveV3ATokenCollateralAdaptorV1Calls + 74, // 36: steward.v3.AdaptorCall.morpho_aave_v3_a_token_p2p_v1_calls:type_name -> steward.v3.MorphoAaveV3ATokenP2PAdaptorV1Calls + 75, // 37: steward.v3.AdaptorCall.morpho_aave_v3_debt_token_v1_calls:type_name -> steward.v3.MorphoAaveV3DebtTokenAdaptorV1Calls + 76, // 38: steward.v3.AdaptorCall.balancer_pool_v1_calls:type_name -> steward.v3.BalancerPoolAdaptorV1Calls 3, // 39: steward.v3.CellarV2.CallOnAdaptor.data:type_name -> steward.v3.AdaptorCall 17, // 40: steward.v3.CellarV2_2.FunctionCall.add_position:type_name -> steward.v3.CellarV2_2.AddPosition 18, // 41: steward.v3.CellarV2_2.FunctionCall.call_on_adaptor:type_name -> steward.v3.CellarV2_2.CallOnAdaptor @@ -4804,33 +4893,34 @@ var file_cellar_v2_proto_depIdxs = []int32{ 30, // 52: steward.v3.CellarV2_2.FunctionCall.add_position_to_catalogue:type_name -> steward.v3.CellarV2_2.AddPositionToCatalogue 31, // 53: steward.v3.CellarV2_2.FunctionCall.remove_adaptor_from_catalogue:type_name -> steward.v3.CellarV2_2.RemoveAdaptorFromCatalogue 32, // 54: steward.v3.CellarV2_2.FunctionCall.remove_position_from_catalogue:type_name -> steward.v3.CellarV2_2.RemovePositionFromCatalogue - 3, // 55: steward.v3.CellarV2_2.CallOnAdaptor.data:type_name -> steward.v3.AdaptorCall - 16, // 56: steward.v3.CellarV2_2.Multicall.function_calls:type_name -> steward.v3.CellarV2_2.FunctionCall - 34, // 57: steward.v3.CellarV2_5.FunctionCall.add_position:type_name -> steward.v3.CellarV2_5.AddPosition - 35, // 58: steward.v3.CellarV2_5.FunctionCall.call_on_adaptor:type_name -> steward.v3.CellarV2_5.CallOnAdaptor - 36, // 59: steward.v3.CellarV2_5.FunctionCall.remove_position:type_name -> steward.v3.CellarV2_5.RemovePosition - 37, // 60: steward.v3.CellarV2_5.FunctionCall.set_holding_position:type_name -> steward.v3.CellarV2_5.SetHoldingPosition - 38, // 61: steward.v3.CellarV2_5.FunctionCall.set_strategist_payout_address:type_name -> steward.v3.CellarV2_5.SetStrategistPayoutAddress - 39, // 62: steward.v3.CellarV2_5.FunctionCall.swap_positions:type_name -> steward.v3.CellarV2_5.SwapPositions - 41, // 63: steward.v3.CellarV2_5.FunctionCall.set_rebalance_deviation:type_name -> steward.v3.CellarV2_5.SetRebalanceDeviation - 40, // 64: steward.v3.CellarV2_5.FunctionCall.set_share_lock_period:type_name -> steward.v3.CellarV2_5.SetShareLockPeriod - 42, // 65: steward.v3.CellarV2_5.FunctionCall.initiate_shutdown:type_name -> steward.v3.CellarV2_5.InitiateShutdown - 43, // 66: steward.v3.CellarV2_5.FunctionCall.set_strategist_platform_cut:type_name -> steward.v3.CellarV2_5.SetStrategistPlatformCut - 44, // 67: steward.v3.CellarV2_5.FunctionCall.lift_shutdown:type_name -> steward.v3.CellarV2_5.LiftShutdown - 45, // 68: steward.v3.CellarV2_5.FunctionCall.add_adaptor_to_catalogue:type_name -> steward.v3.CellarV2_5.AddAdaptorToCatalogue - 47, // 69: steward.v3.CellarV2_5.FunctionCall.add_position_to_catalogue:type_name -> steward.v3.CellarV2_5.AddPositionToCatalogue - 48, // 70: steward.v3.CellarV2_5.FunctionCall.remove_adaptor_from_catalogue:type_name -> steward.v3.CellarV2_5.RemoveAdaptorFromCatalogue - 49, // 71: steward.v3.CellarV2_5.FunctionCall.remove_position_from_catalogue:type_name -> steward.v3.CellarV2_5.RemovePositionFromCatalogue - 50, // 72: steward.v3.CellarV2_5.FunctionCall.increase_share_supply_cap:type_name -> steward.v3.CellarV2_5.IncreaseShareSupplyCap - 51, // 73: steward.v3.CellarV2_5.FunctionCall.decrease_share_supply_cap:type_name -> steward.v3.CellarV2_5.DecreaseShareSupplyCap - 52, // 74: steward.v3.CellarV2_5.FunctionCall.set_share_price_oracle:type_name -> steward.v3.CellarV2_5.SetSharePriceOracle - 3, // 75: steward.v3.CellarV2_5.CallOnAdaptor.data:type_name -> steward.v3.AdaptorCall - 33, // 76: steward.v3.CellarV2_5.Multicall.function_calls:type_name -> steward.v3.CellarV2_5.FunctionCall - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 33, // 55: steward.v3.CellarV2_2.FunctionCall.cache_price_router:type_name -> steward.v3.CellarV2_2.CachePriceRouter + 3, // 56: steward.v3.CellarV2_2.CallOnAdaptor.data:type_name -> steward.v3.AdaptorCall + 16, // 57: steward.v3.CellarV2_2.Multicall.function_calls:type_name -> steward.v3.CellarV2_2.FunctionCall + 35, // 58: steward.v3.CellarV2_5.FunctionCall.add_position:type_name -> steward.v3.CellarV2_5.AddPosition + 36, // 59: steward.v3.CellarV2_5.FunctionCall.call_on_adaptor:type_name -> steward.v3.CellarV2_5.CallOnAdaptor + 37, // 60: steward.v3.CellarV2_5.FunctionCall.remove_position:type_name -> steward.v3.CellarV2_5.RemovePosition + 38, // 61: steward.v3.CellarV2_5.FunctionCall.set_holding_position:type_name -> steward.v3.CellarV2_5.SetHoldingPosition + 39, // 62: steward.v3.CellarV2_5.FunctionCall.set_strategist_payout_address:type_name -> steward.v3.CellarV2_5.SetStrategistPayoutAddress + 40, // 63: steward.v3.CellarV2_5.FunctionCall.swap_positions:type_name -> steward.v3.CellarV2_5.SwapPositions + 42, // 64: steward.v3.CellarV2_5.FunctionCall.set_rebalance_deviation:type_name -> steward.v3.CellarV2_5.SetRebalanceDeviation + 41, // 65: steward.v3.CellarV2_5.FunctionCall.set_share_lock_period:type_name -> steward.v3.CellarV2_5.SetShareLockPeriod + 43, // 66: steward.v3.CellarV2_5.FunctionCall.initiate_shutdown:type_name -> steward.v3.CellarV2_5.InitiateShutdown + 44, // 67: steward.v3.CellarV2_5.FunctionCall.set_strategist_platform_cut:type_name -> steward.v3.CellarV2_5.SetStrategistPlatformCut + 45, // 68: steward.v3.CellarV2_5.FunctionCall.lift_shutdown:type_name -> steward.v3.CellarV2_5.LiftShutdown + 46, // 69: steward.v3.CellarV2_5.FunctionCall.add_adaptor_to_catalogue:type_name -> steward.v3.CellarV2_5.AddAdaptorToCatalogue + 48, // 70: steward.v3.CellarV2_5.FunctionCall.add_position_to_catalogue:type_name -> steward.v3.CellarV2_5.AddPositionToCatalogue + 49, // 71: steward.v3.CellarV2_5.FunctionCall.remove_adaptor_from_catalogue:type_name -> steward.v3.CellarV2_5.RemoveAdaptorFromCatalogue + 50, // 72: steward.v3.CellarV2_5.FunctionCall.remove_position_from_catalogue:type_name -> steward.v3.CellarV2_5.RemovePositionFromCatalogue + 51, // 73: steward.v3.CellarV2_5.FunctionCall.increase_share_supply_cap:type_name -> steward.v3.CellarV2_5.IncreaseShareSupplyCap + 52, // 74: steward.v3.CellarV2_5.FunctionCall.decrease_share_supply_cap:type_name -> steward.v3.CellarV2_5.DecreaseShareSupplyCap + 53, // 75: steward.v3.CellarV2_5.FunctionCall.set_share_price_oracle:type_name -> steward.v3.CellarV2_5.SetSharePriceOracle + 3, // 76: steward.v3.CellarV2_5.CallOnAdaptor.data:type_name -> steward.v3.AdaptorCall + 34, // 77: steward.v3.CellarV2_5.Multicall.function_calls:type_name -> steward.v3.CellarV2_5.FunctionCall + 78, // [78:78] is the sub-list for method output_type + 78, // [78:78] is the sub-list for method input_type + 78, // [78:78] is the sub-list for extension type_name + 78, // [78:78] is the sub-list for extension extendee + 0, // [0:78] is the sub-list for field type_name } func init() { file_cellar_v2_proto_init() } @@ -5256,7 +5346,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_FunctionCall); i { + switch v := v.(*CellarV2_2_CachePriceRouter); i { case 0: return &v.state case 1: @@ -5268,7 +5358,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_AddPosition); i { + switch v := v.(*CellarV2_5_FunctionCall); i { case 0: return &v.state case 1: @@ -5280,7 +5370,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_CallOnAdaptor); i { + switch v := v.(*CellarV2_5_AddPosition); i { case 0: return &v.state case 1: @@ -5292,7 +5382,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_RemovePosition); i { + switch v := v.(*CellarV2_5_CallOnAdaptor); i { case 0: return &v.state case 1: @@ -5304,7 +5394,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SetHoldingPosition); i { + switch v := v.(*CellarV2_5_RemovePosition); i { case 0: return &v.state case 1: @@ -5316,7 +5406,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SetStrategistPayoutAddress); i { + switch v := v.(*CellarV2_5_SetHoldingPosition); i { case 0: return &v.state case 1: @@ -5328,7 +5418,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SwapPositions); i { + switch v := v.(*CellarV2_5_SetStrategistPayoutAddress); i { case 0: return &v.state case 1: @@ -5340,7 +5430,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SetShareLockPeriod); i { + switch v := v.(*CellarV2_5_SwapPositions); i { case 0: return &v.state case 1: @@ -5352,7 +5442,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SetRebalanceDeviation); i { + switch v := v.(*CellarV2_5_SetShareLockPeriod); i { case 0: return &v.state case 1: @@ -5364,7 +5454,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_InitiateShutdown); i { + switch v := v.(*CellarV2_5_SetRebalanceDeviation); i { case 0: return &v.state case 1: @@ -5376,7 +5466,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_SetStrategistPlatformCut); i { + switch v := v.(*CellarV2_5_InitiateShutdown); i { case 0: return &v.state case 1: @@ -5388,7 +5478,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_LiftShutdown); i { + switch v := v.(*CellarV2_5_SetStrategistPlatformCut); i { case 0: return &v.state case 1: @@ -5400,7 +5490,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_AddAdaptorToCatalogue); i { + switch v := v.(*CellarV2_5_LiftShutdown); i { case 0: return &v.state case 1: @@ -5412,7 +5502,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_Multicall); i { + switch v := v.(*CellarV2_5_AddAdaptorToCatalogue); i { case 0: return &v.state case 1: @@ -5424,7 +5514,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_AddPositionToCatalogue); i { + switch v := v.(*CellarV2_5_Multicall); i { case 0: return &v.state case 1: @@ -5436,7 +5526,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_RemoveAdaptorFromCatalogue); i { + switch v := v.(*CellarV2_5_AddPositionToCatalogue); i { case 0: return &v.state case 1: @@ -5448,7 +5538,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_RemovePositionFromCatalogue); i { + switch v := v.(*CellarV2_5_RemoveAdaptorFromCatalogue); i { case 0: return &v.state case 1: @@ -5460,7 +5550,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_IncreaseShareSupplyCap); i { + switch v := v.(*CellarV2_5_RemovePositionFromCatalogue); i { case 0: return &v.state case 1: @@ -5472,7 +5562,7 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CellarV2_5_DecreaseShareSupplyCap); i { + switch v := v.(*CellarV2_5_IncreaseShareSupplyCap); i { case 0: return &v.state case 1: @@ -5484,6 +5574,18 @@ func file_cellar_v2_proto_init() { } } file_cellar_v2_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CellarV2_5_DecreaseShareSupplyCap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cellar_v2_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CellarV2_5_SetSharePriceOracle); i { case 0: return &v.state @@ -5559,8 +5661,9 @@ func file_cellar_v2_proto_init() { (*CellarV2_2_FunctionCall_AddPositionToCatalogue)(nil), (*CellarV2_2_FunctionCall_RemoveAdaptorFromCatalogue)(nil), (*CellarV2_2_FunctionCall_RemovePositionFromCatalogue)(nil), + (*CellarV2_2_FunctionCall_CachePriceRouter)(nil), } - file_cellar_v2_proto_msgTypes[33].OneofWrappers = []interface{}{ + file_cellar_v2_proto_msgTypes[34].OneofWrappers = []interface{}{ (*CellarV2_5_FunctionCall_AddPosition)(nil), (*CellarV2_5_FunctionCall_CallOnAdaptor)(nil), (*CellarV2_5_FunctionCall_RemovePosition)(nil), @@ -5586,7 +5689,7 @@ func file_cellar_v2_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cellar_v2_proto_rawDesc, NumEnums: 0, - NumMessages: 53, + NumMessages: 54, NumExtensions: 0, NumServices: 0, }, diff --git a/steward_proto_rust/Cargo.toml b/steward_proto_rust/Cargo.toml index a0926cd3..3f408968 100644 --- a/steward_proto_rust/Cargo.toml +++ b/steward_proto_rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "steward_proto" -version = "3.4.2" +version = "3.4.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/steward_proto_rust/src/prost/descriptor.bin b/steward_proto_rust/src/prost/descriptor.bin index 1f06a6f5c10368a12c6d092d307a2f35d91ac362..368d8971a13f5fe03c0002f72aa8a13304314a5b 100644 GIT binary patch delta 7774 zcmb7JYjjmbmZn}ehm)JvfjkJWO9(F|B!LjaGa&MCv=I=rS*sNTT!k@Bl!UgiXF4z~ zh&-e*Lh%q7hQ-RtL|`%uWRT`Hv<vPrKfn ziaGP*vtC*_e@=YX!m33z@r60*`phzxt8cDmDi4EGXl$Apn$%%hx^ZZSH4l1=CCl2} z`EL3+;%YbK4FvzZ_?#DK)l}6~RL-iXu8!AK=dc*-?|_I#rqjS!gM0nlw2I2gs#hvz zS0a~+1uw*NIHsmdOHIJj2z@x&?KlU}teV9y#q)0DxbC=k^N%*LFEZWc!^}K-IyCnwT~W%iYk!b` z|JhYlm9Zb@IWV?p{(_p~(%4^THQ+hdO>>ic+KA!p76Ocb?u8*B2pC-Ae!^S{ALd1F zG9kZX`qEYQ`y2r9xXGf~Ziz{i@eZE6#WdT`2Iyx_vuMdJ=A>FW3}W^zmex50z<-Nn z=eWbIJ0`R;U3`rV(JiN$Q_|Yror1NpwA_R{gL^CM-oqVh-MJ_4FnxAED=qgI$v9Vp zIVlMz4wgGCH5LM3xx;$ryHhO->~Hnb|7K5?e#@L_Vjfm6zhx<5ctH~>e7#>C?nUl1 zxs=yUeY2Z>?>hTcEfW;&K8tp7Qw=$%0xjWAU&{(x8X!Fcuq#V=MzAZG0g5HOd#`W? z;x6I&ecU~MT;WAlaJh!7+^x)wO^g4u>Sys-&AfO_59-RRb>UYm4_ig)ui(*K_aT#s zpiEYBJ^w3KGy@JLJ9I;s5Ma#Pz!Uoq z0K6NB_f^BIyvQ~#|B>sL-(w5rq__$vR>5Z*kM_0oSH!)YJHaNx#*xsFr-Pqopirq-=Gpsv4 zirrkl^BXpK6cZ8iLF^8<3ji2)huZ}J47;hUFPH@{j^>F zkxrsj9^g)JU}0m40D_VNfX4xzmTi{^01*!G+^%jTHz6D^a+J&C&4WH-53uP+d9;@$ zcZmELcY?zY8{_~2asVJd#?ylE06>0>_l&u#{LiDKCr@!brj;$vWuhZypW@MO?i>D~ z>qS1`@*LNfTiH^4B`(H4;L&`y*i_G@_-DCZe49O>(>`X-;ImjKF^~$uJ%Jmy~t%QKf^&=!dGhl`I=@GIQu zYU>6Yiw6)a9soG6gb4sZ0#_)3Uzh|^yvQ{!Z|FVe*{d&HF)qujm;s&8?`3SDQO}PQ0?RVqvVNDz>PaZtZ^YSS1bC#LR0a z=D&7g^B0)e3*#@$udZ3Rcu=gaVpvY?4_`U|@27x&Z)G6;H3A=n-$yfO!E1$+pIaPz zdR`oz#N=mQ7$ytzPKs4j>u%pLrF7m<6sqI3HDtx+#(y>+b&Ji8*Sr#s zFNjrD&W%+pm>XLVf5q0YI!uotJp>Cj5W!9Kv>x_^0zi7}M6WzI>T-$3zFu_r2gTfE zS4hfqy>L7n4=K6RyMq_mAmkRIOc&q|Ep>x%JK+k!IMs5ae)AF=Qm|1to&7nc92-Su zUSJ~HM$xCQJHohtV6*=7B{r&fvv4x(97=Js@VW*jTsDgyJ>7}qB9O#3A>S9e`~)i> z1sk)s30yYmC@)M06SfQIx1yt2qCqfayGYG)r~6YV(;Xr@pzhaC{K`2{>?X65R)d0Nk5I@nH9Hn*jRlKAgi-Y`jUJ zBNEsr&`|>hYQg(NpD`f-hJ9k(c(>FtxOiX)ee4t~qy(f+|09#7`{^_X9Mq=wi!R~z zxZv0?20WNJ2xz^{B05IL{)Oe}_wGQCtokGL2(Yl2)RCJ--tYu%GFY0$sB$9(s1#98 z9u#`df3m+Z$0>@n92975K^{>s92C7rh5#52it@4UlXfjBo;;+de8Fav9cq7^Qs8)~ z{c%cx;~_EeQS-Q_(5aq0ETWI+PN0usV&W*JA_d@3q4x7i1=C^Ce?ka=>9Bb8vBXh= zd_1Z@{gQRnzx$sLlu@GHqD^;p;mS+~{Tw=+6kNUJL;GGs0?30x+RP7hPi`OIq4H(sk7m z^l~!~jxE&7sXG#Y>*|~cRi=Ru{+zHX(*R&OC#=de09eimt1=0I{h`jh4wd;~&?pTI z#}9=SPX?fg6yB&zF3^lF3i+uBROTBmUZk6a9^)9K+FTM=Um6?t836xXX8;_aOTy|) z10dohVfCc}5b=@-^d*PPjeH^Gb$Yz$SXaK36lMR6FX&<>Er|&f^{Srt6&qG^HLRsC zA+Ls;;7iD>v>XBbFr;N_|a%o>KW&*NWF0Fht0Aehcc-;;%g@{mzS4iFEYgSmYqP-^_^cC$r z>CLl(JV`kc6%P7JssHY4_SDdo(mv)44$qY`aYlW`xKg5eq!_t?Vth-=x1~{x&%nm~ zx1?2!FlkkF(kez{V^skB_m~0TQ75fpGyrm|lYwI7cz#9Rk#d`CF8qk~W-|f6;~i;* zBTS01Ra)U_Y{UQ%#PEgVR%wN!nSmHvWgr~6KqK3w%Uju+PP=5F7`cFAd{@f7`VXya zMaH|*N=4ulagYA_Z8l`^o-mFt68D64_C?|zsxyg1F3_nCNFx&U=sPTueLw~pkqc%SQk~2wy&)4-4nZ$MaM;BOkede7qv%=lb4vY~#!;(&|Rw zl>TR7`o3-i5ODjt@v|^}UpIb6>Hodi6v)QwQhtT)|7qQ=nb|t>7gjOzdRQT&)NX|7 z`@#!A5W*K;H^TIN;dO)3_d|GIq*cm0i4gyT5Kp&;Av{{e?JxvvYyyBF1OU|Zb{GNx zHsLmfFh8^vsgjqDC=PfTS~B3CmY1?$rD8(@6S=QaP$=UK1uo?^ zN>|-u69%tQPRvfCQmj$EN&^!Z>IF6Cp~M-2hK^>xY_r(b@BjnZRR*>vlk92hraf#-UKJpKAY z{AlHjq59@)zL;e`WVV5m3c`S|w*{w$q*d<`He*siT8%EZ;h}#v=>ogE~$61p8%VL(SFEZ{HVYIt-CH=ES z^(YKXFl|xzkHxPvw9i)MOrT2V>*1W|7r_jYAlb83^&MkfN%U-05KiSL2{e-J$|=^z zUS%c2{dFf}-N5`G4Fo5_vt4z2(E5|y*{%i^+0YO>I})K|g69{&3_?@K*%5}0!gU9Q z_SX-Uvs1q;__%_d;Z{)#*{Sk_DwD$5sYZ`+N1JS+Z+7V`f{!WKrSKH+^Q8{3OLZR@ zm~h#p3XARTLdewX$&ybfs1Lsuy3y;yuZ8qWy(%rk3zIem>ZL&+m;A>?4ay0=DAFzs zs$`apLdvB<&7N!50^QPxxrx0TFc@Z#AgPu{)xE&Fl4faCMT4Q1D4GW?uAIraW#&86 zmlW?+1faj2?ZJ7s8Zap^;k;Wt_9I*VPLScsneOjAT%)?>mn>CRMsR#E5Nui}knB|h zCtH$EAla*?K8aspD1*)rrmCg}F5flpYvOwjF9)23UxEC}-U%SqO!lX#aRV1a)Y z{P%||$%6lWT8V!NWJ8K8r<^W+fJzv}Rt Gef|%_YLcJ; delta 6985 zcmYjWdvsRSm1m#Fm&?tU*9{>M2ni5gLLe_gAUvzQ>J+Vrow2sX&QM()t!u`%E_Gap z$V1*KhEpbnKv_&0BLfs|a8_kBWno9kOKmL;qK*w_{-6+uS%pQ!2ZAJ94mY$|^`X z5*)j!aEL$CIf_7CHa|Q{cT`>`FC#Th!0|F=7RLY_FVpZ6|C`Pc_7~=pqqLy<3-Xew zahR|Af->TWk_U3c=CB?jNc51pMdrkLYFa{)BlS>npr2`p1=r&%@Bvu!`sndiDl zVP!b=6(U*SPqdjx&SaG^FLzN{Exy`iStU}-0ss!HL~2<8Anq!GWx3xmV8CkAbb|iA zYPCoe2~%cVq>2Opj;jTV^kchcRFL?YQ1xc)d-O!k&qQ*FKiv{4PU$7H`#qX@`%7^q zfI;|@NUbvf5Wd8OPg_DABwiM3t1#=j>0citsWJX#ksRrYu9>${c+slC#ufw+Z9xF= zXcSp_uEqcmp-~JN=r6Gm5w*0)M=7#DErIdVWKrrhrxuGHdD0z{PCo&A`QMVTOf{0eievm_={W ze9Iuf&>AmCLhu%Bjh6!e7+Se{58Jt=1&Mt^y>3qYfqroRK3pUkp({NE{LBI8MV;o4WrY-;`dV zhq3*AupJS}62IJ*&FA>Xgn9J}-DZAtlDvvzacq3V=wor!0U-77hcB=@|T>NDlB#m_af~oEGX6WU#{QolW^>>YwSEg{R}mCpq}X!W-o31{;$H5KSHc zI6saP0DuHO<^-Ox31kF`vqF7tGCJt#htG;+o~vsHQ=b!Fxub@S1_K~!FaXeC&WW7D zcm!gd6GO(u0AigJ6UzLCa6*|u;-XNO%!Lm6_xmr3?D+bpgRzGxSrMTE13#Ic^MhinTHr6q#^YD~A;M zbJ#^9i;YsX$?z(F_fzsGZj{)w**FgP%30P)@7J=gT}z9AuTEz6_wNgbaH5-Ja*TOy zH_e&Omp4Y)-2^mj0TzJUCOM!a;<1(5Bu9<*?{PdBP;ct~m+q~umuR686X#zq3&z9% zW>7E3mHM-sBRZXt$q8m@e^HZ4Kwvuq4VybBz~wh`&}}Im?srC(j`!y~9@tyV#?R=U z>MauOE=quJ$Sty{G6r~{te)uK>l|^E8f0>wDPBVPn@>`f*>i}7oA3RFyei<~rOqiR zFg3_gccz#Wm>T4qxwdKZ2<)#$X|mp-`O~b4Ni_B@247)~vS4(IL4%=DjveREcDcZ# zNhYV6auS@2GLQd?hL}a2l&l0E_Eo0ltEx#3o0MWofT>ANnd;x=n9>5Z-86O5H!8RH zE=L+1x67iclw%qkx66q&_F2Z%UZ8fEqBD4w?T~1|Q5`)v?vRD!V*rjjWO;@EcP=72 z_fE6^49&0HDbbQ6$G&jfDM!qR0XXiIcg*suoukj!Y}Q$-scPoU8#!`wZQwSMAb4F)s`ahh5G*$iNcE1% z`WyW@IKXX(bp~*5PH)MS&QMbJ~&O3T2{ zvG(2!+@#v0d%!w?p`GsmmK+SANgb5tpO4aHlW`vFdr&&zVL!tCpmf5+0&qVlo$z1) z_91CLJxX7nYE2|?NV>Z{>l%h{29TB)gnr$cOZj=Eg%Fq#)A=DThaT!95 z(ZTD$8be5EjL)PxBh9$?=+VvHln6fK-o`=$A33j1Y4*HFHRc{j%Bs#dyHIX)#%mnP zjZWrfxgjLv#(Al_%-U{x>i+Y5e8UP`opC`roq=)o837=CMpyvzx*(m-umB2rK{}lw zBy`4?QuRpI8P5h^^6Ig|zz0tGsx(`FL&Hq+G9|07#=N1%A#hXk2Fs78=ZnoqbbUp<#L;r)zG;3lge~oAH8#D&r;> zja7z_P#G^MwLU;u15;r2mOl6v6<%QIQG}5-Mb?Qrj`zlnQw)XRC7h1K&A;ZKm}KRhDmy!-mRZ zn@X)@s64hQECVYKA#suY(qvtwNAiEEBFP~nB*$*0_99#?IezjWaHO?6p0*Vpdz2F% z_-uD5fN0vG@YoZ_4~54bj?cnFNC=PpO8u8InH}`R64;2aUpf5&ljrq@a{9yC=rRDJ zE)(jHHhX0F{12MfyWX=#RIR`YmR+8b5H%eDu-BpM1jpz_IxhJ^vki z2f^FQ$r6~HL%VX%d23^F0YtM5Wl6ho&v`onA=?#ptCb}}LYBO%)bEw~_!O;2A^A>x zSEY`+RVRnzLWb%DKolZWCx_!ghU(-n7t*Q|A)!v*SLzR@{3iW;;rq&|5#XHu2XXqL z8UYY-hic@5IQ>wKe8A~HYZoaeNSspYwCU=>EkCJ;9$I)RE>8~ge-!5q8|48I@dLnY zKZS9a}81xt8$^ZcUMXpTPM|1gRxuneg zTQt7vQg2W0f0tCMHDe$=FDbOg&X)ifc-Ry)C@yuBr6Ewz}}1yQcE``!(#sqU(lIuV`%!{Dj69us#F`+8YY;@J>q$ zt4Em$BxY6g@TRbX>~Cy6s<<*Tk!z2FQki9a(5Y`JueM;KIq?+ki?LGp=GC84(wrvY zSKw2z^W$pVQbVgF6EwHfq{;qVO9N}E_GT7L4r#VZkzwWu(Z3AnaOc8BSgK2=M5gtb zKEt198F2QOY3~m6FHh1mb3_Qg3}%TN%PMJ^9x*L4;kr!E{F<9LHqLVG)v~@R;TaTF zz>M-{d9+-o@@8?gTqAGRx{?*)O3r&yD(_)s0HTyx5v`0I^ zx+zkkUn#Iqj7!1y)r)#~t;?Hb(TjT8bQc_=XpLE<#JsXK+8g1<@b$AskDM8qa9N}8 zoP|dt=Zl+Uo%U`wpL`8J7F|?gOc~5VH1@%}HF$^e!a(OVXm4@B+;Afe@i9uWBb8%hpzliWWsfaUi5tzEf0EKdkf7&eZ>TG z_Yz7o>wOWF0*gZD!GEV7cenG;ga1x_?|sg{KkIvBTVZbbVqisc?AITD&2h^8;n&P5 phbKNCT3vh7qZ9vVx)@djAUd)6aBk7VC%K^caBgYal`gtQ{68~q+4BGZ diff --git a/steward_proto_rust/src/prost/steward.v3.rs b/steward_proto_rust/src/prost/steward.v3.rs index 1d172094..afb6bfe9 100644 --- a/steward_proto_rust/src/prost/steward.v3.rs +++ b/steward_proto_rust/src/prost/steward.v3.rs @@ -2506,7 +2506,7 @@ pub mod cellar_v2_2 { pub struct FunctionCall { #[prost( oneof = "function_call::Function", - tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" + tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16" )] pub function: ::core::option::Option, } @@ -2559,6 +2559,9 @@ pub mod cellar_v2_2 { /// Represents function `removePositionFromCatalogue(uint32 positionId)` #[prost(message, tag = "15")] RemovePositionFromCatalogue(super::RemovePositionFromCatalogue), + /// Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` + #[prost(message, tag = "16")] + CachePriceRouter(super::CachePriceRouter), } } /// @@ -2723,6 +2726,19 @@ pub mod cellar_v2_2 { #[prost(uint32, tag = "1")] pub position_id: u32, } + /// + /// Updates the cellar to use the latest price router in the registry. + /// + /// Represents function `cachePriceRouter(bool checkTotalAssets, uint16 allowableRange)` + #[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq, ::prost::Message)] + pub struct CachePriceRouter { + /// Whether to check the total assets of the cellar + #[prost(bool, tag = "1")] + pub check_total_assets: bool, + /// The allowable range of the cellar's total assets to deviate between old and new routers + #[prost(uint32, tag = "2")] + pub allowable_range: u32, + } #[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq, ::prost::Oneof)] pub enum CallType { /// Represents a single function call