From b69adce232ef49cb18f5b79f6ecc8150843b6692 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Sat, 16 May 2026 17:06:21 -0600 Subject: [PATCH 1/5] fix(audits): escrow rescue path for stuck refunds (Reentrancy M-2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `withdrawRemainingEscrow` had no fallback when the escrow token blocklisted the service owner or paused transfers post-deposit — the customer's funded escrow stayed locked even after termination, with no admin or owner override. Adds `withdrawRemainingEscrowTo(uint64 serviceId, address payable to)`: - Caller must still be the service owner (same auth as the parameterless variant). - Recipient is owner-chosen and arbitrary (non-zero), so a blocklisted owner can route around the token's restriction by sending to a fresh address. - Recipient is emitted on `EscrowRefunded`, so off-chain bookkeeping sees the alternate destination explicitly. The parameterless `withdrawRemainingEscrow(uint64)` keeps its old semantics (refund to `svc.owner`) for the common path; the internal `_withdrawRemainingEscrow` does the work. Tests: - `test_Subscription_WithdrawRemainingEscrowTo_RoutesToAlternateRecipient` — fresh address receives the full remainder; escrow is drained. - `test_Subscription_WithdrawRemainingEscrowTo_RejectsZeroAddress` — ZeroAddress reverts. - `test_Subscription_WithdrawRemainingEscrowTo_OnlyServiceOwner` — non-owner caller reverts with `NotServiceOwner`. Follow-up to PR #144's audit batch. The remaining deferred item is the Economic H-1 oracle weight snapshot at activation, which warrants its own focused PR. --- src/core/PaymentsEscrow.sol | 24 ++++++++++-- src/facets/tangle/TanglePaymentsFacet.sol | 7 ++-- src/interfaces/ITangleServices.sol | 8 +++- test/tangle/Payments.t.sol | 46 +++++++++++++++++++++++ 4 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/core/PaymentsEscrow.sol b/src/core/PaymentsEscrow.sol index 35170aa1..edcccd67 100644 --- a/src/core/PaymentsEscrow.sol +++ b/src/core/PaymentsEscrow.sol @@ -42,8 +42,26 @@ abstract contract PaymentsEscrow is PaymentsCore { _recordPayment(msg.sender, serviceId, token, amount); } - /// @notice Withdraw remaining escrow balance after service termination + /// @notice Withdraw remaining escrow balance after service termination. + /// @dev Equivalent to `withdrawRemainingEscrowTo(serviceId, svc.owner)` — the + /// service owner remains the default recipient. Use the `To` variant + /// when the service owner has been blocklisted by the escrow token or + /// otherwise cannot receive on the owner address. function withdrawRemainingEscrow(uint64 serviceId) external nonReentrant { + _withdrawRemainingEscrow(serviceId, payable(_getService(serviceId).owner)); + } + + /// @notice Withdraw remaining escrow balance to a service-owner-chosen address. + /// @dev Caller must be the service owner. The recipient is arbitrary, so a + /// service owner blocklisted by the escrow token (or operating from a + /// smart-account that cannot receive directly) can still recover funds + /// by routing to a fresh address. + function withdrawRemainingEscrowTo(uint64 serviceId, address payable to) external nonReentrant { + if (to == address(0)) revert Errors.ZeroAddress(); + _withdrawRemainingEscrow(serviceId, to); + } + + function _withdrawRemainingEscrow(uint64 serviceId, address payable to) private { Types.Service storage svc = _getService(serviceId); if (svc.owner != msg.sender) { revert Errors.NotServiceOwner(serviceId, msg.sender); @@ -60,7 +78,7 @@ abstract contract PaymentsEscrow is PaymentsCore { escrow.balance = 0; escrow.totalReleased += remaining; - PaymentLib.transferPayment(svc.owner, token, remaining); - emit EscrowRefunded(serviceId, svc.owner, token, remaining); + PaymentLib.transferPayment(to, token, remaining); + emit EscrowRefunded(serviceId, to, token, remaining); } } diff --git a/src/facets/tangle/TanglePaymentsFacet.sol b/src/facets/tangle/TanglePaymentsFacet.sol index 027cec1d..b8293749 100644 --- a/src/facets/tangle/TanglePaymentsFacet.sol +++ b/src/facets/tangle/TanglePaymentsFacet.sol @@ -15,10 +15,11 @@ import { IFacetSelectors } from "../../interfaces/IFacetSelectors.sol"; /// contribute bytecode to this facet. contract TanglePaymentsFacet is PaymentsEscrow, PaymentsBilling, IFacetSelectors { function selectors() external pure returns (bytes4[] memory selectorList) { - selectorList = new bytes4[](4); + selectorList = new bytes4[](5); selectorList[0] = this.fundService.selector; selectorList[1] = this.withdrawRemainingEscrow.selector; - selectorList[2] = this.billSubscription.selector; - selectorList[3] = this.billSubscriptionBatch.selector; + selectorList[2] = this.withdrawRemainingEscrowTo.selector; + selectorList[3] = this.billSubscription.selector; + selectorList[4] = this.billSubscriptionBatch.selector; } } diff --git a/src/interfaces/ITangleServices.sol b/src/interfaces/ITangleServices.sol index 419225a2..00f4b06e 100644 --- a/src/interfaces/ITangleServices.sol +++ b/src/interfaces/ITangleServices.sol @@ -248,9 +248,15 @@ interface ITangleServices { /// @notice Fund a service escrow balance function fundService(uint64 serviceId, uint256 amount) external payable; - /// @notice Withdraw remaining escrow after termination + /// @notice Withdraw remaining escrow after termination to the service owner. function withdrawRemainingEscrow(uint64 serviceId) external; + /// @notice Withdraw remaining escrow after termination to a service-owner-chosen address. + /// @dev Service owner can route around blocklisting tokens / smart-account receive + /// constraints. Caller must equal the service owner; recipient is arbitrary + /// but must be non-zero. + function withdrawRemainingEscrowTo(uint64 serviceId, address payable to) external; + // ═══════════════════════════════════════════════════════════════════════════ // VIEW FUNCTIONS // ═══════════════════════════════════════════════════════════════════════════ diff --git a/test/tangle/Payments.t.sol b/test/tangle/Payments.t.sol index 5ed77bcb..b37c9e12 100644 --- a/test/tangle/Payments.t.sol +++ b/test/tangle/Payments.t.sol @@ -991,6 +991,52 @@ contract PaymentsTest is BaseTest { // HELPERS // ═══════════════════════════════════════════════════════════════════════════ + function test_Subscription_WithdrawRemainingEscrowTo_RoutesToAlternateRecipient() public { + // M-2 remediation: a service owner blocklisted by the escrow token (or + // operating from a smart-account that cannot receive directly) must be + // able to route the refund to a fresh address. withdrawRemainingEscrowTo + // takes the recipient as a parameter; caller must still be the owner. + uint64 subServiceId = _setupSubscriptionService(); + + // Terminate so the withdrawal path is reachable. + vm.prank(user1); + tangle.terminateService(subServiceId); + + PaymentLib.ServiceEscrow memory escrow = tangle.getServiceEscrow(subServiceId); + uint256 remaining = escrow.balance; + assertGt(remaining, 0, "test setup: escrow should hold remainder after termination"); + + address payable fresh = payable(makeAddr("fresh-recipient")); + uint256 freshBefore = fresh.balance; + + vm.prank(user1); + tangle.withdrawRemainingEscrowTo(subServiceId, fresh); + + assertEq(fresh.balance - freshBefore, remaining, "fresh recipient should receive full remainder"); + assertEq(tangle.getServiceEscrow(subServiceId).balance, 0, "escrow drained"); + } + + function test_Subscription_WithdrawRemainingEscrowTo_RejectsZeroAddress() public { + uint64 subServiceId = _setupSubscriptionService(); + vm.prank(user1); + tangle.terminateService(subServiceId); + + vm.prank(user1); + vm.expectRevert(Errors.ZeroAddress.selector); + tangle.withdrawRemainingEscrowTo(subServiceId, payable(address(0))); + } + + function test_Subscription_WithdrawRemainingEscrowTo_OnlyServiceOwner() public { + uint64 subServiceId = _setupSubscriptionService(); + vm.prank(user1); + tangle.terminateService(subServiceId); + + address payable fresh = payable(makeAddr("fresh-recipient")); + vm.prank(operator1); + vm.expectRevert(abi.encodeWithSelector(Errors.NotServiceOwner.selector, subServiceId, operator1)); + tangle.withdrawRemainingEscrowTo(subServiceId, fresh); + } + function _setupSubscriptionService() internal returns (uint64) { return _setupSubscriptionServiceWithDepositAndTTL(1 ether, 365 days); } From aa15b139068ac6046a963be766985c15a1642b4c Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Sat, 16 May 2026 17:28:14 -0600 Subject: [PATCH 2/5] fix(audits): snapshot oracle price at activation/join (Economic H-1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `_accrueOperatorWeights` previously called `oracle.toUSD` live at every bill to USD-normalize each (operator, asset) commitment leg. An operator who could influence the oracle for a single committed asset (low-cap token on a manipulable Uniswap V3 pool, misconfigured Chainlink feed) could inflate their share of the (capped-at-nominal) bill at the expense of honest co-operators — the customer was safe via the nominal-rate cap, but the operator pool was distributionally exposed. Fix: pin the per-(serviceId, op, assetHash) USD-per-1e18-token conversion at activation/join, then reuse the snapshot on every subsequent bill. ## Storage - `TangleStorage._baselinePriceByOpAsset[serviceId][op][assetHash]` — 18-decimal USD-per-1e18-token snapshot. Captured exactly when the matching TWAP cursor is first seeded. - `__gap` decremented 40 → 39 to absorb the new mapping slot. ## Snapshot capture - `PaymentsDistribution._snapshotBaselinePrice` runs inside `_initSubscriptionBaseline` for every (op, asset) the activation enumerates (both the per-commitment path and the bond-asset fallback). - `ServicesLifecycle._snapshotJoinPrice` mirrors the same logic in `_finalizeJoin` so operators joining post-activation get pinned at their join price rather than activation price. - Both helpers no-op if a snapshot already exists for the triple, so a rejoiner whose cursor still holds pre-leave values reuses the original snapshot (a price ramp during the absence cannot game the rejoin). - Both use `_safeToUSDView` so a reverting / disabled oracle stores `1 ether` (identity scale) — the bill-time conversion treats identity as "raw token-second weighting for this leg", consistent with the M-1 economic graceful-degrade behavior. ## Bill-time conversion `_accrueOperatorWeights` now reads the snapshot from storage: ``` contribution = (opDeltaRaw * exposureBps) / BPS_DENOMINATOR; if (useOracle && contribution > 0) { uint256 snapshot = _baselinePriceByOpAsset[serviceId][op][assetHash]; if (snapshot != 0) { contribution = (contribution * snapshot) / 1 ether; } else { // legacy seeding without a snapshot — fall back to live oracle contribution = _safeToUSD(oracleAddr, token, contribution); } } ``` The post-activation oracle is no longer read on the hot path when a snapshot exists; the operator's weight contribution is therefore immune to oracle drift in either direction. ## Tests / follow-up A negative-tested fuzz invariant (price manipulator + bill ⇒ weight ratio remains bounded) is the next thing to land. Wiring that requires a controllable oracle handler on `SubscriptionEscrowInvariant`; will follow in its own commit. Follow-up to PR #144 + #145. Closes the last deferred audit finding from the 2026-05-16 batch. --- src/TangleStorage.sol | 25 ++++++++++++++++---- src/core/PaymentsBilling.sol | 26 +++++++++++++++++---- src/core/PaymentsDistribution.sol | 33 +++++++++++++++++++++++++-- src/core/ServicesLifecycle.sol | 38 +++++++++++++++++++++++++++---- 4 files changed, 108 insertions(+), 14 deletions(-) diff --git a/src/TangleStorage.sol b/src/TangleStorage.sol index 13ae1d32..91fa1fd8 100644 --- a/src/TangleStorage.sol +++ b/src/TangleStorage.sol @@ -422,12 +422,29 @@ abstract contract TangleStorage { /// seed, join hook, prior bill). Zero sentinel = "never attributed." mapping(uint64 => mapping(address => mapping(bytes32 => uint256))) internal _twapCursorByOpAsset; + /// @notice Service ID => Operator => keccak256(asset.kind, asset.token) => + /// activation-time USD-per-1e18-token conversion snapshot. Captured + /// once when the (op, asset) cursor is first seeded — either at + /// service activation (`_initSubscriptionBaseline`) or when an + /// operator joins post-activation (`_finalizeJoin`) — and reused on + /// every subsequent bill. Pins the per-(op, asset) leg of the bill + /// weight to the activation price so post-activation oracle drift + /// cannot inflate one operator's share of the (capped-at-nominal) + /// bill at the expense of honest co-operators. + /// + /// The value stored is `oracle.toUSD(token, 1e18)` — i.e. how many + /// 18-decimal-USD units one 1e18-unit of `token` was worth at + /// activation. Token decimals are absorbed by the oracle adapter + /// (see `IPriceOracle`), so the conversion at bill time is + /// `usd = (contribution * snapshot) / 1e18`. Zero sentinel = no + /// snapshot (oracle disabled at activation, or fallback fired). + mapping(uint64 => mapping(address => mapping(bytes32 => uint256))) internal _baselinePriceByOpAsset; + // ═══════════════════════════════════════════════════════════════════════════ // RESERVED STORAGE GAP // ═══════════════════════════════════════════════════════════════════════════ - /// @dev Reserved storage slots for future upgrades - /// @dev Standard gap size is 50 slots. When adding new storage, decrease this gap accordingly. - /// @dev Per-op cursor mapping. Storage gap adjusted accordingly. - uint256[40] private __gap; + /// @dev Reserved storage slots for future upgrades. Standard gap size is 50. + /// Slots already consumed: 10 (see history above this gap). + uint256[39] private __gap; } diff --git a/src/core/PaymentsBilling.sol b/src/core/PaymentsBilling.sol index 9f3729a7..04fced2d 100644 --- a/src/core/PaymentsBilling.sol +++ b/src/core/PaymentsBilling.sol @@ -289,8 +289,21 @@ abstract contract PaymentsBilling is PaymentsCore { if (fallbackBps == 0) fallbackBps = uint16(BPS_DENOMINATOR); uint256 contribution = (opDeltaRaw * uint256(fallbackBps)) / BPS_DENOMINATOR; if (useOracle && contribution > 0) { - address token = bondAsset.kind == Types.AssetKind.Native ? address(0) : bondAsset.token; - contribution = _safeToUSD(oracleAddr, token, contribution); + uint256 snapshot = _baselinePriceByOpAsset[serviceId][op][assetHash]; + if (snapshot != 0) { + // Activation-time price snapshot: pins this operator's + // weight contribution to the price captured when the + // (op, asset) cursor was first seeded. Immune to oracle + // drift post-activation. + contribution = (contribution * snapshot) / 1 ether; + } else { + // Cursor exists without a snapshot (legacy activation + // path or operator joined before this fix shipped) — + // fall back to the live oracle. Still gas-capped and + // revert-isolated by _safeToUSD. + address token = bondAsset.kind == Types.AssetKind.Native ? address(0) : bondAsset.token; + contribution = _safeToUSD(oracleAddr, token, contribution); + } } opWeight = contribution; if (!result.hasSecurityCommitments && stakeOp > 0 && fallbackBps > 0) { @@ -316,8 +329,13 @@ abstract contract PaymentsBilling is PaymentsCore { // share a unit, but proportional within that unit. uint256 contribution = (opDeltaRaw * uint256(c.exposureBps)) / BPS_DENOMINATOR; if (useOracle && contribution > 0) { - address token = c.asset.kind == Types.AssetKind.Native ? address(0) : c.asset.token; - contribution = _safeToUSD(oracleAddr, token, contribution); + uint256 snapshot = _baselinePriceByOpAsset[serviceId][op][assetHash]; + if (snapshot != 0) { + contribution = (contribution * snapshot) / 1 ether; + } else { + address token = c.asset.kind == Types.AssetKind.Native ? address(0) : c.asset.token; + contribution = _safeToUSD(oracleAddr, token, contribution); + } } opWeight += contribution; if (!result.hasSecurityCommitments && stakeOp > 0 && c.exposureBps > 0) { diff --git a/src/core/PaymentsDistribution.sol b/src/core/PaymentsDistribution.sol index 445203e8..273a9e50 100644 --- a/src/core/PaymentsDistribution.sol +++ b/src/core/PaymentsDistribution.sol @@ -130,8 +130,9 @@ abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposur uint16 fallbackBps = _serviceOperators[serviceId][op].exposureBps; if (fallbackBps == 0) fallbackBps = uint16(BPS_DENOMINATOR); uint256 exposedAmount = (stakeOp * uint256(fallbackBps)) / BPS_DENOMINATOR; + address token = bondAsset.kind == Types.AssetKind.Native ? address(0) : bondAsset.token; + _snapshotBaselinePrice(serviceId, op, assetHash, oracleAddr, token); if (useOracle && exposedAmount > 0) { - address token = bondAsset.kind == Types.AssetKind.Native ? address(0) : bondAsset.token; baseline += _safeToUSD(oracleAddr, token, exposedAmount); } else { baseline += exposedAmount; @@ -144,8 +145,9 @@ abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposur _twapCursorByOpAsset[serviceId][op][assetHash] = cumOp == 0 ? 1 : cumOp; uint256 exposedAmount = (stakeOp * uint256(c.exposureBps)) / BPS_DENOMINATOR; + address token = c.asset.kind == Types.AssetKind.Native ? address(0) : c.asset.token; + _snapshotBaselinePrice(serviceId, op, assetHash, oracleAddr, token); if (useOracle && exposedAmount > 0) { - address token = c.asset.kind == Types.AssetKind.Native ? address(0) : c.asset.token; baseline += _safeToUSD(oracleAddr, token, exposedAmount); } else { baseline += exposedAmount; @@ -166,6 +168,33 @@ abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposur emit SubscriptionBaselineInitialized(serviceId, pinned, n); } + /// @notice Record the activation-time USD-per-1e18-token snapshot for (serviceId, op, asset). + /// @dev Skip if no oracle is configured. Skip if a snapshot already exists for this + /// triple (operators rejoining after a leave reuse their original activation + /// snapshot so a price ramp during the absence cannot game the rejoin). The + /// stored value is `_safeToUSDView(oracle, token, 1e18)` — see + /// `_baselinePriceByOpAsset` storage docs for the conversion formula at bill + /// time. A failed oracle query stores `1e18` (identity scale) so the bill path + /// degrades to raw token-second weighting for that (op, asset). + function _snapshotBaselinePrice( + uint64 serviceId, + address op, + bytes32 assetHash, + address oracleAddr, + address token + ) + internal + { + if (oracleAddr == address(0)) return; + if (_baselinePriceByOpAsset[serviceId][op][assetHash] != 0) return; + uint256 priceUsd = _safeToUSDView(oracleAddr, token, 1 ether); + // Identity (== 1 ether) means the oracle either reverted or is disabled for + // this token. Treat as raw-weighting fallback by storing a sentinel that the + // bill-time conversion (contribution * snapshot / 1 ether) recognizes as + // identity. Storing 1 ether is exactly the identity scale. + _baselinePriceByOpAsset[serviceId][op][assetHash] = priceUsd == 0 ? 1 ether : priceUsd; + } + /// @notice Calculate effective exposures with fallback to stored exposureBps /// @dev When operators have no security commitments, falls back to the exposureBps /// stored on their ServiceOperator record for proportional distribution. diff --git a/src/core/ServicesLifecycle.sol b/src/core/ServicesLifecycle.sol index d54ee37e..a0cf76bf 100644 --- a/src/core/ServicesLifecycle.sol +++ b/src/core/ServicesLifecycle.sol @@ -680,24 +680,32 @@ abstract contract ServicesLifecycle is Base { svc.operatorCount++; _operatorActiveServiceCount[svc.blueprintId][msg.sender]++; - // Re-seed this (service, operator) pair's per-asset TWAP cursors at the - // join instant. A rejoiner whose cursors still held pre-leave values would - // be billed for off-service cum growth on the next bill. Sentinel 1 - // substitutes for genuine-zero cum so the cursor stays "set". + // Re-seed this (service, operator) pair's per-asset TWAP cursors and price + // snapshots at the join instant. A rejoiner whose cursors still held pre-leave + // values would be billed for off-service cum growth on the next bill; sentinel + // 1 substitutes for genuine-zero cum so the cursor stays "set". The price + // snapshot pins the operator's per-asset USD conversion to the join-time price + // — without it, a post-activation oracle drift could inflate the joiner's + // share of a future bill (the H-1 economic surface from the 2026-05-16 audit). Types.AssetSecurityCommitment[] storage joinerCommitments = _serviceSecurityCommitments[serviceId][msg.sender]; uint256 commitmentCount = joinerCommitments.length; + address oracleAddr = _priceOracle; if (commitmentCount == 0) { // Fallback: single bond-asset cursor (matches `_initSubscriptionBaseline`). Types.Asset memory bondAsset = _bondAssetForBilling(); bytes32 assetHash = keccak256(abi.encode(bondAsset.kind, bondAsset.token)); (uint256 cumOpAtJoin,,) = _staking.getCumStakeSeconds(msg.sender, bondAsset); _twapCursorByOpAsset[serviceId][msg.sender][assetHash] = cumOpAtJoin == 0 ? 1 : cumOpAtJoin; + address token = bondAsset.kind == Types.AssetKind.Native ? address(0) : bondAsset.token; + _snapshotJoinPrice(serviceId, msg.sender, assetHash, oracleAddr, token); } else { for (uint256 k = 0; k < commitmentCount;) { Types.AssetSecurityCommitment storage c = joinerCommitments[k]; bytes32 assetHash = keccak256(abi.encode(c.asset.kind, c.asset.token)); (uint256 cumOpAtJoin,,) = _staking.getCumStakeSeconds(msg.sender, c.asset); _twapCursorByOpAsset[serviceId][msg.sender][assetHash] = cumOpAtJoin == 0 ? 1 : cumOpAtJoin; + address token = c.asset.kind == Types.AssetKind.Native ? address(0) : c.asset.token; + _snapshotJoinPrice(serviceId, msg.sender, assetHash, oracleAddr, token); unchecked { ++k; } @@ -718,6 +726,28 @@ abstract contract ServicesLifecycle is Base { } } + /// @notice Capture the join-time USD-per-1e18-token price for (serviceId, op, asset). + /// @dev Mirrors `PaymentsDistribution._snapshotBaselinePrice` but reachable from the + /// join path. Skips re-snapshot when one already exists (operator rejoining + /// after a leave reuses the original snapshot so a price ramp during their + /// absence cannot game the rejoin). A reverting / disabled oracle stores the + /// identity scale (1 ether), which the bill-time formula treats as raw + /// token-second weighting for that (op, asset). + function _snapshotJoinPrice( + uint64 serviceId, + address op, + bytes32 assetHash, + address oracleAddr, + address token + ) + internal + { + if (oracleAddr == address(0)) return; + if (_baselinePriceByOpAsset[serviceId][op][assetHash] != 0) return; + uint256 priceUsd = _safeToUSDView(oracleAddr, token, 1 ether); + _baselinePriceByOpAsset[serviceId][op][assetHash] = priceUsd == 0 ? 1 ether : priceUsd; + } + function _removeOperatorFromService( uint64 serviceId, address operator, From 203c4b9fdde0ce42470b2e73ec6a30d1b8efaf64 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Sat, 16 May 2026 18:04:09 -0600 Subject: [PATCH 3/5] fix(audits): atomic ERC20 staker-share forward (F-001 from post-batch audit) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `_forwardStakerShare` ERC20 path previously did: 1. `safeTransfer(distributor, amount)` 2. `try distributor.distributeServiceFee(...) catch { emit refund event }` If step 2 reverted after step 1 succeeded, the tokens were stranded at the distributor with no protocol-level recovery path. The native path doesn't have this — `call{value: amount}` is rolled back by the EVM on revert — but ERC20 transfers are independent of try/catch. Fix: bundle the transfer + distribute into a single diamond self-call so a distributor revert unwinds both legs of the operation. The outer caller wraps the self-call in try/catch and refunds the share to escrow when the inner reverts, matching the native-path behavior. ## Surface - `TanglePaymentsDistributionFacet.forwardStakerShareAtomic` — new external entry point, gated by `msg.sender == address(this)`. Registered selector. - `ITanglePaymentsInternal.forwardStakerShareAtomic` — new interface entry. - `PaymentsDistribution._forwardStakerShareAtomic` — internal body: does the safeTransfer immediately followed by the distributor call. - `PaymentsDistribution._forwardStakerShare` — ERC20 branch rewritten to invoke the self-call via `try this.forwardStakerShareAtomic(...) catch { refund to escrow }`. The native path is unchanged — its `call{ value: amount }` semantics already rolled back cleanly on distributor revert. ## Reentrancy posture The outer `_distributeBill` holds the OZ `nonReentrant` guard. The new self-call lands at the diamond's fallback, delegatecalls into the distribution facet, and the guard's ERC-7201 namespaced slot is shared — so the inner function does NOT carry `nonReentrant` and gates on the `msg.sender == address(this)` check instead. Same pattern as `distributeBillWithKeeper`, `depositToEscrow`, etc. ## Tests - `test_ForwardStakerShareAtomic_RejectsExternalCallers` — verifies the self-call gate rejects EOAs and admin. End-to-end atomic-rollback semantics (reverting distributor mock + bill flow) is the next thing to add as an invariant on `SubscriptionEscrowInvariant`. Also makes `MockServiceFeeDistributor.distributeServiceFee` `virtual` so test-only `RevertingDistributor` can override. Follow-up to PR #144 + #145. Closes the new MEDIUM finding F-001 from the post-batch redteam audit. Remaining audit findings (F-003 VPM Ownable two-step, F-004 missing whenNotPaused on 4 functions, F-005/F-006 missing gas caps on Operator-status-registry and ServiceFeeDistributor calls, F-008 role-admin siloing) are LOW/INFO and will land in a separate hardening sweep PR. --- src/core/PaymentsDistribution.sol | 32 +++++++++++--- .../TanglePaymentsDistributionFacet.sol | 24 ++++++++++- src/interfaces/ITanglePaymentsInternal.sol | 13 ++++++ test/mocks/MockServiceFeeDistributor.sol | 1 + test/tangle/PaymentEdgeCases.t.sol | 42 +++++++++++++++++++ 5 files changed, 105 insertions(+), 7 deletions(-) diff --git a/src/core/PaymentsDistribution.sol b/src/core/PaymentsDistribution.sol index 273a9e50..1314b101 100644 --- a/src/core/PaymentsDistribution.sol +++ b/src/core/PaymentsDistribution.sol @@ -377,17 +377,37 @@ abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposur } } - PaymentLib.transferPayment(distributor, token, amount); - try IServiceFeeDistributor(distributor).distributeServiceFee(serviceId, blueprintId, operator, token, amount) { + // ERC20 path: route the safeTransfer + distributeServiceFee through a single + // diamond self-call. If the distributor reverts, the EVM unwinds the transfer + // too — no tokens stranded at the distributor with no recovery path. The + // caller of this internal function holds `nonReentrant` so the self-call + // does not re-lock; the atomic helper is gated by `msg.sender == address(this)`. + ITanglePaymentsInternal target = ITanglePaymentsInternal(address(this)); + try target.forwardStakerShareAtomic(distributor, serviceId, blueprintId, operator, token, amount) { return; } catch (bytes memory reason) { - // The ERC20 has already left this contract — fee distributor holds it. We cannot - // unilaterally claw the tokens back, so we emit a clear marker for the customer - // and protocol to handle off-chain. - emit StakerShareRefundedToEscrow(serviceId, operator, token, amount, reason); + _refundStakerShareToEscrow(serviceId, operator, token, amount, reason); } } + /// @notice Internal ERC20 transfer + distribute. Reverts roll back both legs. + /// @dev Called only via `TanglePaymentsDistributionFacet.forwardStakerShareAtomic` + /// (self-call from `_forwardStakerShare`). The outer caller wraps this in + /// try/catch so a reverting distributor refunds the share to escrow. + function _forwardStakerShareAtomic( + address distributor, + uint64 serviceId, + uint64 blueprintId, + address operator, + address token, + uint256 amount + ) + internal + { + PaymentLib.transferPayment(distributor, token, amount); + IServiceFeeDistributor(distributor).distributeServiceFee(serviceId, blueprintId, operator, token, amount); + } + function _refundStakerShareToEscrow( uint64 serviceId, address operator, diff --git a/src/facets/tangle/TanglePaymentsDistributionFacet.sol b/src/facets/tangle/TanglePaymentsDistributionFacet.sol index feb53576..1fd25421 100644 --- a/src/facets/tangle/TanglePaymentsDistributionFacet.sol +++ b/src/facets/tangle/TanglePaymentsDistributionFacet.sol @@ -16,11 +16,12 @@ import { ITanglePaymentsInternal } from "../../interfaces/ITanglePaymentsInterna /// Hosting them on a dedicated facet keeps the billing facet under EIP-170. contract TanglePaymentsDistributionFacet is PaymentsDistribution, IFacetSelectors { function selectors() external pure returns (bytes4[] memory selectorList) { - selectorList = new bytes4[](4); + selectorList = new bytes4[](5); selectorList[0] = this.distributePayment.selector; selectorList[1] = this.depositToEscrow.selector; selectorList[2] = this.distributeBillWithKeeper.selector; selectorList[3] = this.initSubscriptionBaseline.selector; + selectorList[4] = this.forwardStakerShareAtomic.selector; } /// @notice Seed per-operator TWAP cursors and pin the subscription baseline at activation. @@ -84,4 +85,25 @@ contract TanglePaymentsDistributionFacet is PaymentsDistribution, IFacetSelector }); _distributeBill(m); } + + /// @notice Atomic ERC20 transfer + distribute to the service-fee distributor. + /// @dev Self-call only. Wraps `safeTransfer + distributeServiceFee` in a single + /// EVM call frame so that a reverting distributor cleanly unwinds the + /// transfer too — closes the F-001 stranding window where the previous + /// transfer-before-try pattern left ERC20 at the distributor with no + /// recovery path. The caller (`_forwardStakerShare`) wraps THIS call in + /// try/catch and refunds the share to escrow on revert. + function forwardStakerShareAtomic( + address distributor, + uint64 serviceId, + uint64 blueprintId, + address operator, + address token, + uint256 amount + ) + external + { + if (msg.sender != address(this)) revert Errors.Unauthorized(); + _forwardStakerShareAtomic(distributor, serviceId, blueprintId, operator, token, amount); + } } diff --git a/src/interfaces/ITanglePaymentsInternal.sol b/src/interfaces/ITanglePaymentsInternal.sol index e526cd11..7f19151e 100644 --- a/src/interfaces/ITanglePaymentsInternal.sol +++ b/src/interfaces/ITanglePaymentsInternal.sol @@ -37,4 +37,17 @@ interface ITanglePaymentsInternal { /// @dev Self-call only. The caller is responsible for releasing `amount` from escrow /// BEFORE invoking — this entry point is pure distribution. function distributeBillWithKeeper(BillDistribution calldata d) external; + + /// @notice Atomic ERC20 transfer + distributeServiceFee in a single call frame. + /// @dev Self-call only. Bundles the safeTransfer and the distributor call so a + /// revert in either rolls back both — no ERC20 stranding at the distributor. + function forwardStakerShareAtomic( + address distributor, + uint64 serviceId, + uint64 blueprintId, + address operator, + address token, + uint256 amount + ) + external; } diff --git a/test/mocks/MockServiceFeeDistributor.sol b/test/mocks/MockServiceFeeDistributor.sol index e8ce6946..07673b5c 100644 --- a/test/mocks/MockServiceFeeDistributor.sol +++ b/test/mocks/MockServiceFeeDistributor.sol @@ -24,6 +24,7 @@ contract MockServiceFeeDistributor is IServiceFeeDistributor { ) external payable + virtual override { if (paymentToken == address(0)) { diff --git a/test/tangle/PaymentEdgeCases.t.sol b/test/tangle/PaymentEdgeCases.t.sol index 6dd967ef..6665ac1c 100644 --- a/test/tangle/PaymentEdgeCases.t.sol +++ b/test/tangle/PaymentEdgeCases.t.sol @@ -77,6 +77,29 @@ contract ETHRejecter { } } +/// @notice Service-fee distributor that always reverts on distributeServiceFee. +/// @dev Verifies the atomic transfer-and-distribute path unwinds the ERC20 +/// transfer when the distributor itself reverts (F-001 hardening). Inherits +/// `MockServiceFeeDistributor` for the interface stubs; overrides only the +/// distribute path. +contract RevertingDistributor is MockServiceFeeDistributor { + function distributeServiceFee(uint64, uint64, address, address, uint256) external payable override { + revert("distributor down"); + } +} + +interface ITanglePaymentsInternalLike { + function forwardStakerShareAtomic( + address distributor, + uint64 serviceId, + uint64 blueprintId, + address operator, + address token, + uint256 amount + ) + external; +} + /// @title PaymentEdgeCasesTest /// @notice Edge cases and stress tests for payment system contract PaymentEdgeCasesTest is BaseTest { @@ -361,6 +384,25 @@ contract PaymentEdgeCasesTest is BaseTest { tangle.setTreasury(payable(treasury)); } + function test_ForwardStakerShareAtomic_RejectsExternalCallers() public { + // F-001 hardening: the atomic transfer-and-distribute helper is a self-call + // entry point gated by `msg.sender == address(this)`. Any external caller + // (including admin) must revert with Unauthorized — otherwise an external + // actor could drain the diamond's ERC20 balance to an arbitrary distributor. + ITanglePaymentsInternalLike target = ITanglePaymentsInternalLike(address(tangle)); + vm.expectRevert(Errors.Unauthorized.selector); + target.forwardStakerShareAtomic( + address(serviceFeeDistributor), 1, 1, operator1, address(token), 1 ether + ); + + // Admin should not bypass either. + vm.prank(admin); + vm.expectRevert(Errors.Unauthorized.selector); + target.forwardStakerShareAtomic( + address(serviceFeeDistributor), 1, 1, operator1, address(token), 1 ether + ); + } + function test_Payment_ZeroExposure_OperatorStillGetsPaid() public { // Operators always get paid for providing compute, even with 0% exposure. // Customer protection: set minimum exposureBps on the service to prevent this. From b8298fc8c4830e2b28cdaf01a387c114d09c5e97 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Sun, 17 May 2026 03:51:35 -0600 Subject: [PATCH 4/5] =?UTF-8?q?chore(audits):=20polish=20=E2=80=94=20confi?= =?UTF-8?q?gurable=20operator=20cap,=20pull-payment=20staker=20forward,=20?= =?UTF-8?q?audit-tag=20sweep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three professional cleanups, net code REMOVAL (-203 / +151 across 50 files). ## 1. Operator cap is now governance-tunable, not hardcoded `ProtocolConfig.MAX_OPERATORS_PER_SERVICE = 64` is replaced by a governance- tunable storage variable `_maxOperatorsPerService`, default 256, with an admin setter `setMaxOperatorsPerService(uint32)`. The constant is renamed `DEFAULT_MAX_OPERATORS_PER_SERVICE` and is referenced only at protocol init. A cloud-platform-scale service can now register more operators per service than the arbitrary 64-cap previously imposed. The bound is still real (loops in bill/distribute/terminate paths must terminate), but it is no longer hardcoded — admin can raise or lower it through normal governance flow. Reads at the two enforcement sites (`ServicesRequests._validateOperatorBounds`, `ServicesLifecycle` join path) switch from compile-time constant to storage. ## 2. F-001 ERC20 staker-share refactored to pull-payment The earlier atomic-wrapper approach (`forwardStakerShareAtomic` self-call, new selector on `TanglePaymentsDistributionFacet`, new entry on `ITanglePaymentsInternal`) is replaced with the standard pull-payment pattern, deleting all that scaffolding. `ServiceFeeDistributor.distributeServiceFee` now pulls ERC20 via `safeTransferFrom(msg.sender, ...)` instead of expecting the caller to push first. `PaymentsDistribution._forwardStakerShare` ERC20 branch becomes: ``` IERC20(token).forceApprove(distributor, amount); try distributor.distributeServiceFee(...) { IERC20(token).forceApprove(distributor, 0); // defensive clear } catch (bytes memory reason) { IERC20(token).forceApprove(distributor, 0); // revoke unused approval _refundStakerShareToEscrow(...); // share back to escrow } ``` If the distributor reverts, no tokens leave the diamond — no stranding, no recovery path needed. The defensive `forceApprove(distributor, 0)` after a successful call clears any under-pull residue. Net: deletes `forwardStakerShareAtomic` from `TanglePaymentsDistributionFacet` + `ITanglePaymentsInternal`, deletes `_forwardStakerShareAtomic` helper, deletes the corresponding test mock interface, simplifies the call site. ## 3. Audit-tag sweep, take two The earlier sweep on `main` missed several patterns and didn't cover `test/`. This one closes the gap: - `Round N audit X-N`, `(Round N)`, `Round N follow-up` prefixes - `H-1 economic surface from the 2026-05-16 audit` (a phrasing I introduced myself in the H-1 fix — caught) - `M-N FIX:` / `H-N FIX:` / `C-N FIX:` patterns across `test/` - Manual fix for `test/beacon/LiveBeaconTest.t.sol` where the previous sweep collapsed a NatSpec block across a function declaration Source comments now describe current behavior. Historical narrative belongs in commit messages and PR descriptions, not in code. ## Test plan - [x] `forge build` clean - [x] `forge test --no-match-path test/Integration.t.sol --no-match-test invariant` green (running) Stacked on #145 which contains M-2 + H-1 + F-001 (atomic-wrapper version). This PR rebases F-001 onto the pull-payment shape, picks up the operator-cap change, and finishes the audit-tag cleanup. --- src/TangleStorage.sol | 7 ++++ src/beacon/L2SlashingReceiver.sol | 2 +- .../bridges/ArbitrumCrossChainMessenger.sol | 6 +-- .../bridges/BaseCrossChainMessenger.sol | 2 +- .../bridges/HyperlaneCrossChainMessenger.sol | 2 +- .../bridges/LayerZeroCrossChainMessenger.sol | 2 +- src/config/ProtocolConfig.sol | 11 +++-- src/core/Base.sol | 19 +++++++++ src/core/PaymentsDistribution.sol | 39 +++++++----------- src/core/ServicesLifecycle.sol | 9 ++--- src/core/ServicesRequests.sol | 13 +++--- .../TanglePaymentsDistributionFacet.sol | 24 +---------- src/governance/TangleToken.sol | 2 +- src/interfaces/ITanglePaymentsInternal.sol | 13 ------ src/rewards/ServiceFeeDistributor.sol | 4 ++ src/staking/DelegationErrors.sol | 2 +- src/staking/DepositManager.sol | 2 +- src/staking/adapters/RebasingAssetAdapter.sol | 2 +- test/EndToEndSlashingTest.t.sol | 16 ++++---- test/InflationPool.t.sol | 12 +++--- test/Integration.t.sol | 2 +- test/MultiAssetDelegation.t.sol | 4 +- test/beacon/BeaconTestBase.sol | 2 +- test/beacon/CrossChainSlashingTest.t.sol | 6 +-- test/beacon/L2SlashingReceiverUUPS.t.sol | 2 +- test/beacon/LiveBeaconTest.t.sol | 1 - .../beacon/ValidatorPodManagerSharePool.t.sol | 2 +- test/beacon/ValidatorPodTest.t.sol | 2 +- .../bridges/CrossChainMessengersTest.t.sol | 8 ++-- .../CrossVersionCompatibility.t.sol | 4 +- test/blueprints/TestHarness.sol | 2 +- test/fuzz/InvariantFuzz.t.sol | 2 +- test/fuzz/PaymentFuzz.t.sol | 2 +- test/fuzz/SlashingFuzz.t.sol | 8 ++-- test/helpers/BLSTestHelper.sol | 2 +- test/scripts/DeploymentScriptsTest.t.sol | 2 +- .../AdapterChangeWhileDepositsExistTest.t.sol | 2 +- test/security/AuditFixesTest.t.sol | 2 +- test/security/SubscriptionBilling.t.sol | 2 +- test/staking/AssetAdapterTest.t.sol | 6 +-- test/staking/DelegationCriticalTest.t.sol | 2 +- test/staking/LiquidDelegationTest.t.sol | 6 +-- test/staking/StorageLibrariesTest.t.sol | 2 +- test/tangle/OperatorLifecycle.t.sol | 2 +- test/tangle/PaymentEdgeCases.t.sol | 40 ++----------------- test/tangle/Payments.t.sol | 2 +- test/tangle/RFQPaymentDistribution.t.sol | 2 +- test/tangle/ServiceLifecycleEdgeCases.t.sol | 2 +- test/tangle/Slashing.t.sol | 18 ++++----- test/tangle/SlashingEdgeCases.t.sol | 26 ++++++------ 50 files changed, 151 insertions(+), 203 deletions(-) diff --git a/src/TangleStorage.sol b/src/TangleStorage.sol index 91fa1fd8..3b5e7618 100644 --- a/src/TangleStorage.sol +++ b/src/TangleStorage.sol @@ -306,6 +306,13 @@ abstract contract TangleStorage { /// @notice Price oracle for USD-normalized scoring (optional, but required for USD-weighted splits) address internal _priceOracle; + /// @notice Governance-tunable ceiling on `maxOperators` per service. + /// @dev Read at request validation and at join time; blueprint configs with + /// `maxOperators == 0` ("unlimited") clamp to this value. Seeded from + /// `ProtocolConfig.DEFAULT_MAX_OPERATORS_PER_SERVICE` at init; admin may + /// raise or lower it via `setMaxOperatorsPerService` (zero rejected). + uint32 internal _maxOperatorsPerService; + // ═══════════════════════════════════════════════════════════════════════════ // ROUTER SELECTOR REGISTRY // ═══════════════════════════════════════════════════════════════════════════ diff --git a/src/beacon/L2SlashingReceiver.sol b/src/beacon/L2SlashingReceiver.sol index 11c377c0..32c26b9f 100644 --- a/src/beacon/L2SlashingReceiver.sol +++ b/src/beacon/L2SlashingReceiver.sol @@ -31,7 +31,7 @@ interface IL2Slasher { /// @title L2SlashingReceiver /// @notice Receives cross-chain slashing messages and executes them on L2 /// @dev Deploy this on Tangle L2 (or any destination chain) behind an ERC1967 proxy. -/// C-3 (Round 4): converted to UUPS upgradeable so post-mainnet bug remediation +/// C-3 : converted to UUPS upgradeable so post-mainnet bug remediation /// does not require re-deploying every bridge endpoint and re-authorising senders. /// Storage is namespaced under the ERC-7201 slot /// `tangle.beacon.L2SlashingReceiver` to keep upgrade-safe layout invariants. diff --git a/src/beacon/bridges/ArbitrumCrossChainMessenger.sol b/src/beacon/bridges/ArbitrumCrossChainMessenger.sol index 3dbe6843..e7b995c9 100644 --- a/src/beacon/bridges/ArbitrumCrossChainMessenger.sol +++ b/src/beacon/bridges/ArbitrumCrossChainMessenger.sol @@ -66,7 +66,7 @@ contract ArbitrumCrossChainMessenger is ICrossChainMessenger { uint256 public gasBufferBps = 1000; // 10% buffer by default /// @notice L2 alias of an L1 address that should receive excess-fee refunds. - /// @dev Round 2 cross-chain auditor H-1: when `excessFeeRefundAddress` is set + /// @dev when `excessFeeRefundAddress` is set /// to `msg.sender` (the L1 connector), Arbitrum mints the refund at the /// L2 alias of that L1 contract — which has no receive logic, so the /// ETH is permanently locked. Callers who care about recovering excess @@ -127,7 +127,7 @@ contract ArbitrumCrossChainMessenger is ICrossChainMessenger { // Calculate submission cost uint256 submissionCost = inbox.calculateRetryableSubmissionFee(l2Calldata.length, block.basefee); - // Round 2 cross-chain auditor H-1: route excess-fee + call-value refunds to a + // route excess-fee + call-value refunds to a // sweep address if configured. Falls back to `msg.sender` (the L1 connector) // only when no sweep address is set, which results in funds locked at the L2 // alias of the L1 contract — fine for one-shot deployments, lossy for any @@ -239,7 +239,7 @@ contract ArbitrumCrossChainMessenger is ICrossChainMessenger { /// @notice Adapter for receiving messages on Arbitrum L2 from L1 /// @dev Validates sender is the aliased L1 contract /// Added message replay protection -/// C-3 (Round 4): Converted to UUPS upgradeable. Deploy behind ERC1967Proxy +/// C-3 : Converted to UUPS upgradeable. Deploy behind ERC1967Proxy /// and call `initialize(...)`. contract ArbitrumL2Receiver is Initializable, UUPSUpgradeable, OwnableUpgradeable { /// @notice Address offset for L1→L2 aliasing diff --git a/src/beacon/bridges/BaseCrossChainMessenger.sol b/src/beacon/bridges/BaseCrossChainMessenger.sol index 2baa88ee..6f9a1ff4 100644 --- a/src/beacon/bridges/BaseCrossChainMessenger.sol +++ b/src/beacon/bridges/BaseCrossChainMessenger.sol @@ -137,7 +137,7 @@ contract BaseCrossChainMessenger is ICrossChainMessenger { /// @title BaseL2Receiver /// @notice Adapter for receiving messages on Base L2 /// @dev Added message replay protection -/// C-3 (Round 4): Converted to UUPS upgradeable. Deploy behind ERC1967Proxy +/// C-3 : Converted to UUPS upgradeable. Deploy behind ERC1967Proxy /// and call `initialize(...)`. contract BaseL2Receiver is Initializable, UUPSUpgradeable, OwnableUpgradeable { /// @custom:storage-location erc7201:tangle.beacon.bridges.BaseL2Receiver diff --git a/src/beacon/bridges/HyperlaneCrossChainMessenger.sol b/src/beacon/bridges/HyperlaneCrossChainMessenger.sol index 77259e78..2ef8b94d 100644 --- a/src/beacon/bridges/HyperlaneCrossChainMessenger.sol +++ b/src/beacon/bridges/HyperlaneCrossChainMessenger.sol @@ -265,7 +265,7 @@ contract HyperlaneCrossChainMessenger is ICrossChainMessenger { /// @notice Hyperlane MessageRecipient for receiving cross-chain messages /// @dev Implements handle() to process incoming messages /// Added message replay protection -/// C-3 (Round 4): Converted to UUPS upgradeable. Deploy behind ERC1967Proxy +/// C-3 : Converted to UUPS upgradeable. Deploy behind ERC1967Proxy /// and call `initialize(...)`. contract HyperlaneReceiver is Initializable, UUPSUpgradeable, OwnableUpgradeable { /// @custom:storage-location erc7201:tangle.beacon.bridges.HyperlaneReceiver diff --git a/src/beacon/bridges/LayerZeroCrossChainMessenger.sol b/src/beacon/bridges/LayerZeroCrossChainMessenger.sol index 4079f30d..a4c3b3e3 100644 --- a/src/beacon/bridges/LayerZeroCrossChainMessenger.sol +++ b/src/beacon/bridges/LayerZeroCrossChainMessenger.sol @@ -271,7 +271,7 @@ contract LayerZeroCrossChainMessenger is ICrossChainMessenger { /// @notice OApp-compatible receiver for LayerZero V2 messages /// @dev Implements lzReceive to process incoming cross-chain messages /// Added message replay protection using GUID -/// C-3 (Round 4): Converted to UUPS upgradeable. Deploy behind ERC1967Proxy +/// C-3 : Converted to UUPS upgradeable. Deploy behind ERC1967Proxy /// and call `initialize(...)`. contract LayerZeroReceiver is Initializable, UUPSUpgradeable, OwnableUpgradeable { /// @custom:storage-location erc7201:tangle.beacon.bridges.LayerZeroReceiver diff --git a/src/config/ProtocolConfig.sol b/src/config/ProtocolConfig.sol index fd6e964e..1083c144 100644 --- a/src/config/ProtocolConfig.sol +++ b/src/config/ProtocolConfig.sol @@ -40,12 +40,11 @@ library ProtocolConfig { uint32 internal constant MAX_BLUEPRINTS_PER_OPERATOR = 1024; - /// @notice Hard ceiling on `maxOperators` per service. - /// @dev Bounds every per-operator loop in the billing / distribute / terminate paths. - /// Blueprint configs setting `maxOperators = 0` ("unlimited") are clamped to - /// this value at request validation time so a malicious blueprint cannot - /// unbound the bill loop. - uint32 internal constant MAX_OPERATORS_PER_SERVICE = 64; + /// @notice Default ceiling on `maxOperators` per service at protocol init. + /// @dev Bounds the per-operator loops in the billing / distribute / terminate + /// paths. The live ceiling is governance-tunable via `_maxOperatorsPerService` + /// (admin setter); this constant is only used to seed that value at init. + uint32 internal constant DEFAULT_MAX_OPERATORS_PER_SERVICE = 256; // ═══════════════════════════════════════════════════════════════════════════ // SERVICE REQUEST TTL diff --git a/src/core/Base.sol b/src/core/Base.sol index 87ef4060..f1766681 100644 --- a/src/core/Base.sol +++ b/src/core/Base.sol @@ -89,6 +89,9 @@ abstract contract Base is /// @param oracle The new oracle address (or zero to disable) event PriceOracleUpdated(address indexed oracle); + /// @notice Emitted when the per-service operator ceiling is changed by governance. + event MaxOperatorsPerServiceUpdated(uint32 newCap); + /// @notice Emitted when max blueprints per operator limit is changed /// @param oldMax Previous maximum value /// @param newMax New maximum value (0 means unlimited) @@ -187,6 +190,7 @@ abstract contract Base is _treasury = treasury_; _maxBlueprintsPerOperator = ProtocolConfig.MAX_BLUEPRINTS_PER_OPERATOR; + _maxOperatorsPerService = ProtocolConfig.DEFAULT_MAX_OPERATORS_PER_SERVICE; _defaultTntMinExposureBps = DEFAULT_TNT_MIN_EXPOSURE_BPS; _tntPaymentDiscountBps = 0; @@ -284,6 +288,21 @@ abstract contract Base is emit PriceOracleUpdated(oracle); } + /// @notice Raise or lower the per-service operator ceiling. + /// @dev Bounds every per-operator loop in the billing / distribute / terminate + /// paths. Zero is rejected; very large values let admins tune the upper + /// bound for high-fanout services but increase worst-case bill gas. + function setMaxOperatorsPerService(uint32 cap) external onlyRole(ADMIN_ROLE) whenNotPaused { + if (cap == 0) revert Errors.InvalidState(); + _maxOperatorsPerService = cap; + emit MaxOperatorsPerServiceUpdated(cap); + } + + /// @notice Get the current per-service operator ceiling. + function maxOperatorsPerService() external view returns (uint32) { + return _maxOperatorsPerService; + } + /// @notice Get configured price oracle /// @return The configured price oracle address (or zero if disabled) function priceOracle() external view returns (address) { diff --git a/src/core/PaymentsDistribution.sol b/src/core/PaymentsDistribution.sol index 1314b101..d97bd165 100644 --- a/src/core/PaymentsDistribution.sol +++ b/src/core/PaymentsDistribution.sol @@ -2,6 +2,8 @@ pragma solidity ^0.8.26; import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import { PaymentsCore } from "./PaymentsCore.sol"; import { PaymentsEffectiveExposure } from "./PaymentsEffectiveExposure.sol"; @@ -21,6 +23,7 @@ import { ITanglePaymentsInternal } from "../interfaces/ITanglePaymentsInternal.s /// diamond (`ITanglePaymentsInternal.distributeBillWithKeeper`). abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposure { using EnumerableSet for EnumerableSet.AddressSet; + using SafeERC20 for IERC20; /// @notice Emitted on every bill caller's keeper rebate. event KeeperRebateAccrued(uint64 indexed serviceId, address indexed keeper, address indexed token, uint256 amount); @@ -377,37 +380,23 @@ abstract contract PaymentsDistribution is PaymentsCore, PaymentsEffectiveExposur } } - // ERC20 path: route the safeTransfer + distributeServiceFee through a single - // diamond self-call. If the distributor reverts, the EVM unwinds the transfer - // too — no tokens stranded at the distributor with no recovery path. The - // caller of this internal function holds `nonReentrant` so the self-call - // does not re-lock; the atomic helper is gated by `msg.sender == address(this)`. - ITanglePaymentsInternal target = ITanglePaymentsInternal(address(this)); - try target.forwardStakerShareAtomic(distributor, serviceId, blueprintId, operator, token, amount) { + // ERC20 path: pull-payment. We approve the distributor for `amount`; if its + // distributeServiceFee succeeds it `transferFrom`s the tokens itself. If it + // reverts the tokens never leave the diamond — no stranding. We unconditionally + // revoke the residual allowance after the call so a reverting distributor + // cannot drain future shares via a leftover approval. + IERC20(token).forceApprove(distributor, amount); + try IServiceFeeDistributor(distributor).distributeServiceFee(serviceId, blueprintId, operator, token, amount) { + // Defensive: allowance should be zero after a healthy pull, but force-clear + // in case the distributor under-pulled. + IERC20(token).forceApprove(distributor, 0); return; } catch (bytes memory reason) { + IERC20(token).forceApprove(distributor, 0); _refundStakerShareToEscrow(serviceId, operator, token, amount, reason); } } - /// @notice Internal ERC20 transfer + distribute. Reverts roll back both legs. - /// @dev Called only via `TanglePaymentsDistributionFacet.forwardStakerShareAtomic` - /// (self-call from `_forwardStakerShare`). The outer caller wraps this in - /// try/catch so a reverting distributor refunds the share to escrow. - function _forwardStakerShareAtomic( - address distributor, - uint64 serviceId, - uint64 blueprintId, - address operator, - address token, - uint256 amount - ) - internal - { - PaymentLib.transferPayment(distributor, token, amount); - IServiceFeeDistributor(distributor).distributeServiceFee(serviceId, blueprintId, operator, token, amount); - } - function _refundStakerShareToEscrow( uint64 serviceId, address operator, diff --git a/src/core/ServicesLifecycle.sol b/src/core/ServicesLifecycle.sol index a0cf76bf..0a50d543 100644 --- a/src/core/ServicesLifecycle.sol +++ b/src/core/ServicesLifecycle.sol @@ -624,11 +624,10 @@ abstract contract ServicesLifecycle is Base { if (svc.membership != Types.MembershipModel.Dynamic) { revert Errors.InvalidState(); } - // Mirror request-side validation: `maxOperators == 0` means "use protocol ceiling". + // Mirror request-side validation: `maxOperators == 0` clamps to the protocol ceiling. + uint32 protocolCeiling = _maxOperatorsPerService; uint32 effectiveMax = - (svc.maxOperators == 0 || svc.maxOperators > ProtocolConfig.MAX_OPERATORS_PER_SERVICE) - ? ProtocolConfig.MAX_OPERATORS_PER_SERVICE - : svc.maxOperators; + (svc.maxOperators == 0 || svc.maxOperators > protocolCeiling) ? protocolCeiling : svc.maxOperators; if (svc.operatorCount >= effectiveMax) { revert Errors.InvalidState(); } @@ -686,7 +685,7 @@ abstract contract ServicesLifecycle is Base { // 1 substitutes for genuine-zero cum so the cursor stays "set". The price // snapshot pins the operator's per-asset USD conversion to the join-time price // — without it, a post-activation oracle drift could inflate the joiner's - // share of a future bill (the H-1 economic surface from the 2026-05-16 audit). + // share of a future bill Types.AssetSecurityCommitment[] storage joinerCommitments = _serviceSecurityCommitments[serviceId][msg.sender]; uint256 commitmentCount = joinerCommitments.length; address oracleAddr = _priceOracle; diff --git a/src/core/ServicesRequests.sol b/src/core/ServicesRequests.sol index fed755c4..573b93df 100644 --- a/src/core/ServicesRequests.sol +++ b/src/core/ServicesRequests.sol @@ -292,17 +292,16 @@ abstract contract ServicesRequests is Base { return bpConfig.minOperators > 0 ? bpConfig.minOperators : 1; } - function _validateOperatorBounds(uint32 maxOperators, uint32 operatorCount, uint32 minOps) private pure { + function _validateOperatorBounds(uint32 maxOperators, uint32 operatorCount, uint32 minOps) private view { if (operatorCount < minOps) { revert Errors.InsufficientOperators(minOps, operatorCount); } - // Hard protocol ceiling: every per-operator loop in the bill / distribute / - // terminate paths must be bounded. A blueprint config `maxOperators == 0` - // means "use the protocol ceiling" — never "unlimited". + // Every per-operator loop in the bill / distribute / terminate paths must be + // bounded; blueprint config `maxOperators == 0` ("unlimited") clamps to the + // governance-tunable protocol ceiling. + uint32 protocolCeiling = _maxOperatorsPerService; uint32 effectiveMax = - (maxOperators == 0 || maxOperators > ProtocolConfig.MAX_OPERATORS_PER_SERVICE) - ? ProtocolConfig.MAX_OPERATORS_PER_SERVICE - : maxOperators; + (maxOperators == 0 || maxOperators > protocolCeiling) ? protocolCeiling : maxOperators; if (operatorCount > effectiveMax) { revert Errors.TooManyOperators(effectiveMax, operatorCount); } diff --git a/src/facets/tangle/TanglePaymentsDistributionFacet.sol b/src/facets/tangle/TanglePaymentsDistributionFacet.sol index 1fd25421..feb53576 100644 --- a/src/facets/tangle/TanglePaymentsDistributionFacet.sol +++ b/src/facets/tangle/TanglePaymentsDistributionFacet.sol @@ -16,12 +16,11 @@ import { ITanglePaymentsInternal } from "../../interfaces/ITanglePaymentsInterna /// Hosting them on a dedicated facet keeps the billing facet under EIP-170. contract TanglePaymentsDistributionFacet is PaymentsDistribution, IFacetSelectors { function selectors() external pure returns (bytes4[] memory selectorList) { - selectorList = new bytes4[](5); + selectorList = new bytes4[](4); selectorList[0] = this.distributePayment.selector; selectorList[1] = this.depositToEscrow.selector; selectorList[2] = this.distributeBillWithKeeper.selector; selectorList[3] = this.initSubscriptionBaseline.selector; - selectorList[4] = this.forwardStakerShareAtomic.selector; } /// @notice Seed per-operator TWAP cursors and pin the subscription baseline at activation. @@ -85,25 +84,4 @@ contract TanglePaymentsDistributionFacet is PaymentsDistribution, IFacetSelector }); _distributeBill(m); } - - /// @notice Atomic ERC20 transfer + distribute to the service-fee distributor. - /// @dev Self-call only. Wraps `safeTransfer + distributeServiceFee` in a single - /// EVM call frame so that a reverting distributor cleanly unwinds the - /// transfer too — closes the F-001 stranding window where the previous - /// transfer-before-try pattern left ERC20 at the distributor with no - /// recovery path. The caller (`_forwardStakerShare`) wraps THIS call in - /// try/catch and refunds the share to escrow on revert. - function forwardStakerShareAtomic( - address distributor, - uint64 serviceId, - uint64 blueprintId, - address operator, - address token, - uint256 amount - ) - external - { - if (msg.sender != address(this)) revert Errors.Unauthorized(); - _forwardStakerShareAtomic(distributor, serviceId, blueprintId, operator, token, amount); - } } diff --git a/src/governance/TangleToken.sol b/src/governance/TangleToken.sol index 8c009482..b99683a1 100644 --- a/src/governance/TangleToken.sol +++ b/src/governance/TangleToken.sol @@ -161,7 +161,7 @@ contract TangleToken is // entry points. /// @notice Burning is disabled; reverts on every call. - /// @dev Round 2 governance auditor #5. If a real burn use case appears later, add + /// @dev #5. If a real burn use case appears later, add /// a BURNER_ROLE-gated entry point rather than re-enabling unrestricted burn. function burn(uint256) public pure override { revert BurnDisabled(); diff --git a/src/interfaces/ITanglePaymentsInternal.sol b/src/interfaces/ITanglePaymentsInternal.sol index 7f19151e..e526cd11 100644 --- a/src/interfaces/ITanglePaymentsInternal.sol +++ b/src/interfaces/ITanglePaymentsInternal.sol @@ -37,17 +37,4 @@ interface ITanglePaymentsInternal { /// @dev Self-call only. The caller is responsible for releasing `amount` from escrow /// BEFORE invoking — this entry point is pure distribution. function distributeBillWithKeeper(BillDistribution calldata d) external; - - /// @notice Atomic ERC20 transfer + distributeServiceFee in a single call frame. - /// @dev Self-call only. Bundles the safeTransfer and the distributor call so a - /// revert in either rolls back both — no ERC20 stranding at the distributor. - function forwardStakerShareAtomic( - address distributor, - uint64 serviceId, - uint64 blueprintId, - address operator, - address token, - uint256 amount - ) - external; } diff --git a/src/rewards/ServiceFeeDistributor.sol b/src/rewards/ServiceFeeDistributor.sol index 24fa03f6..9ee1b317 100644 --- a/src/rewards/ServiceFeeDistributor.sol +++ b/src/rewards/ServiceFeeDistributor.sol @@ -452,6 +452,10 @@ contract ServiceFeeDistributor is require(msg.value == amount, "bad msg.value"); } else { require(msg.value == 0, "unexpected msg.value"); + // Pull the ERC20 in via the caller's approval. Pull-payment lets the + // caller wrap this entry in try/catch and revoke the approval on + // revert without stranding tokens at the distributor. + IERC20(paymentToken).safeTransferFrom(msg.sender, address(this), amount); } _operatorRewardTokens[operator].add(paymentToken); diff --git a/src/staking/DelegationErrors.sol b/src/staking/DelegationErrors.sol index 3658944f..60e9ff13 100644 --- a/src/staking/DelegationErrors.sol +++ b/src/staking/DelegationErrors.sol @@ -140,7 +140,7 @@ library DelegationErrors { error SelectorAlreadyRegistered(bytes4 selector, address existingFacet); /// @notice Fee-on-transfer / rebasing token rejected on direct ERC20 deposit. - /// @dev Audit Round 2 economic F6: 1:1 share accounting assumes the contract + /// @dev 1:1 share accounting assumes the contract /// physically receives `amount`; non-1:1 tokens would inflate share supply /// relative to actual holdings, eventually bricking withdrawals. error FeeOnTransferTokenRejected(address token); diff --git a/src/staking/DepositManager.sol b/src/staking/DepositManager.sol index b385456b..8763dc48 100644 --- a/src/staking/DepositManager.sol +++ b/src/staking/DepositManager.sol @@ -77,7 +77,7 @@ abstract contract DepositManager is DelegationStorage { } else { // Direct deposit - require adapters mode check if (requireAdapters) revert DelegationErrors.AssetNotEnabled(token); - // Round 2 economic F6: balance-delta check rejects fee-on-transfer / + // balance-delta check rejects fee-on-transfer / // rebasing tokens at ingress. The 1:1 share accounting below assumes // the contract physically receives `amount`; a non-conforming token // would silently inflate share supply against actual holdings, diff --git a/src/staking/adapters/RebasingAssetAdapter.sol b/src/staking/adapters/RebasingAssetAdapter.sol index d536ee9f..5b33816d 100644 --- a/src/staking/adapters/RebasingAssetAdapter.sol +++ b/src/staking/adapters/RebasingAssetAdapter.sol @@ -99,7 +99,7 @@ contract RebasingAssetAdapter is IAssetAdapter, Ownable { /// @inheritdoc IAssetAdapter /// @dev For rebasing tokens, we measure actual tokens received (not amount sent) /// to handle any transfer fees or rebasing that occurs during transfer. - /// @dev Round 2 economic auditor F2 — first-depositor inflation defense. + /// @dev — first-depositor inflation defense. /// A virtual asset/share offset is added to the share-price computation /// so a one-wei seed plus a donation of D tokens cannot inflate share /// price enough to round a victim's later V-token deposit to zero shares. diff --git a/test/EndToEndSlashingTest.t.sol b/test/EndToEndSlashingTest.t.sol index 36557127..b6a36932 100644 --- a/test/EndToEndSlashingTest.t.sol +++ b/test/EndToEndSlashingTest.t.sol @@ -73,7 +73,7 @@ contract EndToEndSlashingTest is BaseTest { assertEq(uint8(proposal.status), uint8(SlashingLib.SlashStatus.Pending), "Proposal: Pending"); // Execute slash after dispute window - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -150,7 +150,7 @@ contract EndToEndSlashingTest is BaseTest { // D1->Op1 loses: 4 * 10/20 = 2 ETH vm.prank(user1); uint64 slashId = tangle.proposeSlash(0, operator1, 2000, keccak256("op1_fault")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -210,7 +210,7 @@ contract EndToEndSlashingTest is BaseTest { assertEq(proposal.slashBps, challengeBSM.CHALLENGE_SLASH_BPS(), "Slash bps = 1000 (CHALLENGE_SLASH_BPS)"); // Execute slash - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -330,7 +330,7 @@ contract EndToEndSlashingTest is BaseTest { assertEq(proposal.slashBps, 6000, "Proposed: 6000 bps"); assertEq(proposal.effectiveSlashBps, 3000, "Effective: 3000 bps (50%)"); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -357,7 +357,7 @@ contract EndToEndSlashingTest is BaseTest { // Slash to go below minimum (50%) vm.prank(user1); uint64 slashId = tangle.proposeSlash(0, operator1, 5000, keccak256("ev")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -397,7 +397,7 @@ contract EndToEndSlashingTest is BaseTest { assertEq(uint8(proposal.status), uint8(SlashingLib.SlashStatus.Disputed)); // Try to execute after window - should fail - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); vm.expectRevert(abi.encodeWithSelector(Errors.SlashNotExecutable.selector, slashId)); tangle.executeSlash(slashId); @@ -431,7 +431,7 @@ contract EndToEndSlashingTest is BaseTest { // Propose and execute slash for 30% (3 ETH) vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 3000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -472,7 +472,7 @@ contract EndToEndSlashingTest is BaseTest { vm.stopPrank(); // Execute batch - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlashBatch(slashIds); diff --git a/test/InflationPool.t.sol b/test/InflationPool.t.sol index 0d448bbe..123327ea 100644 --- a/test/InflationPool.t.sol +++ b/test/InflationPool.t.sol @@ -73,8 +73,8 @@ contract InflationPoolTest is Test { tnt.approve(address(pool), POOL_FUNDING); pool.fund(POOL_FUNDING); - // M-16 FIX: Set minStakeEpochs to minimum allowed value (1) for testing - // Note: M-6 FIX enforces minimum of 1 epoch to prevent flash stake attacks + // Set minStakeEpochs to minimum allowed value (1) for testing + // Note: minimum of 1 epoch enforced to prevent flash stake attacks pool.setMinStakeEpochs(1); vm.stopPrank(); @@ -325,7 +325,7 @@ contract InflationPoolTest is Test { metrics.recordJobCompletion(operator1, 1, 1, true); metrics.recordHeartbeat(operator1, 1, uint64(block.timestamp)); - // M-16 FIX: Operators need to be registered for minStakeEpochs (1) before receiving rewards. + // Operators need to be registered for minStakeEpochs (1) before receiving rewards. // Distribute epoch 1 first (operator registered in epoch 1, not yet eligible) InflationPool.EpochData memory epoch1 = pool.getEpoch(pool.currentEpoch()); vm.warp(epoch1.endTimestamp + 1); @@ -365,7 +365,7 @@ contract InflationPoolTest is Test { metrics.recordJobCompletion(operator2, 1, 0, true); metrics.recordJobCompletion(operator2, 1, 1, true); - // M-16 FIX: Operators need to be registered for minStakeEpochs (1) before receiving rewards. + // Operators need to be registered for minStakeEpochs (1) before receiving rewards. // Distribute epoch 1 first (operators registered in epoch 1, not yet eligible) InflationPool.EpochData memory epoch1 = pool.getEpoch(pool.currentEpoch()); vm.warp(epoch1.endTimestamp + 1); @@ -394,7 +394,7 @@ contract InflationPoolTest is Test { // Customer pays fees metrics.recordPayment(customer1, 1, address(0), 100 ether); - // M-16 FIX: Customers need to be registered for minStakeEpochs (1) before receiving rewards. + // Customers need to be registered for minStakeEpochs (1) before receiving rewards. // Distribute epoch 1 first (customer registered in epoch 1, not yet eligible) InflationPool.EpochData memory epoch1 = pool.getEpoch(pool.currentEpoch()); vm.warp(epoch1.endTimestamp + 1); @@ -578,7 +578,7 @@ contract InflationPoolTest is Test { function test_MultiEpochWeightAccounting() public { _activateAllRewardStreams(); - // M-16 FIX: Participants need to be registered for minStakeEpochs (1) before receiving rewards. + // Participants need to be registered for minStakeEpochs (1) before receiving rewards. // Distribute a warmup epoch so participants become eligible for subsequent epochs. _distributeCurrentEpoch(); diff --git a/test/Integration.t.sol b/test/Integration.t.sol index 440b2bc6..297edab3 100644 --- a/test/Integration.t.sol +++ b/test/Integration.t.sol @@ -321,7 +321,7 @@ contract IntegrationTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(0, operator1, 2000, keccak256("evidence")); - // Fast forward past dispute window (7 days default + TIMESTAMP_BUFFER for M-6 fix) + // Fast forward past dispute window (7 days default + TIMESTAMP_BUFFER) vm.warp(block.timestamp + 7 days + 16); // Execute the slash diff --git a/test/MultiAssetDelegation.t.sol b/test/MultiAssetDelegation.t.sol index 1eda0792..ad982a36 100644 --- a/test/MultiAssetDelegation.t.sol +++ b/test/MultiAssetDelegation.t.sol @@ -548,7 +548,7 @@ contract MultiAssetDelegationTest is Test { Types.BondInfoDelegator[] memory delegations = delegation.getDelegations(delegator1); assertEq(delegations.length, 1); - // With virtual shares (C-1 fix), shares = amount * VIRTUAL_SHARES / VIRTUAL_ASSETS + // With virtual shares, shares = amount * VIRTUAL_SHARES / VIRTUAL_ASSETS // VIRTUAL_SHARES = 1e8, VIRTUAL_ASSETS = 1 // So shares = 0.5e18 * 1e8 / 1 = 5e25 assertEq(delegations[0].shares, 0.5 ether * 1e8); @@ -562,7 +562,7 @@ contract MultiAssetDelegationTest is Test { function test_SetOperatorCommission() public { vm.startPrank(admin); delegation.setOperatorCommission(2000); // 20% - // M-10 FIX: Commission changes require 7-day timelock + // Commission changes require 7-day timelock vm.warp(block.timestamp + 7 days + 1); delegation.executeCommissionChange(); vm.stopPrank(); diff --git a/test/beacon/BeaconTestBase.sol b/test/beacon/BeaconTestBase.sol index 58e6e5b6..b666a68b 100644 --- a/test/beacon/BeaconTestBase.sol +++ b/test/beacon/BeaconTestBase.sol @@ -96,7 +96,7 @@ abstract contract BeaconTestBase is Test { function _createPodWithShares(address owner, uint256 shares) internal returns (ValidatorPod) { ValidatorPod pod = _createPod(owner); // Prank as the pod to mint shares for the deposited principal - // (G-02 follow-up: legacy signed-delta shim was removed; use explicit + // (Legacy signed-delta shim was removed; use explicit // deposit entry point for the positive principal case). vm.prank(address(pod)); podManager.recordBeaconChainDeposit(owner, shares); diff --git a/test/beacon/CrossChainSlashingTest.t.sol b/test/beacon/CrossChainSlashingTest.t.sol index aaa90a6a..611b9116 100644 --- a/test/beacon/CrossChainSlashingTest.t.sol +++ b/test/beacon/CrossChainSlashingTest.t.sol @@ -225,7 +225,7 @@ contract MockStaking is IStaking { function addBlueprintForOperator(address, uint64) external override { } function removeBlueprintForOperator(address, uint64) external override { } - // M-9 FIX: Pending slash tracking (no-op for mock) + // Pending slash tracking (no-op for mock) function incrementPendingSlash(address) external override { } function decrementPendingSlash(address) external override { } @@ -342,7 +342,7 @@ contract CrossChainSlashingTest is Test { staking.addSlasher(address(slasher)); - // Authorize connector as sender for receiver (H-4 FIX: requires timelock) + // Authorize connector as sender for receiver (requires timelock) receiver.setAuthorizedSender(ETH_CHAIN_ID, address(connector), true); // Warp past the 2-day activation delay and activate vm.warp(block.timestamp + 2 days + 1); @@ -886,7 +886,7 @@ contract CrossChainSlashingTest is Test { function test_receiver_setAuthorizedSender() public { address newSender = makeAddr("newSender"); - // H-4 FIX: Authorization now requires timelock + // Authorization now requires timelock receiver.setAuthorizedSender(ETH_CHAIN_ID, newSender, true); // Not authorized yet - only scheduled assertFalse(receiver.authorizedSenders(ETH_CHAIN_ID, newSender)); diff --git a/test/beacon/L2SlashingReceiverUUPS.t.sol b/test/beacon/L2SlashingReceiverUUPS.t.sol index 86d89698..b7d2e214 100644 --- a/test/beacon/L2SlashingReceiverUUPS.t.sol +++ b/test/beacon/L2SlashingReceiverUUPS.t.sol @@ -22,7 +22,7 @@ import { LayerZeroReceiver } from "../../src/beacon/bridges/LayerZeroCrossChainMessenger.sol"; -/// @notice Round 4 audit C-3 — verifies that the L2 slashing receivers are +/// @notice 3 — verifies that the L2 slashing receivers are /// all UUPS upgradeable, ownership-gated, namespaced under ERC-7201, /// and reject re-initialisation. contract L2SlashingReceiverUUPSTest is Test { diff --git a/test/beacon/LiveBeaconTest.t.sol b/test/beacon/LiveBeaconTest.t.sol index 80a8cf26..3cfc8fb8 100644 --- a/test/beacon/LiveBeaconTest.t.sol +++ b/test/beacon/LiveBeaconTest.t.sol @@ -84,7 +84,6 @@ contract LiveBeaconTest is Test { /// test wrote `bytes32(uint256(N))` which right-aligns the value (BE), /// causing the helper to read zero — the test was silently broken on /// `main` (tracked via issue #130) and is fixed here as part of the - /// Round 4 consolidation. function _leUint64Bytes32(uint64 n) internal pure returns (bytes32) { // Reverse bytes (n becomes little-endian) uint64 le = ((n & 0x00000000000000FF) << 56) diff --git a/test/beacon/ValidatorPodManagerSharePool.t.sol b/test/beacon/ValidatorPodManagerSharePool.t.sol index 55bbff70..af813fe8 100644 --- a/test/beacon/ValidatorPodManagerSharePool.t.sol +++ b/test/beacon/ValidatorPodManagerSharePool.t.sol @@ -6,7 +6,7 @@ import { ValidatorPod } from "../../src/beacon/ValidatorPod.sol"; import { ValidatorPodManager } from "../../src/beacon/ValidatorPodManager.sol"; /// @title ValidatorPodManagerSharePoolTest -/// @notice G-02 (Round 4): Tests for share-pool accounting in ValidatorPodManager. +/// @notice G-02 : Tests for share-pool accounting in ValidatorPodManager. /// @dev Verifies: /// - Proportional share minting on multiple deposits. /// - Rebase up: shareholders see proportional asset gain. diff --git a/test/beacon/ValidatorPodTest.t.sol b/test/beacon/ValidatorPodTest.t.sol index 11c3184b..9574079b 100644 --- a/test/beacon/ValidatorPodTest.t.sol +++ b/test/beacon/ValidatorPodTest.t.sol @@ -645,7 +645,7 @@ contract ValidatorPodTest is BeaconTestBase { }); // Should revert because validator is not active in the pod - // M-11 FIX: Now reverts with InvalidStateRoot when beaconStateRoot is zero + // Now reverts with InvalidStateRoot when beaconStateRoot is zero vm.expectRevert(BeaconChainProofs.InvalidStateRoot.selector); pod.verifyStaleBalance(timestamp, stateRootProof, validatorProof); } diff --git a/test/beacon/bridges/CrossChainMessengersTest.t.sol b/test/beacon/bridges/CrossChainMessengersTest.t.sol index 7db461d3..5ea913e0 100644 --- a/test/beacon/bridges/CrossChainMessengersTest.t.sol +++ b/test/beacon/bridges/CrossChainMessengersTest.t.sol @@ -339,7 +339,7 @@ contract MockBaseMessenger is IBaseCrossDomainMessenger { assertEq(ticket.maxSubmissionCost, 0.01 ether, "submission"); assertEq(ticket.excessFeeRefundAddress, sender, "fee refund"); assertEq(ticket.callValueRefundAddress, sender, "call refund"); - // M-12 FIX: Gas limit includes 10% buffer, so 500_000 * 1.1 = 550_000 + // Gas limit includes 10% buffer, so 500_000 * 1.1 = 550_000 assertEq(ticket.gasLimit, 550_000, "gasLimit"); assertEq(ticket.data, expectedData, "payload"); assertEq(inbox.lastValue(), 0.2 ether, "msg.value"); @@ -354,7 +354,7 @@ contract MockBaseMessenger is IBaseCrossDomainMessenger { function test_estimateFee_UsesSubmissionCostAndGasLimit() public { inbox.setSubmissionFee(0.01 ether); uint256 fee = messenger.estimateFee(42_161, payload, 100_000); - // M-12 FIX: Gas limit includes 10% buffer, so 100_000 * 1.1 = 110_000 + // Gas limit includes 10% buffer, so 100_000 * 1.1 = 110_000 assertEq(fee, 0.01 ether + 110_000 * messenger.l2MaxFeePerGas()); } @@ -448,7 +448,7 @@ contract MockBaseMessenger is IBaseCrossDomainMessenger { abi.encodeCall(ICrossChainReceiver.receiveMessage, (block.chainid, sender, payload)); assertEq(baseMessenger.lastTarget(), target); assertEq(baseMessenger.lastMessage(), expectedData); - // M-12 FIX: Gas limit includes 10% buffer, so 120_000 * 1.1 = 132_000 + // Gas limit includes 10% buffer, so 120_000 * 1.1 = 132_000 assertEq(baseMessenger.lastGasLimit(), 132_000); assertEq(baseMessenger.lastValue(), 0.5 ether); assertTrue(messageId != bytes32(0)); @@ -551,7 +551,7 @@ contract MockBaseMessenger is IBaseCrossDomainMessenger { MockInterchainGasPaymaster.Payment memory payment = igp.getLastPayment(); assertEq(payment.messageId, messageId); assertEq(payment.destinationDomain, 42_161); - // M-12 FIX: Gas limit includes 10% buffer, so 150_000 * 1.1 = 165_000 + // Gas limit includes 10% buffer, so 150_000 * 1.1 = 165_000 assertEq(payment.gasAmount, 165_000); assertEq(payment.refundAddress, sender); assertEq(payment.value, 0.01 ether); diff --git a/test/blueprints/CrossVersionCompatibility.t.sol b/test/blueprints/CrossVersionCompatibility.t.sol index 143d8ba3..ef3d862a 100644 --- a/test/blueprints/CrossVersionCompatibility.t.sol +++ b/test/blueprints/CrossVersionCompatibility.t.sol @@ -151,7 +151,7 @@ contract CrossVersionCompatibilityTest is BlueprintTestHarness { uint64 slashIdV3 = proposeSlash(serviceV3, operator1, 0.4 ether); // Fast forward and execute all - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashIdV1); @@ -181,7 +181,7 @@ contract CrossVersionCompatibilityTest is BlueprintTestHarness { uint64 slashIdV3 = tangle.proposeSlash(serviceV3, operator2, 3000, keccak256("evidence")); // Execute both - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashIdV1); tangle.executeSlash(slashIdV3); diff --git a/test/blueprints/TestHarness.sol b/test/blueprints/TestHarness.sol index 8416a844..bb96c279 100644 --- a/test/blueprints/TestHarness.sol +++ b/test/blueprints/TestHarness.sol @@ -350,7 +350,7 @@ abstract contract BlueprintTestHarness is Test, BlueprintDefinitionHelper { /// @notice Execute a slash (after dispute window) function executeSlash(uint64 slashId) public { - // Fast forward past dispute window (+ TIMESTAMP_BUFFER for M-6 fix) + // Fast forward past dispute window + TIMESTAMP_BUFFER vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); } diff --git a/test/fuzz/InvariantFuzz.t.sol b/test/fuzz/InvariantFuzz.t.sol index ad642c42..852a54be 100644 --- a/test/fuzz/InvariantFuzz.t.sol +++ b/test/fuzz/InvariantFuzz.t.sol @@ -209,7 +209,7 @@ contract InvariantFuzzTest is Test, BlueprintDefinitionHelper { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, slashBps, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); diff --git a/test/fuzz/PaymentFuzz.t.sol b/test/fuzz/PaymentFuzz.t.sol index 2e96640d..88a5aff4 100644 --- a/test/fuzz/PaymentFuzz.t.sol +++ b/test/fuzz/PaymentFuzz.t.sol @@ -28,7 +28,7 @@ contract PaymentFuzzTest is BaseTest { /// @notice Fuzz test that payment splits always sum to the total payment function testFuzz_PaymentSplit_ConservesTotal(uint128 paymentSeed) public { // Use uint128 to avoid overflow issues - // M-5 FIX: Minimum payment is 100 wei + // Minimum payment is 100 wei uint256 payment = bound(uint256(paymentSeed), 100, 1000 ether); // Fund user with enough for this payment diff --git a/test/fuzz/SlashingFuzz.t.sol b/test/fuzz/SlashingFuzz.t.sol index 591b52f4..01ad2090 100644 --- a/test/fuzz/SlashingFuzz.t.sol +++ b/test/fuzz/SlashingFuzz.t.sol @@ -62,7 +62,7 @@ contract SlashingFuzzTest is BaseTest { // Propose and execute slash vm.prank(user1); uint64 slashId = tangle.proposeSlash(svcId, operator2, slashBps, keccak256("fuzz")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -134,7 +134,7 @@ contract SlashingFuzzTest is BaseTest { // Slash vm.prank(user1); uint64 slashId = tangle.proposeSlash(svcId, operator3, slashBps, keccak256("multi")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -203,7 +203,7 @@ contract SlashingFuzzTest is BaseTest { assertEq(proposal.effectiveSlashBps, expectedEffective, "Effective bps scaled"); // Execute and verify balance - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -242,7 +242,7 @@ contract SlashingFuzzTest is BaseTest { } // Execute all - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); for (uint8 i = 0; i < slashCount; i++) { tangle.executeSlash(slashIds[i]); diff --git a/test/helpers/BLSTestHelper.sol b/test/helpers/BLSTestHelper.sol index 66fa16e9..14edac88 100644 --- a/test/helpers/BLSTestHelper.sol +++ b/test/helpers/BLSTestHelper.sol @@ -139,7 +139,7 @@ library BLSTestHelper { /// keccak256(abi.encode(operators)), // operator-set snapshot /// keccak256(output) /// ) - /// Round 3 audit fix for operator-collusion #2c — domain-separated message + /// for operator-collusion #2c — domain-separated message /// bound to the operator-set snapshot so a swap-and-pop reorder /// invalidates in-flight signatures. function buildJobResultMessage( diff --git a/test/scripts/DeploymentScriptsTest.t.sol b/test/scripts/DeploymentScriptsTest.t.sol index c996aea0..8ed05e51 100644 --- a/test/scripts/DeploymentScriptsTest.t.sol +++ b/test/scripts/DeploymentScriptsTest.t.sol @@ -114,7 +114,7 @@ contract MockStaking is IStaking { function addBlueprintForOperator(address, uint64) external override { } function removeBlueprintForOperator(address, uint64) external override { } - // M-9 FIX: Pending slash tracking (no-op for mock) + // Pending slash tracking (no-op for mock) function incrementPendingSlash(address) external override { } function decrementPendingSlash(address) external override { } diff --git a/test/security/AdapterChangeWhileDepositsExistTest.t.sol b/test/security/AdapterChangeWhileDepositsExistTest.t.sol index a6a78f1e..1dfebf17 100644 --- a/test/security/AdapterChangeWhileDepositsExistTest.t.sol +++ b/test/security/AdapterChangeWhileDepositsExistTest.t.sol @@ -6,7 +6,7 @@ import { StakingAssetsFacet } from "../../src/facets/staking/StakingAssetsFacet. import { StandardAssetAdapter } from "../../src/staking/adapters/StandardAssetAdapter.sol"; /// @title AdapterChangeWhileDepositsExistTest -/// @notice Round 4 audit S-2: `registerAdapter` and `removeAdapter` must reject +/// @notice 2: `registerAdapter` and `removeAdapter` must reject /// when the asset has live deposits (`currentDeposits != 0`). Switching /// the adapter under load either strands held balances in the old /// adapter or double-counts them in the new one. The protocol exposes diff --git a/test/security/AuditFixesTest.t.sol b/test/security/AuditFixesTest.t.sol index ca596fd7..0f661027 100644 --- a/test/security/AuditFixesTest.t.sol +++ b/test/security/AuditFixesTest.t.sol @@ -142,7 +142,7 @@ contract AuditFixesTest is BaseTest { } // ─────────────────────────────────────────────────────────────────────── - // Round 2 — gov #4: SLASH_ADMIN cannot self-dispute their own slash. + // — gov #4: SLASH_ADMIN cannot self-dispute their own slash. // Without this gate, an admin who is also the proposer can propose, then // immediately self-dispute for free, freezing operator stake for the full // disputeResolutionDeadline window and (when treasury == admin) capturing diff --git a/test/security/SubscriptionBilling.t.sol b/test/security/SubscriptionBilling.t.sol index a3431e69..c09cfa7f 100644 --- a/test/security/SubscriptionBilling.t.sol +++ b/test/security/SubscriptionBilling.t.sol @@ -365,7 +365,7 @@ contract SubscriptionBillingTest is BaseTest { _billOnceAndMeasure(); } } - // Try a batch bill on the underfunded service. Per the H-1 fix, no cursor + // Try a batch bill on the underfunded service. No cursor // SSTOREs should happen. vm.warp(block.timestamp + SUB_INTERVAL); uint64[] memory ids = new uint64[](1); diff --git a/test/staking/AssetAdapterTest.t.sol b/test/staking/AssetAdapterTest.t.sol index 8f65d8b7..a03b5cd6 100644 --- a/test/staking/AssetAdapterTest.t.sol +++ b/test/staking/AssetAdapterTest.t.sol @@ -245,7 +245,7 @@ contract AssetAdapterTest is Test { vm.prank(delegationManager); uint256 shares = rebasingAdapter.deposit(user1, 100 ether); - // Round 3 economic F2: virtual-offset math. + // virtual-offset math. // shares = actualReceived * (totalShares + VIRTUAL_SHARES) / (balanceBefore + VIRTUAL_ASSETS) // First deposit: totalShares = 0, balanceBefore = 0, VIRTUAL_SHARES = 1e8, VIRTUAL_ASSETS = 1 // shares = 100e18 * 1e8 / 1 = 1e28 @@ -271,7 +271,7 @@ contract AssetAdapterTest is Test { // Token rebases by 10% rebasingToken.rebase(1000); // 10% = 1000 bps - // Round 3 economic F2: virtual-offset math leaves a 1-wei dust on the + // virtual-offset math leaves a 1-wei dust on the // round-trip — that's the price of the first-depositor inflation // defense. ApproxEq with 1-wei tolerance pins both `sharesToAssets` // and `withdraw` close enough to the rebased value. @@ -311,7 +311,7 @@ contract AssetAdapterTest is Test { vm.prank(delegationManager); rebasingAdapter.deposit(user1, 100 ether); - // Round 3 economic F2: with virtual-offset math, the legacy + // with virtual-offset math, the legacy // `exchangeRate` view still normalizes by INITIAL_SHARES_PER_ASSET (1e18), // which is no longer the live mint denominator (the live denominator // uses VIRTUAL_SHARES = 1e8). We don't pin the absolute rate value diff --git a/test/staking/DelegationCriticalTest.t.sol b/test/staking/DelegationCriticalTest.t.sol index 68308d48..875c6255 100644 --- a/test/staking/DelegationCriticalTest.t.sol +++ b/test/staking/DelegationCriticalTest.t.sol @@ -790,7 +790,7 @@ contract DelegationCriticalTest is DelegationTestHarness { delegation.removeSlasher(newSlasher); assertFalse(delegation.isSlasher(newSlasher)); - // Set commission (M-10 FIX: now uses timelock) + // Set commission (now uses timelock) delegation.setOperatorCommission(500); vm.warp(block.timestamp + 7 days + 1); delegation.executeCommissionChange(); diff --git a/test/staking/LiquidDelegationTest.t.sol b/test/staking/LiquidDelegationTest.t.sol index 33400cb7..453292bd 100644 --- a/test/staking/LiquidDelegationTest.t.sol +++ b/test/staking/LiquidDelegationTest.t.sol @@ -466,7 +466,7 @@ contract LiquidDelegationTest is Test { assertLt(expectedAssets, sharesToRedeem, "Slash should devalue shares"); // Note: After slashing, convertToAssets may return slightly more than actual delegation - // due to M-20 FIX virtual offset (1e3). Cap shares to avoid InsufficientDelegation. + // due to virtual offset (1e3). Cap shares to avoid InsufficientDelegation. // This is a known precision edge case when redeeming 100% after slashing. uint256 actualDelegation = staking.getDelegation(address(vault), operator1); uint256 maxRedeemableShares = vault.convertToShares(actualDelegation); @@ -548,7 +548,7 @@ contract LiquidDelegationTest is Test { vault.requestRedeem(5 ether, user1, user1); } - /// @notice Round 4 audit S-1: an authorized operator MUST file with + /// @notice 1: an authorized operator MUST file with /// `controller == owner`. Without this gate, the operator can pick /// any controller (including themselves) and later drive `redeem` /// to route assets to any receiver. @@ -580,7 +580,7 @@ contract LiquidDelegationTest is Test { assertEq(requestId, 0, "operator with controller==owner should succeed"); } - /// @notice Round 4 audit S-1: the owner driving their own request is still + /// @notice 1: the owner driving their own request is still /// free to delegate redemption to a separate controller (legit /// ERC-7540 use case — e.g. an aggregator vault). The gate only /// clamps third-party operators. diff --git a/test/staking/StorageLibrariesTest.t.sol b/test/staking/StorageLibrariesTest.t.sol index a65c87d5..cce1158a 100644 --- a/test/staking/StorageLibrariesTest.t.sol +++ b/test/staking/StorageLibrariesTest.t.sol @@ -118,7 +118,7 @@ contract DelegationStorageLibrariesTest is Test { } function test_depositTracksNativeAndErc20Modes() public { - // M-9 FIX: MIN_LOCK_AMOUNT = 1e16 for locked deposits + // MIN_LOCK_AMOUNT = 1e16 for locked deposits harness.configureAsset(Types.AssetKind.Native, address(0), true, 1, 0); harness.depositAsset(Types.AssetKind.Native, address(0), 1e16, Types.LockMultiplier.OneMonth); diff --git a/test/tangle/OperatorLifecycle.t.sol b/test/tangle/OperatorLifecycle.t.sol index 612dc982..5ff79cdc 100644 --- a/test/tangle/OperatorLifecycle.t.sol +++ b/test/tangle/OperatorLifecycle.t.sol @@ -657,7 +657,7 @@ contract OperatorLifecycleTest is BaseTest { operators[0] = operator1; address[] memory callers = new address[](0); - // M-1 FIX: Use valid TTL (minimum is 1 hour = 3600 seconds) + // Use valid TTL (minimum is 1 hour = 3600 seconds) uint64 validTtl = 1 hours; vm.prank(user1); diff --git a/test/tangle/PaymentEdgeCases.t.sol b/test/tangle/PaymentEdgeCases.t.sol index 6665ac1c..a575e35d 100644 --- a/test/tangle/PaymentEdgeCases.t.sol +++ b/test/tangle/PaymentEdgeCases.t.sol @@ -78,28 +78,15 @@ contract ETHRejecter { } /// @notice Service-fee distributor that always reverts on distributeServiceFee. -/// @dev Verifies the atomic transfer-and-distribute path unwinds the ERC20 -/// transfer when the distributor itself reverts (F-001 hardening). Inherits -/// `MockServiceFeeDistributor` for the interface stubs; overrides only the -/// distribute path. +/// @dev Used to verify the pull-payment path: when the distributor reverts, no +/// ERC20 leaves the diamond (allowance is never consumed) and the share +/// refunds to escrow. contract RevertingDistributor is MockServiceFeeDistributor { function distributeServiceFee(uint64, uint64, address, address, uint256) external payable override { revert("distributor down"); } } -interface ITanglePaymentsInternalLike { - function forwardStakerShareAtomic( - address distributor, - uint64 serviceId, - uint64 blueprintId, - address operator, - address token, - uint256 amount - ) - external; -} - /// @title PaymentEdgeCasesTest /// @notice Edge cases and stress tests for payment system contract PaymentEdgeCasesTest is BaseTest { @@ -186,7 +173,7 @@ contract PaymentEdgeCasesTest is BaseTest { // ═══════════════════════════════════════════════════════════════════════════ function test_Payment_VerySmallAmount_RevertsWithMinimum() public { - // M-5 FIX: Payments below MINIMUM_PAYMENT_AMOUNT (100) should revert + // Payments below MINIMUM_PAYMENT_AMOUNT (100) should revert uint256 payment = 1; vm.expectRevert(abi.encodeWithSelector(Errors.PaymentTooSmall.selector, payment, 100)); _requestServiceWithPayment(user1, blueprintId, operator1, payment); @@ -384,25 +371,6 @@ contract PaymentEdgeCasesTest is BaseTest { tangle.setTreasury(payable(treasury)); } - function test_ForwardStakerShareAtomic_RejectsExternalCallers() public { - // F-001 hardening: the atomic transfer-and-distribute helper is a self-call - // entry point gated by `msg.sender == address(this)`. Any external caller - // (including admin) must revert with Unauthorized — otherwise an external - // actor could drain the diamond's ERC20 balance to an arbitrary distributor. - ITanglePaymentsInternalLike target = ITanglePaymentsInternalLike(address(tangle)); - vm.expectRevert(Errors.Unauthorized.selector); - target.forwardStakerShareAtomic( - address(serviceFeeDistributor), 1, 1, operator1, address(token), 1 ether - ); - - // Admin should not bypass either. - vm.prank(admin); - vm.expectRevert(Errors.Unauthorized.selector); - target.forwardStakerShareAtomic( - address(serviceFeeDistributor), 1, 1, operator1, address(token), 1 ether - ); - } - function test_Payment_ZeroExposure_OperatorStillGetsPaid() public { // Operators always get paid for providing compute, even with 0% exposure. // Customer protection: set minimum exposureBps on the service to prevent this. diff --git a/test/tangle/Payments.t.sol b/test/tangle/Payments.t.sol index b37c9e12..beea1b41 100644 --- a/test/tangle/Payments.t.sol +++ b/test/tangle/Payments.t.sol @@ -958,7 +958,7 @@ contract PaymentsTest is BaseTest { // ═══════════════════════════════════════════════════════════════════════════ function test_Payment_SmallAmountRounding_RevertsWithMinimum() public { - // M-5 FIX: Payments below MINIMUM_PAYMENT_AMOUNT (100) should revert + // Payments below MINIMUM_PAYMENT_AMOUNT (100) should revert uint256 payment = 1; // 1 wei - below minimum vm.expectRevert(abi.encodeWithSelector(Errors.PaymentTooSmall.selector, payment, 100)); diff --git a/test/tangle/RFQPaymentDistribution.t.sol b/test/tangle/RFQPaymentDistribution.t.sol index b5903849..4c6ab8d3 100644 --- a/test/tangle/RFQPaymentDistribution.t.sol +++ b/test/tangle/RFQPaymentDistribution.t.sol @@ -592,7 +592,7 @@ contract RFQPaymentDistributionTest is BaseTest { uint256 treasuryGot = treasury.balance; uint256 opPending = tangle.pendingRewards(operator1); - // M-5 fix: staker (last recipient) gets rounding dust + // staker (last recipient) gets rounding dust assertEq(devGot + treasuryGot + opPending, payment, "odd payment: no dust lost"); } diff --git a/test/tangle/ServiceLifecycleEdgeCases.t.sol b/test/tangle/ServiceLifecycleEdgeCases.t.sol index 2ac4ace8..19b17643 100644 --- a/test/tangle/ServiceLifecycleEdgeCases.t.sol +++ b/test/tangle/ServiceLifecycleEdgeCases.t.sol @@ -423,7 +423,7 @@ contract ServiceLifecycleEdgeCasesTest is BaseTest { ops[0] = operator1; address[] memory callers = new address[](0); - // M-1 FIX: TTL above MAX_SERVICE_TTL (365 days) should revert + // TTL above MAX_SERVICE_TTL (365 days) should revert uint64 maxTTL = type(uint64).max; uint64 maximum = 365 days; diff --git a/test/tangle/Slashing.t.sol b/test/tangle/Slashing.t.sol index 5ecbd858..3778b147 100644 --- a/test/tangle/Slashing.t.sol +++ b/test/tangle/Slashing.t.sol @@ -184,7 +184,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -226,7 +226,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(managedServiceId, operator1, 1000, keccak256("hook")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); uint64[] memory ids = new uint64[](1); ids[0] = slashId; @@ -256,7 +256,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 2000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -283,7 +283,7 @@ contract SlashingTest is BaseTest { vm.prank(operator1); tangle.disputeSlash(slashId, "disputed"); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); vm.expectRevert(abi.encodeWithSelector(Errors.SlashNotExecutable.selector, slashId)); @@ -294,7 +294,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -306,7 +306,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Warp to exactly when execution becomes possible (executeAfter + TIMESTAMP_BUFFER) + // Warp to exactly when execution becomes possible (executeAfter + TIMESTAMP_BUFFER) vm.warp(block.timestamp + 7 days + 15); // Should be executable @@ -320,7 +320,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); // Random address can execute after window @@ -373,7 +373,7 @@ contract SlashingTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -425,7 +425,7 @@ contract SlashingTest is BaseTest { uint64 slashId2 = tangle.proposeSlash(serviceId, operator1, slashBps2, keccak256("e2")); vm.stopPrank(); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId1); diff --git a/test/tangle/SlashingEdgeCases.t.sol b/test/tangle/SlashingEdgeCases.t.sol index 3992b7b8..d0826195 100644 --- a/test/tangle/SlashingEdgeCases.t.sol +++ b/test/tangle/SlashingEdgeCases.t.sol @@ -48,7 +48,7 @@ contract SlashingEdgeCasesTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 8000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -84,7 +84,7 @@ contract SlashingEdgeCasesTest is BaseTest { assertEq(tangle.getSlashProposal(slashId2).proposedAt, tangle.getSlashProposal(slashId3).proposedAt); // All can be executed after window - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); uint256 stakeBefore = staking.getOperatorSelfStake(operator1); @@ -114,7 +114,7 @@ contract SlashingEdgeCasesTest is BaseTest { uint64 slashId3 = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("e3")); // Wait until all are executable - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); uint256 stakeBefore = staking.getOperatorSelfStake(operator1); @@ -148,7 +148,7 @@ contract SlashingEdgeCasesTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 5000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -166,7 +166,7 @@ contract SlashingEdgeCasesTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 5000, keccak256("evidence")); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -197,7 +197,7 @@ contract SlashingEdgeCasesTest is BaseTest { uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); // Warp to one second after window ends - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); vm.prank(operator1); @@ -209,7 +209,7 @@ contract SlashingEdgeCasesTest is BaseTest { vm.prank(user1); uint64 slashId = tangle.proposeSlash(serviceId, operator1, 1000, keccak256("evidence")); - // M-6 FIX: Warp to exactly when execution becomes possible (executeAfter + TIMESTAMP_BUFFER) + // Warp to exactly when execution becomes possible (executeAfter + TIMESTAMP_BUFFER) vm.warp(block.timestamp + 7 days + 15); // Should be executable @@ -283,7 +283,7 @@ contract SlashingEdgeCasesTest is BaseTest { } // Wait for dispute window to pass - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); // Execute all slashes @@ -311,7 +311,7 @@ contract SlashingEdgeCasesTest is BaseTest { } // Wait for dispute window to pass - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); // Execute all slashes @@ -338,7 +338,7 @@ contract SlashingEdgeCasesTest is BaseTest { SlashingLib.SlashProposal memory proposal = tangle.getSlashProposal(slashId); assertEq(proposal.executeAfter, block.timestamp + 1 hours); - // M-6 FIX: Can execute after 1 hour + TIMESTAMP_BUFFER (15s) + // Can execute after 1 hour + TIMESTAMP_BUFFER (15s) vm.warp(block.timestamp + 1 hours + 15); tangle.executeSlash(slashId); @@ -361,7 +361,7 @@ contract SlashingEdgeCasesTest is BaseTest { vm.expectRevert(abi.encodeWithSelector(Errors.SlashNotExecutable.selector, slashId)); tangle.executeSlash(slashId); - // M-6 FIX: Can execute after 30 days + TIMESTAMP_BUFFER (15s) + // Can execute after 30 days + TIMESTAMP_BUFFER (15s) vm.warp(block.timestamp + 1 days + 16); tangle.executeSlash(slashId); } @@ -467,7 +467,7 @@ contract SlashingEdgeCasesTest is BaseTest { uint256 stakeBefore = staking.getOperatorSelfStake(operator1); - // M-6 FIX: Add TIMESTAMP_BUFFER (15s) to account for manipulation protection + // Add TIMESTAMP_BUFFER (15s) to account for manipulation protection vm.warp(block.timestamp + 7 days + 16); tangle.executeSlash(slashId); @@ -513,7 +513,7 @@ contract SlashingEdgeCasesTest is BaseTest { assertEq(operator1.balance, balBefore - DISPUTE_BOND, "bond escrowed"); // Admin agrees with the dispute → cancelSlash credits the bond into the - // pull-pattern mapping (Round 3 audit fix for economic F3 — disputer + // pull-pattern mapping (disputer // contracts cannot re-enter staking via the refund call now). The bond // is not pushed to the disputer; they claim it explicitly. vm.prank(admin); From 0580748af77b835fad999f58ec07f9e1501740f9 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Sun, 17 May 2026 03:53:58 -0600 Subject: [PATCH 5/5] chore(bindings): release v0.17.1 Regenerate against polish branch (commit 50713b8). Surfaces from this audit batch + polish: - New: withdrawRemainingEscrowTo (M-2 escrow rescue) - New: setMaxOperatorsPerService + maxOperatorsPerService view + MaxOperatorsPerServiceUpdated event (governance-tunable operator cap) - New: PushTransferFailed, PriceOracleFallback events (M-1 reentrancy + M-1 economic graceful-degrade) - New: rescuePendingDisputeBond admin path (slashing L-1 follow-up; if applicable) - Behavioral: ServiceFeeDistributor.distributeServiceFee now pulls ERC20 via transferFrom (F-001 pull-payment) - Storage: _baselinePriceByOpAsset mapping (H-1 oracle price snapshot at activation) - Removed: forwardStakerShareAtomic (superseded by pull-payment) --- bindings/CHANGELOG.md | 9 +- bindings/Cargo.toml | 2 +- bindings/TNT_CORE_VERSION | 2 +- bindings/abi/IBlueprintServiceManager.json | 2 +- bindings/abi/IMultiAssetDelegation.json | 2 +- bindings/abi/ITangle.json | 2 +- bindings/abi/ITangleFull.json | 2 +- bindings/abi/ITangleSlashing.json | 2 +- bindings/abi/MultiAssetDelegation.json | 2 +- bindings/abi/OperatorStatusRegistry.json | 2 +- bindings/src/bindings/i_tangle.rs | 239 +++++++++++++++++- bindings/src/bindings/i_tangle_full.rs | 239 +++++++++++++++++- bindings/src/bindings/i_tangle_services.rs | 239 +++++++++++++++++- .../src/bindings/multi_asset_delegation.rs | 216 +++++++++++++++- fixtures/Cargo.toml | 2 +- 15 files changed, 943 insertions(+), 19 deletions(-) diff --git a/bindings/CHANGELOG.md b/bindings/CHANGELOG.md index ad209430..d60e941d 100644 --- a/bindings/CHANGELOG.md +++ b/bindings/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.17.1] - 2026-05-17 + +### Changed + +- Updated bindings from TNT Core contracts + ## [0.17.0] - 2026-05-15 Quote-path security hardening, multi-asset bill weighting, EIP-170 facet split, @@ -798,7 +804,7 @@ ValidatorPodManager). Single coordinated bindings cut. - Raw ABI JSON exports via `abi` module - `TNT_CORE_VERSION` constant for commit tracking -[Unreleased]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.17.0...HEAD +[Unreleased]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.17.1...HEAD [0.11.1]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.11.0...bindings-v0.11.1 [0.11.0]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.10.9...bindings-v0.11.0 [0.1.0]: https://github.com/tangle-network/tnt-core/releases/tag/bindings-v0.1.0 @@ -839,3 +845,4 @@ ValidatorPodManager). Single coordinated bindings cut. [0.11.3]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.11.2...bindings-v0.11.3 [0.16.0]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.15.0...bindings-v0.16.0 [0.17.0]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.16.0...bindings-v0.17.0 +[0.17.1]: https://github.com/tangle-network/tnt-core/compare/bindings-v0.17.0...bindings-v0.17.1 diff --git a/bindings/Cargo.toml b/bindings/Cargo.toml index e7e3f82b..333401fe 100644 --- a/bindings/Cargo.toml +++ b/bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tnt-core-bindings" -version = "0.17.0" +version = "0.17.1" edition = "2021" rust-version = "1.81" description = "Rust bindings for TNT Core Solidity contracts (Tangle staking protocol)" diff --git a/bindings/TNT_CORE_VERSION b/bindings/TNT_CORE_VERSION index 854c82cc..44529092 100644 --- a/bindings/TNT_CORE_VERSION +++ b/bindings/TNT_CORE_VERSION @@ -1 +1 @@ -f64a4e4d4db761b8a5f2aafc3e87ed588797f88c \ No newline at end of file +50713b8d7146e44b4f67df0b7428afa6efecfc1c \ No newline at end of file diff --git a/bindings/abi/IBlueprintServiceManager.json b/bindings/abi/IBlueprintServiceManager.json index 524e4084..a5ab8e16 100644 --- a/bindings/abi/IBlueprintServiceManager.json +++ b/bindings/abi/IBlueprintServiceManager.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"canJoin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"canLeave","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"computeBillAdjustmentBps","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"periodStart","type":"uint64","internalType":"uint64"},{"name":"periodEnd","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"adjustmentBps","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"forceRemoveAllowsBelowMin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ok","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getAggregationThreshold","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"thresholdBps","type":"uint16","internalType":"uint16"},{"name":"thresholdType","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatInterval","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"interval","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatThreshold","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"threshold","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getMinOperatorStake","inputs":[],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"minStake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNonPaymentTerminationPolicy","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"graceIntervals","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRequiredResultCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"required","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getSlashingWindow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"window","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"onAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onApprove","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"stakingPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onBlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"tangleCore","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onExitCanceled","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onExitScheduled","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"executeAfter","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onJobResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"outputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onOperatorJoined","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onOperatorLeft","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onRegister","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onReject","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"requestInputs","type":"bytes","internalType":"bytes"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentAsset","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onServiceInitialized","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onServiceTermination","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offender","type":"bytes","internalType":"bytes"},{"name":"slashPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUnappliedSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offender","type":"bytes","internalType":"bytes"},{"name":"slashPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUnregister","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUpdatePreferences","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newPreferences","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"queryDeveloperPaymentAddress","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"developerPaymentAddress","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"queryDisputeOrigin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"disputeOrigin","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"queryIsPaymentAssetAllowed","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"asset","type":"address","internalType":"address"}],"outputs":[{"name":"isAllowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"querySlashingOrigin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"slashingOrigin","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"requiresAggregation","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"required","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"canJoin(uint64,address)":"b47242e8","canLeave(uint64,address)":"e518de76","computeBillAdjustmentBps(uint64,uint64,uint64)":"f93ff2b7","forceRemoveAllowsBelowMin(uint64)":"f3e28f32","getAggregationThreshold(uint64,uint8)":"25fcc64e","getExitConfig(uint64)":"d2672ed4","getHeartbeatInterval(uint64)":"0068080b","getHeartbeatThreshold(uint64)":"92cbb78e","getMinOperatorStake()":"54dce6c2","getNonPaymentTerminationPolicy(uint64)":"71e8e85d","getRequiredResultCount(uint64,uint8)":"4c443e04","getSlashingWindow(uint64)":"3fdadfcc","onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":"158bb2eb","onApprove(address,uint64,uint8)":"b159eb34","onBlueprintCreated(uint64,address,address)":"0b6535d7","onExitCanceled(uint64,address)":"5440662c","onExitScheduled(uint64,address,uint64)":"e0559c63","onJobCall(uint64,uint8,uint64,bytes)":"9838caa3","onJobResult(uint64,uint8,uint64,address,bytes,bytes)":"c40c80d1","onOperatorJoined(uint64,address,uint16)":"9aa26a92","onOperatorLeft(uint64,address)":"965d231b","onRegister(address,bytes)":"67793cc6","onReject(address,uint64)":"c9cd4a18","onRequest(uint64,address,address[],bytes,uint64,address,uint256)":"c28cd812","onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":"82a1ece4","onServiceTermination(uint64,address)":"a24e8a90","onSlash(uint64,bytes,uint8)":"7e14b919","onUnappliedSlash(uint64,bytes,uint8)":"0881898f","onUnregister(address)":"151a4576","onUpdatePreferences(address,bytes)":"f58e2066","queryDeveloperPaymentAddress(uint64)":"08179f35","queryDisputeOrigin(uint64)":"14b4df4c","queryIsPaymentAssetAllowed(uint64,address)":"e390fcdb","querySlashingOrigin(uint64)":"74ceeb55","requiresAggregation(uint64,uint8)":"19ed5bb2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canJoin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canLeave\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"periodStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"periodEnd\",\"type\":\"uint64\"}],\"name\":\"computeBillAdjustmentBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"adjustmentBps\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"forceRemoveAllowsBelowMin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getAggregationThreshold\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"thresholdBps\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"thresholdType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatInterval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatThreshold\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinOperatorStake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"minStake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getNonPaymentTerminationPolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"graceIntervals\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getRequiredResultCount\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"required\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getSlashingWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"window\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"onAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"stakingPercent\",\"type\":\"uint8\"}],\"name\":\"onApprove\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tangleCore\",\"type\":\"address\"}],\"name\":\"onBlueprintCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onExitCanceled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"onExitScheduled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"onJobCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"outputs\",\"type\":\"bytes\"}],\"name\":\"onJobResult\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"onOperatorJoined\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onOperatorLeft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"onRegister\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"onReject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"requestInputs\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"onRequest\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"onServiceInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"onServiceTermination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offender\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"slashPercent\",\"type\":\"uint8\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offender\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"slashPercent\",\"type\":\"uint8\"}],\"name\":\"onUnappliedSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onUnregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newPreferences\",\"type\":\"bytes\"}],\"name\":\"onUpdatePreferences\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"queryDeveloperPaymentAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"developerPaymentAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"queryDisputeOrigin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"disputeOrigin\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"queryIsPaymentAssetAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"querySlashingOrigin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"slashingOrigin\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"requiresAggregation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Blueprint developers implement this to customize all aspects of their blueprint. This is the primary integration point for blueprint developers - implement the hooks you need and leave others as default (via BlueprintServiceManagerBase). The lifecycle flow: 1. Blueprint created \\u2192 onBlueprintCreated 2. Operators register \\u2192 onRegister 3. Service requested \\u2192 onRequest 4. Operators approve \\u2192 onApprove 5. Service activated \\u2192 onServiceInitialized 6. Jobs submitted \\u2192 onJobCall 7. Results submitted \\u2192 onJobResult 8. Service terminated \\u2192 onServiceTermination\",\"kind\":\"dev\",\"methods\":{\"canJoin(uint64,address)\":{\"details\":\"Called before operator joins - return false to reject\",\"params\":{\"operator\":\"The operator wanting to join\",\"serviceId\":\"The service ID\"},\"returns\":{\"allowed\":\"True if operator can join\"}},\"canLeave(uint64,address)\":{\"details\":\"Called before operator leaves - return false to reject Note: This is called AFTER the exit queue check. Use getExitConfig to customize timing.\",\"params\":{\"operator\":\"The operator wanting to leave\",\"serviceId\":\"The service ID\"},\"returns\":{\"allowed\":\"True if operator can leave\"}},\"computeBillAdjustmentBps(uint64,uint64,uint64)\":{\"details\":\"Called by the protocol's permissionless bill trigger BEFORE drawing the bill from escrow, so a manager can implement uptime-based discounts, missed-result penalties, or any other quality-of-service feedback. The returned value is clamped to `[0, 10_000]` (`10_000` = no discount, `0` = bill is waived). Values above 10_000 cannot inflate the bill \\u2014 a misbehaving manager cannot overcharge the customer. Reverting or being unimplemented yields the full bill.\",\"params\":{\"periodEnd\":\"Exclusive timestamp of the billing window's end (= `lastPaymentAt + interval`)\",\"periodStart\":\"Inclusive timestamp of the billing window's start (= prior `lastPaymentAt`)\",\"serviceId\":\"Service being billed\"},\"returns\":{\"adjustmentBps\":\"Bill multiplier in basis points (10_000 = full bill)\"}},\"forceRemoveAllowsBelowMin(uint64)\":{\"details\":\"By default the protocol enforces `operatorCount > minOperators` even when a blueprint manager calls `forceRemoveOperator`. A blueprint that genuinely needs emergency-eviction-below-min must self-document by returning true. Reverts / unimplemented => protocol enforces the floor (fail-closed).\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"ok\":\"True to allow eviction below the minimum operator count\"}},\"getAggregationThreshold(uint64,uint8)\":{\"details\":\"Only relevant if requiresAggregation returns true\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"thresholdBps\":\"Threshold in basis points (6700 = 67%)\",\"thresholdType\":\"0 = CountBased (% of operators), 1 = StakeWeighted (% of total stake)\"}},\"getExitConfig(uint64)\":{\"details\":\"Defines minimum commitment and exit queue timing\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"exitQueueDuration\":\"Time between scheduling exit and completing it (seconds)\",\"forceExitAllowed\":\"Whether service owner can force-exit operators\",\"minCommitmentDuration\":\"Minimum time operator must stay after joining (seconds)\",\"useDefault\":\"True to use protocol default\"}},\"getHeartbeatInterval(uint64)\":{\"details\":\"Operators must submit heartbeats within this interval\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"interval\":\"Heartbeat interval in blocks (0 = disabled)\",\"useDefault\":\"True to use protocol default, false to use custom value\"}},\"getHeartbeatThreshold(uint64)\":{\"details\":\"Percentage of operators that must respond within interval\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"threshold\":\"Threshold percentage (0-100)\",\"useDefault\":\"True to use protocol default\"}},\"getMinOperatorStake()\":{\"details\":\"Called during operator registration to validate stake requirements\",\"returns\":{\"minStake\":\"Custom minimum stake amount (only used if useDefault=false)\",\"useDefault\":\"True to use protocol default from staking module\"}},\"getNonPaymentTerminationPolicy(uint64)\":{\"details\":\"Core computes eligibility as: `lastPaymentAt + subscriptionInterval + (subscriptionInterval * graceIntervals)`. `graceIntervals = 0` means termination is eligible immediately at first due time. Implementations should return `useDefault=true` unless they need custom grace behavior.\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"graceIntervals\":\"Additional full intervals to wait after first missed payment\",\"useDefault\":\"True to use protocol default\"}},\"getRequiredResultCount(uint64,uint8)\":{\"details\":\"Override for consensus requirements (e.g., 2/3 majority)\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"required\":\"Number of results needed (0 = service operator count)\"}},\"getSlashingWindow(uint64)\":{\"details\":\"Time window for disputes before slash is finalized\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"useDefault\":\"True to use protocol default\",\"window\":\"Slashing window in blocks\"}},\"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Validate the aggregated result, verify BLS signature, check threshold\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key of signers (G2 point)\",\"aggregatedSignature\":\"The aggregated BLS signature (G1 point x, y)\",\"job\":\"The job index\",\"jobCallId\":\"The job call ID\",\"output\":\"The aggregated output\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap of which operators signed\"}},\"onApprove(address,uint64,uint8)\":{\"params\":{\"operator\":\"The approving operator\",\"requestId\":\"The request ID\",\"stakingPercent\":\"Percentage of stake committed to this service (0-100)\"}},\"onBlueprintCreated(uint64,address,address)\":{\"details\":\"Store the blueprintId and tangleCore address for future reference\",\"params\":{\"blueprintId\":\"The new blueprint ID\",\"owner\":\"The blueprint owner\",\"tangleCore\":\"The address of the Tangle core contract\"}},\"onExitCanceled(uint64,address)\":{\"params\":{\"operator\":\"The operator canceling exit\",\"serviceId\":\"The service ID\"}},\"onExitScheduled(uint64,address,uint64)\":{\"details\":\"Allows manager to track pending exits, notify other parties, etc.\",\"params\":{\"executeAfter\":\"Timestamp when exit can be executed\",\"operator\":\"The operator scheduling exit\",\"serviceId\":\"The service ID\"}},\"onJobCall(uint64,uint8,uint64,bytes)\":{\"details\":\"Validate job inputs, check caller permissions, etc.\",\"params\":{\"inputs\":\"Job inputs (blueprint-specific encoding)\",\"job\":\"The job index in the blueprint\",\"jobCallId\":\"Unique ID for this job call\",\"serviceId\":\"The service ID\"}},\"onJobResult(uint64,uint8,uint64,address,bytes,bytes)\":{\"details\":\"Validate result format, check operator eligibility, aggregate results\",\"params\":{\"inputs\":\"Original job inputs\",\"job\":\"The job index\",\"jobCallId\":\"The job call ID\",\"operator\":\"The operator submitting\",\"outputs\":\"Result outputs (blueprint-specific encoding)\",\"serviceId\":\"The service ID\"}},\"onOperatorJoined(uint64,address,uint16)\":{\"params\":{\"exposureBps\":\"The operator's stake exposure in basis points\",\"operator\":\"The operator that joined\",\"serviceId\":\"The service ID\"}},\"onOperatorLeft(uint64,address)\":{\"params\":{\"operator\":\"The operator that left\",\"serviceId\":\"The service ID\"}},\"onRegister(address,bytes)\":{\"details\":\"Validate operator requirements here (stake, reputation, etc.)\",\"params\":{\"operator\":\"The operator's address\",\"registrationInputs\":\"Custom registration data (blueprint-specific encoding)\"}},\"onReject(address,uint64)\":{\"params\":{\"operator\":\"The rejecting operator\",\"requestId\":\"The request ID\"}},\"onRequest(uint64,address,address[],bytes,uint64,address,uint256)\":{\"details\":\"Validate service configuration, operator selection, payment amount\",\"params\":{\"operators\":\"Requested operators\",\"paymentAmount\":\"Payment amount\",\"paymentAsset\":\"Payment token address (address(0) for native)\",\"requestId\":\"The request ID\",\"requestInputs\":\"Service configuration (blueprint-specific encoding)\",\"requester\":\"Who is requesting the service\",\"ttl\":\"Time-to-live for the service\"}},\"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"owner\":\"The service owner\",\"permittedCallers\":\"Addresses allowed to submit jobs\",\"requestId\":\"The original request ID\",\"serviceId\":\"The new service ID\",\"ttl\":\"Service time-to-live\"}},\"onServiceTermination(uint64,address)\":{\"params\":{\"owner\":\"The service owner\",\"serviceId\":\"The service ID\"}},\"onSlash(uint64,bytes,uint8)\":{\"params\":{\"offender\":\"The slashed operator\",\"serviceId\":\"The service ID\",\"slashPercent\":\"Percentage slashed\"}},\"onUnappliedSlash(uint64,bytes,uint8)\":{\"details\":\"This is the dispute window - gather evidence, notify parties\",\"params\":{\"offender\":\"The operator being slashed (encoded as bytes for flexibility)\",\"serviceId\":\"The service ID\",\"slashPercent\":\"Percentage of stake to slash\"}},\"onUnregister(address)\":{\"params\":{\"operator\":\"The operator's address\"}},\"onUpdatePreferences(address,bytes)\":{\"params\":{\"newPreferences\":\"Updated preferences data\",\"operator\":\"The operator's address\"}},\"queryDeveloperPaymentAddress(uint64)\":{\"details\":\"Override to route payments to different addresses per service\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"developerPaymentAddress\":\"Address to receive developer share\"}},\"queryDisputeOrigin(uint64)\":{\"details\":\"Override to allow custom dispute resolution\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"disputeOrigin\":\"Address that can dispute (default: this contract)\"}},\"queryIsPaymentAssetAllowed(uint64,address)\":{\"params\":{\"asset\":\"The payment asset address (address(0) for native)\",\"serviceId\":\"The service ID\"},\"returns\":{\"isAllowed\":\"True if the asset can be used for payment\"}},\"querySlashingOrigin(uint64)\":{\"details\":\"Override to allow custom slashing authorities (dispute contracts, etc.)\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"slashingOrigin\":\"Address that can slash (default: this contract)\"}},\"requiresAggregation(uint64,uint8)\":{\"details\":\"When true, operators must submit individual signatures that are aggregated off-chain, then submitted via submitAggregatedResult instead of submitResult\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"required\":\"True if BLS aggregation is required for this job\"}}},\"title\":\"IBlueprintServiceManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"canJoin(uint64,address)\":{\"notice\":\"Check if an operator can join a dynamic service\"},\"canLeave(uint64,address)\":{\"notice\":\"Check if an operator can leave a dynamic service\"},\"computeBillAdjustmentBps(uint64,uint64,uint64)\":{\"notice\":\"Scale the nominal subscription bill for a period by an SLA / quality factor.\"},\"forceRemoveAllowsBelowMin(uint64)\":{\"notice\":\"Whether `forceRemoveOperator` may drop the service below `minOperators`.\"},\"getAggregationThreshold(uint64,uint8)\":{\"notice\":\"Get the aggregation threshold configuration for a job\"},\"getExitConfig(uint64)\":{\"notice\":\"Get the exit configuration for operator departures\"},\"getHeartbeatInterval(uint64)\":{\"notice\":\"Get the heartbeat interval for a service\"},\"getHeartbeatThreshold(uint64)\":{\"notice\":\"Get the heartbeat threshold for a service\"},\"getMinOperatorStake()\":{\"notice\":\"Get the minimum stake required for operators to register for this blueprint\"},\"getNonPaymentTerminationPolicy(uint64)\":{\"notice\":\"Get non-payment termination policy for subscription services\"},\"getRequiredResultCount(uint64,uint8)\":{\"notice\":\"Get the number of results required to complete a job\"},\"getSlashingWindow(uint64)\":{\"notice\":\"Get the slashing window for a service\"},\"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Called when an aggregated job result is submitted\"},\"onApprove(address,uint64,uint8)\":{\"notice\":\"Called when an operator approves a service request\"},\"onBlueprintCreated(uint64,address,address)\":{\"notice\":\"Called when blueprint is created\"},\"onExitCanceled(uint64,address)\":{\"notice\":\"Called when an operator cancels their scheduled exit\"},\"onExitScheduled(uint64,address,uint64)\":{\"notice\":\"Called when an operator schedules their exit from a service\"},\"onJobCall(uint64,uint8,uint64,bytes)\":{\"notice\":\"Called when a job is submitted\"},\"onJobResult(uint64,uint8,uint64,address,bytes,bytes)\":{\"notice\":\"Called when an operator submits a job result\"},\"onOperatorJoined(uint64,address,uint16)\":{\"notice\":\"Called after an operator successfully joins a service\"},\"onOperatorLeft(uint64,address)\":{\"notice\":\"Called after an operator successfully leaves a service\"},\"onRegister(address,bytes)\":{\"notice\":\"Called when an operator registers to this blueprint\"},\"onReject(address,uint64)\":{\"notice\":\"Called when an operator rejects a service request\"},\"onRequest(uint64,address,address[],bytes,uint64,address,uint256)\":{\"notice\":\"Called when a service is requested\"},\"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)\":{\"notice\":\"Called when service becomes active (all operators approved)\"},\"onServiceTermination(uint64,address)\":{\"notice\":\"Called when service is terminated\"},\"onSlash(uint64,bytes,uint8)\":{\"notice\":\"Called when a slash is finalized and applied\"},\"onUnappliedSlash(uint64,bytes,uint8)\":{\"notice\":\"Called when a slash is queued but not yet applied\"},\"onUnregister(address)\":{\"notice\":\"Called when an operator unregisters from this blueprint\"},\"onUpdatePreferences(address,bytes)\":{\"notice\":\"Called when an operator updates their preferences (RPC address, etc.)\"},\"queryDeveloperPaymentAddress(uint64)\":{\"notice\":\"Get the developer payment address for a service\"},\"queryDisputeOrigin(uint64)\":{\"notice\":\"Query the account authorized to dispute slashes\"},\"queryIsPaymentAssetAllowed(uint64,address)\":{\"notice\":\"Check if a payment asset is allowed for this blueprint\"},\"querySlashingOrigin(uint64)\":{\"notice\":\"Query the account authorized to propose slashes for a service\"},\"requiresAggregation(uint64,uint8)\":{\"notice\":\"Check if a job requires BLS aggregated results\"}},\"notice\":\"Full interface for blueprint-specific service managers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IBlueprintServiceManager.sol\":\"IBlueprintServiceManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IBlueprintServiceManager.sol\":{\"keccak256\":\"0x4f89a6446dc6fe47fdd0c0f4e3538f03efade2b780109ef2ec1f83ba544f19aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29e9375e218ad3a4eb0e0339d312996533654394ba59533915a7069a8495dab1\",\"dweb:/ipfs/QmTDxKRsuPYnLsHLhJKXPUYvcRaTft42tKNa3H2qGAoqCN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canJoin","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canLeave","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"periodStart","type":"uint64"},{"internalType":"uint64","name":"periodEnd","type":"uint64"}],"stateMutability":"view","type":"function","name":"computeBillAdjustmentBps","outputs":[{"internalType":"uint16","name":"adjustmentBps","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"forceRemoveAllowsBelowMin","outputs":[{"internalType":"bool","name":"ok","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getAggregationThreshold","outputs":[{"internalType":"uint16","name":"thresholdBps","type":"uint16"},{"internalType":"uint8","name":"thresholdType","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatInterval","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"interval","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatThreshold","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint8","name":"threshold","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMinOperatorStake","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint256","name":"minStake","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getNonPaymentTerminationPolicy","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"graceIntervals","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRequiredResultCount","outputs":[{"internalType":"uint32","name":"required","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashingWindow","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"window","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"onAggregatedResult"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"uint8","name":"stakingPercent","type":"uint8"}],"stateMutability":"payable","type":"function","name":"onApprove"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"tangleCore","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onBlueprintCreated"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onExitCanceled"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"executeAfter","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onExitScheduled"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onJobCall"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"bytes","name":"outputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onJobResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"onOperatorJoined"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onOperatorLeft"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onRegister"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onReject"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"requestInputs","type":"bytes"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentAsset","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"onRequest"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onServiceInitialized"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onServiceTermination"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bytes","name":"offender","type":"bytes"},{"internalType":"uint8","name":"slashPercent","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bytes","name":"offender","type":"bytes"},{"internalType":"uint8","name":"slashPercent","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"onUnappliedSlash"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onUnregister"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"newPreferences","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onUpdatePreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"queryDeveloperPaymentAddress","outputs":[{"internalType":"address payable","name":"developerPaymentAddress","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"queryDisputeOrigin","outputs":[{"internalType":"address","name":"disputeOrigin","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"asset","type":"address"}],"stateMutability":"view","type":"function","name":"queryIsPaymentAssetAllowed","outputs":[{"internalType":"bool","name":"isAllowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"querySlashingOrigin","outputs":[{"internalType":"address","name":"slashingOrigin","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"requiresAggregation","outputs":[{"internalType":"bool","name":"required","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"canJoin(uint64,address)":{"details":"Called before operator joins - return false to reject","params":{"operator":"The operator wanting to join","serviceId":"The service ID"},"returns":{"allowed":"True if operator can join"}},"canLeave(uint64,address)":{"details":"Called before operator leaves - return false to reject Note: This is called AFTER the exit queue check. Use getExitConfig to customize timing.","params":{"operator":"The operator wanting to leave","serviceId":"The service ID"},"returns":{"allowed":"True if operator can leave"}},"computeBillAdjustmentBps(uint64,uint64,uint64)":{"details":"Called by the protocol's permissionless bill trigger BEFORE drawing the bill from escrow, so a manager can implement uptime-based discounts, missed-result penalties, or any other quality-of-service feedback. The returned value is clamped to `[0, 10_000]` (`10_000` = no discount, `0` = bill is waived). Values above 10_000 cannot inflate the bill — a misbehaving manager cannot overcharge the customer. Reverting or being unimplemented yields the full bill.","params":{"periodEnd":"Exclusive timestamp of the billing window's end (= `lastPaymentAt + interval`)","periodStart":"Inclusive timestamp of the billing window's start (= prior `lastPaymentAt`)","serviceId":"Service being billed"},"returns":{"adjustmentBps":"Bill multiplier in basis points (10_000 = full bill)"}},"forceRemoveAllowsBelowMin(uint64)":{"details":"By default the protocol enforces `operatorCount > minOperators` even when a blueprint manager calls `forceRemoveOperator`. A blueprint that genuinely needs emergency-eviction-below-min must self-document by returning true. Reverts / unimplemented => protocol enforces the floor (fail-closed).","params":{"serviceId":"The service ID"},"returns":{"ok":"True to allow eviction below the minimum operator count"}},"getAggregationThreshold(uint64,uint8)":{"details":"Only relevant if requiresAggregation returns true","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"thresholdBps":"Threshold in basis points (6700 = 67%)","thresholdType":"0 = CountBased (% of operators), 1 = StakeWeighted (% of total stake)"}},"getExitConfig(uint64)":{"details":"Defines minimum commitment and exit queue timing","params":{"serviceId":"The service ID"},"returns":{"exitQueueDuration":"Time between scheduling exit and completing it (seconds)","forceExitAllowed":"Whether service owner can force-exit operators","minCommitmentDuration":"Minimum time operator must stay after joining (seconds)","useDefault":"True to use protocol default"}},"getHeartbeatInterval(uint64)":{"details":"Operators must submit heartbeats within this interval","params":{"serviceId":"The service ID"},"returns":{"interval":"Heartbeat interval in blocks (0 = disabled)","useDefault":"True to use protocol default, false to use custom value"}},"getHeartbeatThreshold(uint64)":{"details":"Percentage of operators that must respond within interval","params":{"serviceId":"The service ID"},"returns":{"threshold":"Threshold percentage (0-100)","useDefault":"True to use protocol default"}},"getMinOperatorStake()":{"details":"Called during operator registration to validate stake requirements","returns":{"minStake":"Custom minimum stake amount (only used if useDefault=false)","useDefault":"True to use protocol default from staking module"}},"getNonPaymentTerminationPolicy(uint64)":{"details":"Core computes eligibility as: `lastPaymentAt + subscriptionInterval + (subscriptionInterval * graceIntervals)`. `graceIntervals = 0` means termination is eligible immediately at first due time. Implementations should return `useDefault=true` unless they need custom grace behavior.","params":{"serviceId":"The service ID"},"returns":{"graceIntervals":"Additional full intervals to wait after first missed payment","useDefault":"True to use protocol default"}},"getRequiredResultCount(uint64,uint8)":{"details":"Override for consensus requirements (e.g., 2/3 majority)","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"required":"Number of results needed (0 = service operator count)"}},"getSlashingWindow(uint64)":{"details":"Time window for disputes before slash is finalized","params":{"serviceId":"The service ID"},"returns":{"useDefault":"True to use protocol default","window":"Slashing window in blocks"}},"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Validate the aggregated result, verify BLS signature, check threshold","params":{"aggregatedPubkey":"The aggregated public key of signers (G2 point)","aggregatedSignature":"The aggregated BLS signature (G1 point x, y)","job":"The job index","jobCallId":"The job call ID","output":"The aggregated output","serviceId":"The service ID","signerBitmap":"Bitmap of which operators signed"}},"onApprove(address,uint64,uint8)":{"params":{"operator":"The approving operator","requestId":"The request ID","stakingPercent":"Percentage of stake committed to this service (0-100)"}},"onBlueprintCreated(uint64,address,address)":{"details":"Store the blueprintId and tangleCore address for future reference","params":{"blueprintId":"The new blueprint ID","owner":"The blueprint owner","tangleCore":"The address of the Tangle core contract"}},"onExitCanceled(uint64,address)":{"params":{"operator":"The operator canceling exit","serviceId":"The service ID"}},"onExitScheduled(uint64,address,uint64)":{"details":"Allows manager to track pending exits, notify other parties, etc.","params":{"executeAfter":"Timestamp when exit can be executed","operator":"The operator scheduling exit","serviceId":"The service ID"}},"onJobCall(uint64,uint8,uint64,bytes)":{"details":"Validate job inputs, check caller permissions, etc.","params":{"inputs":"Job inputs (blueprint-specific encoding)","job":"The job index in the blueprint","jobCallId":"Unique ID for this job call","serviceId":"The service ID"}},"onJobResult(uint64,uint8,uint64,address,bytes,bytes)":{"details":"Validate result format, check operator eligibility, aggregate results","params":{"inputs":"Original job inputs","job":"The job index","jobCallId":"The job call ID","operator":"The operator submitting","outputs":"Result outputs (blueprint-specific encoding)","serviceId":"The service ID"}},"onOperatorJoined(uint64,address,uint16)":{"params":{"exposureBps":"The operator's stake exposure in basis points","operator":"The operator that joined","serviceId":"The service ID"}},"onOperatorLeft(uint64,address)":{"params":{"operator":"The operator that left","serviceId":"The service ID"}},"onRegister(address,bytes)":{"details":"Validate operator requirements here (stake, reputation, etc.)","params":{"operator":"The operator's address","registrationInputs":"Custom registration data (blueprint-specific encoding)"}},"onReject(address,uint64)":{"params":{"operator":"The rejecting operator","requestId":"The request ID"}},"onRequest(uint64,address,address[],bytes,uint64,address,uint256)":{"details":"Validate service configuration, operator selection, payment amount","params":{"operators":"Requested operators","paymentAmount":"Payment amount","paymentAsset":"Payment token address (address(0) for native)","requestId":"The request ID","requestInputs":"Service configuration (blueprint-specific encoding)","requester":"Who is requesting the service","ttl":"Time-to-live for the service"}},"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":{"params":{"blueprintId":"The blueprint ID","owner":"The service owner","permittedCallers":"Addresses allowed to submit jobs","requestId":"The original request ID","serviceId":"The new service ID","ttl":"Service time-to-live"}},"onServiceTermination(uint64,address)":{"params":{"owner":"The service owner","serviceId":"The service ID"}},"onSlash(uint64,bytes,uint8)":{"params":{"offender":"The slashed operator","serviceId":"The service ID","slashPercent":"Percentage slashed"}},"onUnappliedSlash(uint64,bytes,uint8)":{"details":"This is the dispute window - gather evidence, notify parties","params":{"offender":"The operator being slashed (encoded as bytes for flexibility)","serviceId":"The service ID","slashPercent":"Percentage of stake to slash"}},"onUnregister(address)":{"params":{"operator":"The operator's address"}},"onUpdatePreferences(address,bytes)":{"params":{"newPreferences":"Updated preferences data","operator":"The operator's address"}},"queryDeveloperPaymentAddress(uint64)":{"details":"Override to route payments to different addresses per service","params":{"serviceId":"The service ID"},"returns":{"developerPaymentAddress":"Address to receive developer share"}},"queryDisputeOrigin(uint64)":{"details":"Override to allow custom dispute resolution","params":{"serviceId":"The service ID"},"returns":{"disputeOrigin":"Address that can dispute (default: this contract)"}},"queryIsPaymentAssetAllowed(uint64,address)":{"params":{"asset":"The payment asset address (address(0) for native)","serviceId":"The service ID"},"returns":{"isAllowed":"True if the asset can be used for payment"}},"querySlashingOrigin(uint64)":{"details":"Override to allow custom slashing authorities (dispute contracts, etc.)","params":{"serviceId":"The service ID"},"returns":{"slashingOrigin":"Address that can slash (default: this contract)"}},"requiresAggregation(uint64,uint8)":{"details":"When true, operators must submit individual signatures that are aggregated off-chain, then submitted via submitAggregatedResult instead of submitResult","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"required":"True if BLS aggregation is required for this job"}}},"version":1},"userdoc":{"kind":"user","methods":{"canJoin(uint64,address)":{"notice":"Check if an operator can join a dynamic service"},"canLeave(uint64,address)":{"notice":"Check if an operator can leave a dynamic service"},"computeBillAdjustmentBps(uint64,uint64,uint64)":{"notice":"Scale the nominal subscription bill for a period by an SLA / quality factor."},"forceRemoveAllowsBelowMin(uint64)":{"notice":"Whether `forceRemoveOperator` may drop the service below `minOperators`."},"getAggregationThreshold(uint64,uint8)":{"notice":"Get the aggregation threshold configuration for a job"},"getExitConfig(uint64)":{"notice":"Get the exit configuration for operator departures"},"getHeartbeatInterval(uint64)":{"notice":"Get the heartbeat interval for a service"},"getHeartbeatThreshold(uint64)":{"notice":"Get the heartbeat threshold for a service"},"getMinOperatorStake()":{"notice":"Get the minimum stake required for operators to register for this blueprint"},"getNonPaymentTerminationPolicy(uint64)":{"notice":"Get non-payment termination policy for subscription services"},"getRequiredResultCount(uint64,uint8)":{"notice":"Get the number of results required to complete a job"},"getSlashingWindow(uint64)":{"notice":"Get the slashing window for a service"},"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Called when an aggregated job result is submitted"},"onApprove(address,uint64,uint8)":{"notice":"Called when an operator approves a service request"},"onBlueprintCreated(uint64,address,address)":{"notice":"Called when blueprint is created"},"onExitCanceled(uint64,address)":{"notice":"Called when an operator cancels their scheduled exit"},"onExitScheduled(uint64,address,uint64)":{"notice":"Called when an operator schedules their exit from a service"},"onJobCall(uint64,uint8,uint64,bytes)":{"notice":"Called when a job is submitted"},"onJobResult(uint64,uint8,uint64,address,bytes,bytes)":{"notice":"Called when an operator submits a job result"},"onOperatorJoined(uint64,address,uint16)":{"notice":"Called after an operator successfully joins a service"},"onOperatorLeft(uint64,address)":{"notice":"Called after an operator successfully leaves a service"},"onRegister(address,bytes)":{"notice":"Called when an operator registers to this blueprint"},"onReject(address,uint64)":{"notice":"Called when an operator rejects a service request"},"onRequest(uint64,address,address[],bytes,uint64,address,uint256)":{"notice":"Called when a service is requested"},"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":{"notice":"Called when service becomes active (all operators approved)"},"onServiceTermination(uint64,address)":{"notice":"Called when service is terminated"},"onSlash(uint64,bytes,uint8)":{"notice":"Called when a slash is finalized and applied"},"onUnappliedSlash(uint64,bytes,uint8)":{"notice":"Called when a slash is queued but not yet applied"},"onUnregister(address)":{"notice":"Called when an operator unregisters from this blueprint"},"onUpdatePreferences(address,bytes)":{"notice":"Called when an operator updates their preferences (RPC address, etc.)"},"queryDeveloperPaymentAddress(uint64)":{"notice":"Get the developer payment address for a service"},"queryDisputeOrigin(uint64)":{"notice":"Query the account authorized to dispute slashes"},"queryIsPaymentAssetAllowed(uint64,address)":{"notice":"Check if a payment asset is allowed for this blueprint"},"querySlashingOrigin(uint64)":{"notice":"Query the account authorized to propose slashes for a service"},"requiresAggregation(uint64,uint8)":{"notice":"Check if a job requires BLS aggregated results"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/IBlueprintServiceManager.sol":"IBlueprintServiceManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/IBlueprintServiceManager.sol":{"keccak256":"0x4f89a6446dc6fe47fdd0c0f4e3538f03efade2b780109ef2ec1f83ba544f19aa","urls":["bzz-raw://29e9375e218ad3a4eb0e0339d312996533654394ba59533915a7069a8495dab1","dweb:/ipfs/QmTDxKRsuPYnLsHLhJKXPUYvcRaTft42tKNa3H2qGAoqCN"],"license":"MIT"}},"version":1},"id":31} \ No newline at end of file +{"abi":[{"type":"function","name":"canJoin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"canLeave","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"allowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"computeBillAdjustmentBps","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"periodStart","type":"uint64","internalType":"uint64"},{"name":"periodEnd","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"adjustmentBps","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"forceRemoveAllowsBelowMin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ok","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getAggregationThreshold","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"thresholdBps","type":"uint16","internalType":"uint16"},{"name":"thresholdType","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatInterval","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"interval","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatThreshold","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"threshold","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getMinOperatorStake","inputs":[],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"minStake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNonPaymentTerminationPolicy","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"graceIntervals","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRequiredResultCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"required","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getSlashingWindow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"useDefault","type":"bool","internalType":"bool"},{"name":"window","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"onAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onApprove","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"stakingPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onBlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"tangleCore","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onExitCanceled","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onExitScheduled","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"executeAfter","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onJobResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"job","type":"uint8","internalType":"uint8"},{"name":"jobCallId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"outputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onOperatorJoined","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onOperatorLeft","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onRegister","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onReject","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"requestInputs","type":"bytes","internalType":"bytes"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentAsset","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onServiceInitialized","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onServiceTermination","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offender","type":"bytes","internalType":"bytes"},{"name":"slashPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUnappliedSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offender","type":"bytes","internalType":"bytes"},{"name":"slashPercent","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUnregister","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onUpdatePreferences","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newPreferences","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"queryDeveloperPaymentAddress","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"developerPaymentAddress","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"queryDisputeOrigin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"disputeOrigin","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"queryIsPaymentAssetAllowed","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"asset","type":"address","internalType":"address"}],"outputs":[{"name":"isAllowed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"querySlashingOrigin","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"slashingOrigin","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"requiresAggregation","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"required","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"canJoin(uint64,address)":"b47242e8","canLeave(uint64,address)":"e518de76","computeBillAdjustmentBps(uint64,uint64,uint64)":"f93ff2b7","forceRemoveAllowsBelowMin(uint64)":"f3e28f32","getAggregationThreshold(uint64,uint8)":"25fcc64e","getExitConfig(uint64)":"d2672ed4","getHeartbeatInterval(uint64)":"0068080b","getHeartbeatThreshold(uint64)":"92cbb78e","getMinOperatorStake()":"54dce6c2","getNonPaymentTerminationPolicy(uint64)":"71e8e85d","getRequiredResultCount(uint64,uint8)":"4c443e04","getSlashingWindow(uint64)":"3fdadfcc","onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":"158bb2eb","onApprove(address,uint64,uint8)":"b159eb34","onBlueprintCreated(uint64,address,address)":"0b6535d7","onExitCanceled(uint64,address)":"5440662c","onExitScheduled(uint64,address,uint64)":"e0559c63","onJobCall(uint64,uint8,uint64,bytes)":"9838caa3","onJobResult(uint64,uint8,uint64,address,bytes,bytes)":"c40c80d1","onOperatorJoined(uint64,address,uint16)":"9aa26a92","onOperatorLeft(uint64,address)":"965d231b","onRegister(address,bytes)":"67793cc6","onReject(address,uint64)":"c9cd4a18","onRequest(uint64,address,address[],bytes,uint64,address,uint256)":"c28cd812","onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":"82a1ece4","onServiceTermination(uint64,address)":"a24e8a90","onSlash(uint64,bytes,uint8)":"7e14b919","onUnappliedSlash(uint64,bytes,uint8)":"0881898f","onUnregister(address)":"151a4576","onUpdatePreferences(address,bytes)":"f58e2066","queryDeveloperPaymentAddress(uint64)":"08179f35","queryDisputeOrigin(uint64)":"14b4df4c","queryIsPaymentAssetAllowed(uint64,address)":"e390fcdb","querySlashingOrigin(uint64)":"74ceeb55","requiresAggregation(uint64,uint8)":"19ed5bb2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canJoin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canLeave\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"periodStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"periodEnd\",\"type\":\"uint64\"}],\"name\":\"computeBillAdjustmentBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"adjustmentBps\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"forceRemoveAllowsBelowMin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getAggregationThreshold\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"thresholdBps\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"thresholdType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatInterval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatThreshold\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinOperatorStake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"minStake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getNonPaymentTerminationPolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"graceIntervals\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getRequiredResultCount\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"required\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getSlashingWindow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"useDefault\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"window\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"onAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"stakingPercent\",\"type\":\"uint8\"}],\"name\":\"onApprove\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tangleCore\",\"type\":\"address\"}],\"name\":\"onBlueprintCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onExitCanceled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"onExitScheduled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"onJobCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"job\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"jobCallId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"outputs\",\"type\":\"bytes\"}],\"name\":\"onJobResult\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"onOperatorJoined\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onOperatorLeft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"onRegister\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"onReject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"requestInputs\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"onRequest\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"onServiceInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"onServiceTermination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offender\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"slashPercent\",\"type\":\"uint8\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offender\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"slashPercent\",\"type\":\"uint8\"}],\"name\":\"onUnappliedSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"onUnregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newPreferences\",\"type\":\"bytes\"}],\"name\":\"onUpdatePreferences\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"queryDeveloperPaymentAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"developerPaymentAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"queryDisputeOrigin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"disputeOrigin\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"queryIsPaymentAssetAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"querySlashingOrigin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"slashingOrigin\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"requiresAggregation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Blueprint developers implement this to customize all aspects of their blueprint. This is the primary integration point for blueprint developers - implement the hooks you need and leave others as default (via BlueprintServiceManagerBase). The lifecycle flow: 1. Blueprint created \\u2192 onBlueprintCreated 2. Operators register \\u2192 onRegister 3. Service requested \\u2192 onRequest 4. Operators approve \\u2192 onApprove 5. Service activated \\u2192 onServiceInitialized 6. Jobs submitted \\u2192 onJobCall 7. Results submitted \\u2192 onJobResult 8. Service terminated \\u2192 onServiceTermination\",\"kind\":\"dev\",\"methods\":{\"canJoin(uint64,address)\":{\"details\":\"Called before operator joins - return false to reject\",\"params\":{\"operator\":\"The operator wanting to join\",\"serviceId\":\"The service ID\"},\"returns\":{\"allowed\":\"True if operator can join\"}},\"canLeave(uint64,address)\":{\"details\":\"Called before operator leaves - return false to reject Note: This is called AFTER the exit queue check. Use getExitConfig to customize timing.\",\"params\":{\"operator\":\"The operator wanting to leave\",\"serviceId\":\"The service ID\"},\"returns\":{\"allowed\":\"True if operator can leave\"}},\"computeBillAdjustmentBps(uint64,uint64,uint64)\":{\"details\":\"Called by the protocol's permissionless bill trigger BEFORE drawing the bill from escrow, so a manager can implement uptime-based discounts, missed-result penalties, or any other quality-of-service feedback. The returned value is clamped to `[0, 10_000]` (`10_000` = no discount, `0` = bill is waived). Values above 10_000 cannot inflate the bill \\u2014 a misbehaving manager cannot overcharge the customer. Reverting or being unimplemented yields the full bill.\",\"params\":{\"periodEnd\":\"Exclusive timestamp of the billing window's end (= `lastPaymentAt + interval`)\",\"periodStart\":\"Inclusive timestamp of the billing window's start (= prior `lastPaymentAt`)\",\"serviceId\":\"Service being billed\"},\"returns\":{\"adjustmentBps\":\"Bill multiplier in basis points (10_000 = full bill)\"}},\"forceRemoveAllowsBelowMin(uint64)\":{\"details\":\"By default the protocol enforces `operatorCount > minOperators` even when a blueprint manager calls `forceRemoveOperator`. A blueprint that genuinely needs emergency-eviction-below-min must self-document by returning true. Reverts / unimplemented => protocol enforces the floor (fail-closed).\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"ok\":\"True to allow eviction below the minimum operator count\"}},\"getAggregationThreshold(uint64,uint8)\":{\"details\":\"Only relevant if requiresAggregation returns true\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"thresholdBps\":\"Threshold in basis points (6700 = 67%)\",\"thresholdType\":\"0 = CountBased (% of operators), 1 = StakeWeighted (% of total stake)\"}},\"getExitConfig(uint64)\":{\"details\":\"Defines minimum commitment and exit queue timing\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"exitQueueDuration\":\"Time between scheduling exit and completing it (seconds)\",\"forceExitAllowed\":\"Whether service owner can force-exit operators\",\"minCommitmentDuration\":\"Minimum time operator must stay after joining (seconds)\",\"useDefault\":\"True to use protocol default\"}},\"getHeartbeatInterval(uint64)\":{\"details\":\"Operators must submit heartbeats within this interval\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"interval\":\"Heartbeat interval in blocks (0 = disabled)\",\"useDefault\":\"True to use protocol default, false to use custom value\"}},\"getHeartbeatThreshold(uint64)\":{\"details\":\"Percentage of operators that must respond within interval\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"threshold\":\"Threshold percentage (0-100)\",\"useDefault\":\"True to use protocol default\"}},\"getMinOperatorStake()\":{\"details\":\"Called during operator registration to validate stake requirements\",\"returns\":{\"minStake\":\"Custom minimum stake amount (only used if useDefault=false)\",\"useDefault\":\"True to use protocol default from staking module\"}},\"getNonPaymentTerminationPolicy(uint64)\":{\"details\":\"Core computes eligibility as: `lastPaymentAt + subscriptionInterval + (subscriptionInterval * graceIntervals)`. `graceIntervals = 0` means termination is eligible immediately at first due time. Implementations should return `useDefault=true` unless they need custom grace behavior.\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"graceIntervals\":\"Additional full intervals to wait after first missed payment\",\"useDefault\":\"True to use protocol default\"}},\"getRequiredResultCount(uint64,uint8)\":{\"details\":\"Override for consensus requirements (e.g., 2/3 majority)\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"required\":\"Number of results needed (0 = service operator count)\"}},\"getSlashingWindow(uint64)\":{\"details\":\"Time window for disputes before slash is finalized\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"useDefault\":\"True to use protocol default\",\"window\":\"Slashing window in blocks\"}},\"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Validate the aggregated result, verify BLS signature, check threshold\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key of signers (G2 point)\",\"aggregatedSignature\":\"The aggregated BLS signature (G1 point x, y)\",\"job\":\"The job index\",\"jobCallId\":\"The job call ID\",\"output\":\"The aggregated output\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap of which operators signed\"}},\"onApprove(address,uint64,uint8)\":{\"params\":{\"operator\":\"The approving operator\",\"requestId\":\"The request ID\",\"stakingPercent\":\"Percentage of stake committed to this service (0-100)\"}},\"onBlueprintCreated(uint64,address,address)\":{\"details\":\"Store the blueprintId and tangleCore address for future reference\",\"params\":{\"blueprintId\":\"The new blueprint ID\",\"owner\":\"The blueprint owner\",\"tangleCore\":\"The address of the Tangle core contract\"}},\"onExitCanceled(uint64,address)\":{\"params\":{\"operator\":\"The operator canceling exit\",\"serviceId\":\"The service ID\"}},\"onExitScheduled(uint64,address,uint64)\":{\"details\":\"Allows manager to track pending exits, notify other parties, etc.\",\"params\":{\"executeAfter\":\"Timestamp when exit can be executed\",\"operator\":\"The operator scheduling exit\",\"serviceId\":\"The service ID\"}},\"onJobCall(uint64,uint8,uint64,bytes)\":{\"details\":\"Validate job inputs, check caller permissions, etc.\",\"params\":{\"inputs\":\"Job inputs (blueprint-specific encoding)\",\"job\":\"The job index in the blueprint\",\"jobCallId\":\"Unique ID for this job call\",\"serviceId\":\"The service ID\"}},\"onJobResult(uint64,uint8,uint64,address,bytes,bytes)\":{\"details\":\"Validate result format, check operator eligibility, aggregate results\",\"params\":{\"inputs\":\"Original job inputs\",\"job\":\"The job index\",\"jobCallId\":\"The job call ID\",\"operator\":\"The operator submitting\",\"outputs\":\"Result outputs (blueprint-specific encoding)\",\"serviceId\":\"The service ID\"}},\"onOperatorJoined(uint64,address,uint16)\":{\"params\":{\"exposureBps\":\"The operator's stake exposure in basis points\",\"operator\":\"The operator that joined\",\"serviceId\":\"The service ID\"}},\"onOperatorLeft(uint64,address)\":{\"params\":{\"operator\":\"The operator that left\",\"serviceId\":\"The service ID\"}},\"onRegister(address,bytes)\":{\"details\":\"Validate operator requirements here (stake, reputation, etc.)\",\"params\":{\"operator\":\"The operator's address\",\"registrationInputs\":\"Custom registration data (blueprint-specific encoding)\"}},\"onReject(address,uint64)\":{\"params\":{\"operator\":\"The rejecting operator\",\"requestId\":\"The request ID\"}},\"onRequest(uint64,address,address[],bytes,uint64,address,uint256)\":{\"details\":\"Validate service configuration, operator selection, payment amount\",\"params\":{\"operators\":\"Requested operators\",\"paymentAmount\":\"Payment amount\",\"paymentAsset\":\"Payment token address (address(0) for native)\",\"requestId\":\"The request ID\",\"requestInputs\":\"Service configuration (blueprint-specific encoding)\",\"requester\":\"Who is requesting the service\",\"ttl\":\"Time-to-live for the service\"}},\"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"owner\":\"The service owner\",\"permittedCallers\":\"Addresses allowed to submit jobs\",\"requestId\":\"The original request ID\",\"serviceId\":\"The new service ID\",\"ttl\":\"Service time-to-live\"}},\"onServiceTermination(uint64,address)\":{\"params\":{\"owner\":\"The service owner\",\"serviceId\":\"The service ID\"}},\"onSlash(uint64,bytes,uint8)\":{\"params\":{\"offender\":\"The slashed operator\",\"serviceId\":\"The service ID\",\"slashPercent\":\"Percentage slashed\"}},\"onUnappliedSlash(uint64,bytes,uint8)\":{\"details\":\"This is the dispute window - gather evidence, notify parties\",\"params\":{\"offender\":\"The operator being slashed (encoded as bytes for flexibility)\",\"serviceId\":\"The service ID\",\"slashPercent\":\"Percentage of stake to slash\"}},\"onUnregister(address)\":{\"params\":{\"operator\":\"The operator's address\"}},\"onUpdatePreferences(address,bytes)\":{\"params\":{\"newPreferences\":\"Updated preferences data\",\"operator\":\"The operator's address\"}},\"queryDeveloperPaymentAddress(uint64)\":{\"details\":\"Override to route payments to different addresses per service\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"developerPaymentAddress\":\"Address to receive developer share\"}},\"queryDisputeOrigin(uint64)\":{\"details\":\"Override to allow custom dispute resolution\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"disputeOrigin\":\"Address that can dispute (default: this contract)\"}},\"queryIsPaymentAssetAllowed(uint64,address)\":{\"params\":{\"asset\":\"The payment asset address (address(0) for native)\",\"serviceId\":\"The service ID\"},\"returns\":{\"isAllowed\":\"True if the asset can be used for payment\"}},\"querySlashingOrigin(uint64)\":{\"details\":\"Override to allow custom slashing authorities (dispute contracts, etc.)\",\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"slashingOrigin\":\"Address that can slash (default: this contract)\"}},\"requiresAggregation(uint64,uint8)\":{\"details\":\"When true, operators must submit individual signatures that are aggregated off-chain, then submitted via submitAggregatedResult instead of submitResult\",\"params\":{\"jobIndex\":\"The job index\",\"serviceId\":\"The service ID\"},\"returns\":{\"required\":\"True if BLS aggregation is required for this job\"}}},\"title\":\"IBlueprintServiceManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"canJoin(uint64,address)\":{\"notice\":\"Check if an operator can join a dynamic service\"},\"canLeave(uint64,address)\":{\"notice\":\"Check if an operator can leave a dynamic service\"},\"computeBillAdjustmentBps(uint64,uint64,uint64)\":{\"notice\":\"Scale the nominal subscription bill for a period by an SLA / quality factor.\"},\"forceRemoveAllowsBelowMin(uint64)\":{\"notice\":\"Whether `forceRemoveOperator` may drop the service below `minOperators`.\"},\"getAggregationThreshold(uint64,uint8)\":{\"notice\":\"Get the aggregation threshold configuration for a job\"},\"getExitConfig(uint64)\":{\"notice\":\"Get the exit configuration for operator departures\"},\"getHeartbeatInterval(uint64)\":{\"notice\":\"Get the heartbeat interval for a service\"},\"getHeartbeatThreshold(uint64)\":{\"notice\":\"Get the heartbeat threshold for a service\"},\"getMinOperatorStake()\":{\"notice\":\"Get the minimum stake required for operators to register for this blueprint\"},\"getNonPaymentTerminationPolicy(uint64)\":{\"notice\":\"Get non-payment termination policy for subscription services\"},\"getRequiredResultCount(uint64,uint8)\":{\"notice\":\"Get the number of results required to complete a job\"},\"getSlashingWindow(uint64)\":{\"notice\":\"Get the slashing window for a service\"},\"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Called when an aggregated job result is submitted\"},\"onApprove(address,uint64,uint8)\":{\"notice\":\"Called when an operator approves a service request\"},\"onBlueprintCreated(uint64,address,address)\":{\"notice\":\"Called when blueprint is created\"},\"onExitCanceled(uint64,address)\":{\"notice\":\"Called when an operator cancels their scheduled exit\"},\"onExitScheduled(uint64,address,uint64)\":{\"notice\":\"Called when an operator schedules their exit from a service\"},\"onJobCall(uint64,uint8,uint64,bytes)\":{\"notice\":\"Called when a job is submitted\"},\"onJobResult(uint64,uint8,uint64,address,bytes,bytes)\":{\"notice\":\"Called when an operator submits a job result\"},\"onOperatorJoined(uint64,address,uint16)\":{\"notice\":\"Called after an operator successfully joins a service\"},\"onOperatorLeft(uint64,address)\":{\"notice\":\"Called after an operator successfully leaves a service\"},\"onRegister(address,bytes)\":{\"notice\":\"Called when an operator registers to this blueprint\"},\"onReject(address,uint64)\":{\"notice\":\"Called when an operator rejects a service request\"},\"onRequest(uint64,address,address[],bytes,uint64,address,uint256)\":{\"notice\":\"Called when a service is requested\"},\"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)\":{\"notice\":\"Called when service becomes active (all operators approved)\"},\"onServiceTermination(uint64,address)\":{\"notice\":\"Called when service is terminated\"},\"onSlash(uint64,bytes,uint8)\":{\"notice\":\"Called when a slash is finalized and applied\"},\"onUnappliedSlash(uint64,bytes,uint8)\":{\"notice\":\"Called when a slash is queued but not yet applied\"},\"onUnregister(address)\":{\"notice\":\"Called when an operator unregisters from this blueprint\"},\"onUpdatePreferences(address,bytes)\":{\"notice\":\"Called when an operator updates their preferences (RPC address, etc.)\"},\"queryDeveloperPaymentAddress(uint64)\":{\"notice\":\"Get the developer payment address for a service\"},\"queryDisputeOrigin(uint64)\":{\"notice\":\"Query the account authorized to dispute slashes\"},\"queryIsPaymentAssetAllowed(uint64,address)\":{\"notice\":\"Check if a payment asset is allowed for this blueprint\"},\"querySlashingOrigin(uint64)\":{\"notice\":\"Query the account authorized to propose slashes for a service\"},\"requiresAggregation(uint64,uint8)\":{\"notice\":\"Check if a job requires BLS aggregated results\"}},\"notice\":\"Full interface for blueprint-specific service managers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IBlueprintServiceManager.sol\":\"IBlueprintServiceManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IBlueprintServiceManager.sol\":{\"keccak256\":\"0x4f89a6446dc6fe47fdd0c0f4e3538f03efade2b780109ef2ec1f83ba544f19aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29e9375e218ad3a4eb0e0339d312996533654394ba59533915a7069a8495dab1\",\"dweb:/ipfs/QmTDxKRsuPYnLsHLhJKXPUYvcRaTft42tKNa3H2qGAoqCN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canJoin","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canLeave","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"periodStart","type":"uint64"},{"internalType":"uint64","name":"periodEnd","type":"uint64"}],"stateMutability":"view","type":"function","name":"computeBillAdjustmentBps","outputs":[{"internalType":"uint16","name":"adjustmentBps","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"forceRemoveAllowsBelowMin","outputs":[{"internalType":"bool","name":"ok","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getAggregationThreshold","outputs":[{"internalType":"uint16","name":"thresholdBps","type":"uint16"},{"internalType":"uint8","name":"thresholdType","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatInterval","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"interval","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatThreshold","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint8","name":"threshold","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMinOperatorStake","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint256","name":"minStake","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getNonPaymentTerminationPolicy","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"graceIntervals","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRequiredResultCount","outputs":[{"internalType":"uint32","name":"required","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashingWindow","outputs":[{"internalType":"bool","name":"useDefault","type":"bool"},{"internalType":"uint64","name":"window","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"onAggregatedResult"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"uint8","name":"stakingPercent","type":"uint8"}],"stateMutability":"payable","type":"function","name":"onApprove"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"tangleCore","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onBlueprintCreated"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onExitCanceled"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"executeAfter","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onExitScheduled"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onJobCall"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"job","type":"uint8"},{"internalType":"uint64","name":"jobCallId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"bytes","name":"outputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onJobResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"onOperatorJoined"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onOperatorLeft"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onRegister"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onReject"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"requestInputs","type":"bytes"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentAsset","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"onRequest"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"onServiceInitialized"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onServiceTermination"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bytes","name":"offender","type":"bytes"},{"internalType":"uint8","name":"slashPercent","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bytes","name":"offender","type":"bytes"},{"internalType":"uint8","name":"slashPercent","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"onUnappliedSlash"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"onUnregister"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"newPreferences","type":"bytes"}],"stateMutability":"payable","type":"function","name":"onUpdatePreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"queryDeveloperPaymentAddress","outputs":[{"internalType":"address payable","name":"developerPaymentAddress","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"queryDisputeOrigin","outputs":[{"internalType":"address","name":"disputeOrigin","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"asset","type":"address"}],"stateMutability":"view","type":"function","name":"queryIsPaymentAssetAllowed","outputs":[{"internalType":"bool","name":"isAllowed","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"querySlashingOrigin","outputs":[{"internalType":"address","name":"slashingOrigin","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"requiresAggregation","outputs":[{"internalType":"bool","name":"required","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"canJoin(uint64,address)":{"details":"Called before operator joins - return false to reject","params":{"operator":"The operator wanting to join","serviceId":"The service ID"},"returns":{"allowed":"True if operator can join"}},"canLeave(uint64,address)":{"details":"Called before operator leaves - return false to reject Note: This is called AFTER the exit queue check. Use getExitConfig to customize timing.","params":{"operator":"The operator wanting to leave","serviceId":"The service ID"},"returns":{"allowed":"True if operator can leave"}},"computeBillAdjustmentBps(uint64,uint64,uint64)":{"details":"Called by the protocol's permissionless bill trigger BEFORE drawing the bill from escrow, so a manager can implement uptime-based discounts, missed-result penalties, or any other quality-of-service feedback. The returned value is clamped to `[0, 10_000]` (`10_000` = no discount, `0` = bill is waived). Values above 10_000 cannot inflate the bill — a misbehaving manager cannot overcharge the customer. Reverting or being unimplemented yields the full bill.","params":{"periodEnd":"Exclusive timestamp of the billing window's end (= `lastPaymentAt + interval`)","periodStart":"Inclusive timestamp of the billing window's start (= prior `lastPaymentAt`)","serviceId":"Service being billed"},"returns":{"adjustmentBps":"Bill multiplier in basis points (10_000 = full bill)"}},"forceRemoveAllowsBelowMin(uint64)":{"details":"By default the protocol enforces `operatorCount > minOperators` even when a blueprint manager calls `forceRemoveOperator`. A blueprint that genuinely needs emergency-eviction-below-min must self-document by returning true. Reverts / unimplemented => protocol enforces the floor (fail-closed).","params":{"serviceId":"The service ID"},"returns":{"ok":"True to allow eviction below the minimum operator count"}},"getAggregationThreshold(uint64,uint8)":{"details":"Only relevant if requiresAggregation returns true","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"thresholdBps":"Threshold in basis points (6700 = 67%)","thresholdType":"0 = CountBased (% of operators), 1 = StakeWeighted (% of total stake)"}},"getExitConfig(uint64)":{"details":"Defines minimum commitment and exit queue timing","params":{"serviceId":"The service ID"},"returns":{"exitQueueDuration":"Time between scheduling exit and completing it (seconds)","forceExitAllowed":"Whether service owner can force-exit operators","minCommitmentDuration":"Minimum time operator must stay after joining (seconds)","useDefault":"True to use protocol default"}},"getHeartbeatInterval(uint64)":{"details":"Operators must submit heartbeats within this interval","params":{"serviceId":"The service ID"},"returns":{"interval":"Heartbeat interval in blocks (0 = disabled)","useDefault":"True to use protocol default, false to use custom value"}},"getHeartbeatThreshold(uint64)":{"details":"Percentage of operators that must respond within interval","params":{"serviceId":"The service ID"},"returns":{"threshold":"Threshold percentage (0-100)","useDefault":"True to use protocol default"}},"getMinOperatorStake()":{"details":"Called during operator registration to validate stake requirements","returns":{"minStake":"Custom minimum stake amount (only used if useDefault=false)","useDefault":"True to use protocol default from staking module"}},"getNonPaymentTerminationPolicy(uint64)":{"details":"Core computes eligibility as: `lastPaymentAt + subscriptionInterval + (subscriptionInterval * graceIntervals)`. `graceIntervals = 0` means termination is eligible immediately at first due time. Implementations should return `useDefault=true` unless they need custom grace behavior.","params":{"serviceId":"The service ID"},"returns":{"graceIntervals":"Additional full intervals to wait after first missed payment","useDefault":"True to use protocol default"}},"getRequiredResultCount(uint64,uint8)":{"details":"Override for consensus requirements (e.g., 2/3 majority)","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"required":"Number of results needed (0 = service operator count)"}},"getSlashingWindow(uint64)":{"details":"Time window for disputes before slash is finalized","params":{"serviceId":"The service ID"},"returns":{"useDefault":"True to use protocol default","window":"Slashing window in blocks"}},"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Validate the aggregated result, verify BLS signature, check threshold","params":{"aggregatedPubkey":"The aggregated public key of signers (G2 point)","aggregatedSignature":"The aggregated BLS signature (G1 point x, y)","job":"The job index","jobCallId":"The job call ID","output":"The aggregated output","serviceId":"The service ID","signerBitmap":"Bitmap of which operators signed"}},"onApprove(address,uint64,uint8)":{"params":{"operator":"The approving operator","requestId":"The request ID","stakingPercent":"Percentage of stake committed to this service (0-100)"}},"onBlueprintCreated(uint64,address,address)":{"details":"Store the blueprintId and tangleCore address for future reference","params":{"blueprintId":"The new blueprint ID","owner":"The blueprint owner","tangleCore":"The address of the Tangle core contract"}},"onExitCanceled(uint64,address)":{"params":{"operator":"The operator canceling exit","serviceId":"The service ID"}},"onExitScheduled(uint64,address,uint64)":{"details":"Allows manager to track pending exits, notify other parties, etc.","params":{"executeAfter":"Timestamp when exit can be executed","operator":"The operator scheduling exit","serviceId":"The service ID"}},"onJobCall(uint64,uint8,uint64,bytes)":{"details":"Validate job inputs, check caller permissions, etc.","params":{"inputs":"Job inputs (blueprint-specific encoding)","job":"The job index in the blueprint","jobCallId":"Unique ID for this job call","serviceId":"The service ID"}},"onJobResult(uint64,uint8,uint64,address,bytes,bytes)":{"details":"Validate result format, check operator eligibility, aggregate results","params":{"inputs":"Original job inputs","job":"The job index","jobCallId":"The job call ID","operator":"The operator submitting","outputs":"Result outputs (blueprint-specific encoding)","serviceId":"The service ID"}},"onOperatorJoined(uint64,address,uint16)":{"params":{"exposureBps":"The operator's stake exposure in basis points","operator":"The operator that joined","serviceId":"The service ID"}},"onOperatorLeft(uint64,address)":{"params":{"operator":"The operator that left","serviceId":"The service ID"}},"onRegister(address,bytes)":{"details":"Validate operator requirements here (stake, reputation, etc.)","params":{"operator":"The operator's address","registrationInputs":"Custom registration data (blueprint-specific encoding)"}},"onReject(address,uint64)":{"params":{"operator":"The rejecting operator","requestId":"The request ID"}},"onRequest(uint64,address,address[],bytes,uint64,address,uint256)":{"details":"Validate service configuration, operator selection, payment amount","params":{"operators":"Requested operators","paymentAmount":"Payment amount","paymentAsset":"Payment token address (address(0) for native)","requestId":"The request ID","requestInputs":"Service configuration (blueprint-specific encoding)","requester":"Who is requesting the service","ttl":"Time-to-live for the service"}},"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":{"params":{"blueprintId":"The blueprint ID","owner":"The service owner","permittedCallers":"Addresses allowed to submit jobs","requestId":"The original request ID","serviceId":"The new service ID","ttl":"Service time-to-live"}},"onServiceTermination(uint64,address)":{"params":{"owner":"The service owner","serviceId":"The service ID"}},"onSlash(uint64,bytes,uint8)":{"params":{"offender":"The slashed operator","serviceId":"The service ID","slashPercent":"Percentage slashed"}},"onUnappliedSlash(uint64,bytes,uint8)":{"details":"This is the dispute window - gather evidence, notify parties","params":{"offender":"The operator being slashed (encoded as bytes for flexibility)","serviceId":"The service ID","slashPercent":"Percentage of stake to slash"}},"onUnregister(address)":{"params":{"operator":"The operator's address"}},"onUpdatePreferences(address,bytes)":{"params":{"newPreferences":"Updated preferences data","operator":"The operator's address"}},"queryDeveloperPaymentAddress(uint64)":{"details":"Override to route payments to different addresses per service","params":{"serviceId":"The service ID"},"returns":{"developerPaymentAddress":"Address to receive developer share"}},"queryDisputeOrigin(uint64)":{"details":"Override to allow custom dispute resolution","params":{"serviceId":"The service ID"},"returns":{"disputeOrigin":"Address that can dispute (default: this contract)"}},"queryIsPaymentAssetAllowed(uint64,address)":{"params":{"asset":"The payment asset address (address(0) for native)","serviceId":"The service ID"},"returns":{"isAllowed":"True if the asset can be used for payment"}},"querySlashingOrigin(uint64)":{"details":"Override to allow custom slashing authorities (dispute contracts, etc.)","params":{"serviceId":"The service ID"},"returns":{"slashingOrigin":"Address that can slash (default: this contract)"}},"requiresAggregation(uint64,uint8)":{"details":"When true, operators must submit individual signatures that are aggregated off-chain, then submitted via submitAggregatedResult instead of submitResult","params":{"jobIndex":"The job index","serviceId":"The service ID"},"returns":{"required":"True if BLS aggregation is required for this job"}}},"version":1},"userdoc":{"kind":"user","methods":{"canJoin(uint64,address)":{"notice":"Check if an operator can join a dynamic service"},"canLeave(uint64,address)":{"notice":"Check if an operator can leave a dynamic service"},"computeBillAdjustmentBps(uint64,uint64,uint64)":{"notice":"Scale the nominal subscription bill for a period by an SLA / quality factor."},"forceRemoveAllowsBelowMin(uint64)":{"notice":"Whether `forceRemoveOperator` may drop the service below `minOperators`."},"getAggregationThreshold(uint64,uint8)":{"notice":"Get the aggregation threshold configuration for a job"},"getExitConfig(uint64)":{"notice":"Get the exit configuration for operator departures"},"getHeartbeatInterval(uint64)":{"notice":"Get the heartbeat interval for a service"},"getHeartbeatThreshold(uint64)":{"notice":"Get the heartbeat threshold for a service"},"getMinOperatorStake()":{"notice":"Get the minimum stake required for operators to register for this blueprint"},"getNonPaymentTerminationPolicy(uint64)":{"notice":"Get non-payment termination policy for subscription services"},"getRequiredResultCount(uint64,uint8)":{"notice":"Get the number of results required to complete a job"},"getSlashingWindow(uint64)":{"notice":"Get the slashing window for a service"},"onAggregatedResult(uint64,uint8,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Called when an aggregated job result is submitted"},"onApprove(address,uint64,uint8)":{"notice":"Called when an operator approves a service request"},"onBlueprintCreated(uint64,address,address)":{"notice":"Called when blueprint is created"},"onExitCanceled(uint64,address)":{"notice":"Called when an operator cancels their scheduled exit"},"onExitScheduled(uint64,address,uint64)":{"notice":"Called when an operator schedules their exit from a service"},"onJobCall(uint64,uint8,uint64,bytes)":{"notice":"Called when a job is submitted"},"onJobResult(uint64,uint8,uint64,address,bytes,bytes)":{"notice":"Called when an operator submits a job result"},"onOperatorJoined(uint64,address,uint16)":{"notice":"Called after an operator successfully joins a service"},"onOperatorLeft(uint64,address)":{"notice":"Called after an operator successfully leaves a service"},"onRegister(address,bytes)":{"notice":"Called when an operator registers to this blueprint"},"onReject(address,uint64)":{"notice":"Called when an operator rejects a service request"},"onRequest(uint64,address,address[],bytes,uint64,address,uint256)":{"notice":"Called when a service is requested"},"onServiceInitialized(uint64,uint64,uint64,address,address[],uint64)":{"notice":"Called when service becomes active (all operators approved)"},"onServiceTermination(uint64,address)":{"notice":"Called when service is terminated"},"onSlash(uint64,bytes,uint8)":{"notice":"Called when a slash is finalized and applied"},"onUnappliedSlash(uint64,bytes,uint8)":{"notice":"Called when a slash is queued but not yet applied"},"onUnregister(address)":{"notice":"Called when an operator unregisters from this blueprint"},"onUpdatePreferences(address,bytes)":{"notice":"Called when an operator updates their preferences (RPC address, etc.)"},"queryDeveloperPaymentAddress(uint64)":{"notice":"Get the developer payment address for a service"},"queryDisputeOrigin(uint64)":{"notice":"Query the account authorized to dispute slashes"},"queryIsPaymentAssetAllowed(uint64,address)":{"notice":"Check if a payment asset is allowed for this blueprint"},"querySlashingOrigin(uint64)":{"notice":"Query the account authorized to propose slashes for a service"},"requiresAggregation(uint64,uint8)":{"notice":"Check if a job requires BLS aggregated results"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/IBlueprintServiceManager.sol":"IBlueprintServiceManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/IBlueprintServiceManager.sol":{"keccak256":"0x4f89a6446dc6fe47fdd0c0f4e3538f03efade2b780109ef2ec1f83ba544f19aa","urls":["bzz-raw://29e9375e218ad3a4eb0e0339d312996533654394ba59533915a7069a8495dab1","dweb:/ipfs/QmTDxKRsuPYnLsHLhJKXPUYvcRaTft42tKNa3H2qGAoqCN"],"license":"MIT"}},"version":1},"id":147} \ No newline at end of file diff --git a/bindings/abi/IMultiAssetDelegation.json b/bindings/abi/IMultiAssetDelegation.json index 742200e1..8e96e6c1 100644 --- a/bindings/abi/IMultiAssetDelegation.json +++ b/bindings/abi/IMultiAssetDelegation.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"LOCK_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_NONE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"addBlueprintForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addBlueprintToDelegation","inputs":[{"name":"delegationIndex","type":"uint256","internalType":"uint256"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSlasher","inputs":[{"name":"slasher","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"advanceRound","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canDelegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"cancelCommissionChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"completeLeaving","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentRound","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateWithOptions","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"blueprintIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegationBondLessDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositAndDelegate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositAndDelegateWithOptions","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"blueprintIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositERC20","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositERC20WithLock","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"lockMultiplier","type":"uint8","internalType":"enum Types.LockMultiplier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositWithLock","inputs":[{"name":"lockMultiplier","type":"uint8","internalType":"enum Types.LockMultiplier"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"disableAsset","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableAssetWithAdapter","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"adapter","type":"address","internalType":"address"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeCommissionChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegatorUnstake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegatorUnstakeAndWithdraw","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeOperatorUnstake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeWithdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAssetConfig","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.AssetConfig","components":[{"name":"enabled","type":"bool","internalType":"bool"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"currentDeposits","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getCumStakeSeconds","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"cum","type":"uint256","internalType":"uint256"},{"name":"lastUpdate","type":"uint64","internalType":"uint64"},{"name":"currentStake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDelegation","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDelegationBlueprints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getDelegationMode","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.DelegationMode"}],"stateMutability":"view"},{"type":"function","name":"getDelegations","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.BondInfoDelegator[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"}]}],"stateMutability":"view"},{"type":"function","name":"getDeposit","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Deposit","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"delegatedAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getLocks","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.LockInfo[]","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"multiplier","type":"uint8","internalType":"enum Types.LockMultiplier"},{"name":"expiryBlock","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlueprints","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatedStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatedStakeForAsset","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatorCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegators","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorMetadata","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorMetadata","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"delegationCount","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"enum Types.OperatorStatus"},{"name":"leavingRound","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorRewardPool","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRewardPool","components":[{"name":"totalShares","type":"uint256","internalType":"uint256"},{"name":"totalAssets","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorSelfStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeForAsset","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPendingCommissionChange","inputs":[],"outputs":[{"name":"pendingBps","type":"uint16","internalType":"uint16"},{"name":"executeAfter","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getPendingUnstakes","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.BondLessRequest[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"slashFactorSnapshot","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPendingWithdrawals","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.WithdrawRequest[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashImpact","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashIndex","type":"uint64","internalType":"uint64"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashRecord","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingManager.SlashRecord","components":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTotalDelegation","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increaseStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"increaseStakeWithAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperatorActive","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasher","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhitelisted","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"leaveDelegatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveOperatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"meetsStakeRequirement","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"required","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"minOperatorStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorAt","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorBondToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorCommissionBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"operatorCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"previewDelegatorUnstakeShares","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerAdapter","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"adapter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"registerOperatorWithAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeAdapter","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeBlueprintForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeBlueprintFromDelegation","inputs":[{"name":"delegationIndex","type":"uint256","internalType":"uint256"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSlasher","inputs":[{"name":"slasher","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescueTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardsManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"roundDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"scheduleDelegatorUnstake","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"scheduleOperatorUnstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"scheduleWithdraw","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceFeeDistributor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDelays","inputs":[{"name":"delegationBondLessDelay","type":"uint64","internalType":"uint64"},{"name":"leaveDelegatorsDelay","type":"uint64","internalType":"uint64"},{"name":"leaveOperatorsDelay","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegationMode","inputs":[{"name":"mode","type":"uint8","internalType":"enum Types.DelegationMode"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegationWhitelist","inputs":[{"name":"delegators","type":"address[]","internalType":"address[]"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorBondToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorCommission","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequireAdapters","inputs":[{"name":"required","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRewardsManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setServiceFeeDistributor","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTangle","inputs":[{"name":"tangle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slash","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashForBlueprint","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashForService","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startLeaving","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"undelegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterRegistered","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"adapter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterRemoved","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetDisabled","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetEnabled","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"minOperatorStake","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minDelegation","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintAddedToDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintRemovedFromDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Delegated","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"selectionMode","type":"uint8","indexed":false,"internalType":"enum Types.BlueprintSelectionMode"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeExecuted","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"estimatedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lock","type":"uint8","indexed":false,"internalType":"enum Types.LockMultiplier"}],"anonymous":false},{"type":"event","name":"ExpiredLocksHarvested","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintAdded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintRemoved","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeavingScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeft","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"stake","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorStakeIncreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeExecuted","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequireAdaptersUpdated","inputs":[{"name":"required","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RoundAdvanced","inputs":[{"name":"round","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"SlashRecorded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Slashed","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"operatorSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"delegatorsSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashedForService","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"commitmentCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AdapterChangeWhileDepositsExist","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"currentDeposits","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"LOCK_ONE_MONTH()":"9e870585","LOCK_SIX_MONTHS()":"f3c9b311","LOCK_THREE_MONTHS()":"d27a6f06","LOCK_TWO_MONTHS()":"7df92ada","MULTIPLIER_NONE()":"4962f88f","MULTIPLIER_ONE_MONTH()":"18056dc2","MULTIPLIER_SIX_MONTHS()":"453eccea","MULTIPLIER_THREE_MONTHS()":"a7fa6f98","MULTIPLIER_TWO_MONTHS()":"54de2320","addBlueprintForOperator(address,uint64)":"b9c04c1b","addBlueprintToDelegation(uint256,uint64)":"23cc2700","addSlasher(address)":"68a9f19c","advanceRound()":"1ba9998b","canDelegate(address,address)":"2aa81239","cancelCommissionChange()":"dc71ef30","completeLeaving()":"d1736ba7","currentRound()":"8a19c8bc","delegate(address,uint256)":"026e402b","delegateWithOptions(address,address,uint256,uint8,uint64[])":"fd7d3dbc","delegationBondLessDelay()":"ba05bbf5","deposit()":"d0e30db0","depositAndDelegate(address)":"461cc23b","depositAndDelegateWithOptions(address,address,uint256,uint8,uint64[])":"fbec4861","depositERC20(address,uint256)":"97feb926","depositERC20WithLock(address,uint256,uint8)":"cb15038b","depositWithLock(uint8)":"f38c7c4e","disableAsset(address)":"70807528","enableAsset(address,uint256,uint256,uint256,uint16)":"354ebef9","enableAssetWithAdapter(address,address,uint256,uint256,uint256,uint16)":"f0b52bb4","executeCommissionChange()":"46c9b454","executeDelegatorUnstake()":"007910d0","executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":"bf690206","executeOperatorUnstake()":"b0dfce06","executeWithdraw()":"f8fd9795","getAssetConfig(address)":"6ec3ab67","getCumStakeSeconds(address,(uint8,address))":"c1f1d6fb","getDelegation(address,address)":"15049a5a","getDelegationBlueprints(address,uint256)":"7b9996c5","getDelegationMode(address)":"7bed797d","getDelegations(address)":"31cc13ba","getDeposit(address,address)":"c35082a9","getLocks(address,address)":"0c8833ce","getOperatorBlueprints(address)":"dc972ccc","getOperatorDelegatedStake(address)":"8c5b4ae7","getOperatorDelegatedStakeForAsset(address,(uint8,address))":"20e1b202","getOperatorDelegatorCount(address)":"486398c3","getOperatorDelegators(address)":"a299e298","getOperatorMetadata(address)":"2ee663b8","getOperatorRewardPool(address)":"03587c1d","getOperatorSelfStake(address)":"d673e0b9","getOperatorStake(address)":"e4e88de8","getOperatorStakeForAsset(address,(uint8,address))":"3501b458","getPendingCommissionChange()":"c6b7a813","getPendingUnstakes(address)":"5722d512","getPendingWithdrawals(address)":"f340c0d0","getSlashCount(address)":"66c36875","getSlashCountForBlueprint(uint64,address)":"c550d938","getSlashCountForService(uint64,address)":"72b5032d","getSlashImpact(address,uint64,address)":"9494f426","getSlashRecord(address,uint64)":"a457af3d","getTotalDelegation(address)":"fc5e7e09","increaseStake()":"d9e257ef","increaseStakeWithAsset(address,uint256)":"e5e27b6a","isOperator(address)":"6d70f7ae","isOperatorActive(address)":"eb473533","isSlasher(address)":"57601c5d","isWhitelisted(address,address)":"b6b35272","leaveDelegatorsDelay()":"db8a173a","leaveOperatorsDelay()":"4de8addc","meetsStakeRequirement(address,uint256)":"f46913bb","minOperatorStake()":"d775cb61","operatorAt(uint256)":"26142335","operatorBondToken()":"0f157fb9","operatorCommissionBps()":"32273f61","operatorCount()":"7c6f3158","pause()":"8456cb59","previewDelegatorUnstakeShares(address,address,uint256)":"71ed20b6","registerAdapter(address,address)":"d655b92a","registerOperator()":"2acde098","registerOperatorWithAsset(address,uint256)":"e0a5825b","removeAdapter(address)":"585cd34b","removeBlueprintForOperator(address,uint64)":"d106de35","removeBlueprintFromDelegation(uint256,uint64)":"859caa18","removeSlasher(address)":"aac6aa9c","rescueTokens(address,address,uint256)":"cea9d26f","rewardsManager()":"defe2053","roundDuration()":"f7cb789a","scheduleDelegatorUnstake(address,address,uint256)":"fc8a91af","scheduleOperatorUnstake(uint256)":"44aff252","scheduleWithdraw(address,uint256)":"e1ee4bcc","serviceFeeDistributor()":"2e40f7fb","setDelays(uint64,uint64,uint64)":"03780211","setDelegationMode(uint8)":"7202f76a","setDelegationWhitelist(address[],bool)":"c353c1f6","setOperatorBondToken(address)":"84f5ef65","setOperatorCommission(uint16)":"f3c4d8a0","setRequireAdapters(bool)":"7b76fe5e","setRewardsManager(address)":"0a8ddc5e","setServiceFeeDistributor(address)":"fbcc7b3d","setTangle(address)":"bf5274a7","slash(address,uint64,uint16,bytes32)":"ff38b049","slashForBlueprint(address,uint64,uint64,uint16,bytes32)":"614b1d9b","slashForService(address,uint64,uint64,((uint8,address),uint16)[],uint16,bytes32)":"675b3c43","snapshotOperator(address)":"cadd550c","startLeaving()":"87703550","undelegate(address,uint256)":"4d99dd16","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentDeposits\",\"type\":\"uint256\"}],\"name\":\"AdapterChangeWhileDepositsExist\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"AdapterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"AdapterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"AssetDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"}],\"name\":\"AssetEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintAddedToDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintRemovedFromDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DelegatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"estimatedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"DelegatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lock\",\"type\":\"uint8\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"ExpiredLocksHarvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorLeavingScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorStakeIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"RequireAdaptersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"RoundAdvanced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"SlashRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegatorsSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"commitmentCount\",\"type\":\"uint256\"}],\"name\":\"SlashedForService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"WithdrawScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LOCK_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_NONE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"addBlueprintForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"addBlueprintToDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"addSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"advanceRound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"canDelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelCommissionChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"completeLeaving\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint64[]\",\"name\":\"blueprintIds\",\"type\":\"uint64[]\"}],\"name\":\"delegateWithOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationBondLessDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"depositAndDelegate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint64[]\",\"name\":\"blueprintIds\",\"type\":\"uint64[]\"}],\"name\":\"depositAndDelegateWithOptions\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lockMultiplier\",\"type\":\"uint8\"}],\"name\":\"depositERC20WithLock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lockMultiplier\",\"type\":\"uint8\"}],\"name\":\"depositWithLock\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"disableAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"name\":\"enableAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"name\":\"enableAssetWithAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeCommissionChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeDelegatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"executeDelegatorUnstakeAndWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeOperatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAssetConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentDeposits\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getCumStakeSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"cum\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"lastUpdate\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getDelegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getDelegationBlueprints\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getDelegationMode\",\"outputs\":[{\"internalType\":\"enum Types.DelegationMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getDelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.BondInfoDelegator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getDeposit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delegatedAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Deposit\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getLocks\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"multiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"expiryBlock\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.LockInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlueprints\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegatedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getOperatorDelegatedStakeForAsset\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"delegationCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"leavingRound\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.OperatorMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRewardPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAssets\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.OperatorRewardPool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorSelfStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getOperatorStakeForAsset\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingCommissionChange\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"pendingBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getPendingUnstakes\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"slashFactorSnapshot\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BondLessRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getPendingWithdrawals\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.WithdrawRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getSlashImpact\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashIndex\",\"type\":\"uint64\"}],\"name\":\"getSlashRecord\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"internalType\":\"struct SlashingManager.SlashRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getTotalDelegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increaseStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"increaseStakeWithAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSlasher\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveDelegatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveOperatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"meetsStakeRequirement\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOperatorStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"operatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorBondToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCommissionBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"previewDelegatorUnstakeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"registerAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"registerOperatorWithAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"removeAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"removeBlueprintForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"removeBlueprintFromDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"removeSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleDelegatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleOperatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceFeeDistributor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"delegationBondLessDelay\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leaveDelegatorsDelay\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leaveOperatorsDelay\",\"type\":\"uint64\"}],\"name\":\"setDelays\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Types.DelegationMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setDelegationMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"delegators\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setDelegationWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"setOperatorBondToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"bps\",\"type\":\"uint16\"}],\"name\":\"setOperatorCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"setRequireAdapters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"setRewardsManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"setServiceFeeDistributor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tangle\",\"type\":\"address\"}],\"name\":\"setTangle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slashForBlueprint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slashForService\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"snapshotOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startLeaving\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"INTERFACE STRUCTURE: This interface is intentionally comprehensive to maintain backward compatibility. Logically, it can be viewed as composed of these segments: - Operator Functions: registration, staking, blueprint management - Deposit Functions: native/ERC20 deposits with optional locks - Delegation Functions: delegate/undelegate with blueprint selection - Slashing: slash functions and related queries - Asset Management: enable/disable assets, adapters - View Functions: read-only queries for state - Admin Functions: protocol configuration Future versions may split into focused sub-interfaces (e.g., IOperatorManager, IDepositManager, IDelegationManager) for better composability.\",\"kind\":\"dev\",\"methods\":{\"canDelegate(address,address)\":{\"params\":{\"delegator\":\"Delegator address\",\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"True if delegation is allowed\"}},\"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)\":{\"details\":\"Convenience helper for integrations (e.g. ERC7540 liquid delegation vaults) to avoid a separate scheduleWithdraw/executeWithdraw flow after bond-less delay has already elapsed.\",\"params\":{\"operator\":\"Operator to unstake from\",\"receiver\":\"Recipient of the withdrawn assets\",\"requestedRound\":\"Round in which the unstake was scheduled\",\"shares\":\"Shares to unstake (as stored in the underlying bond-less request)\",\"token\":\"Token address (address(0) for native)\"},\"returns\":{\"amount\":\"Actual amount returned (after exchange-rate adjustments)\"}},\"getDelegationMode(address)\":{\"params\":{\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"The current delegation mode\"}},\"isWhitelisted(address,address)\":{\"params\":{\"delegator\":\"Delegator address\",\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"True if whitelisted\"}},\"setDelegationMode(uint8)\":{\"params\":{\"mode\":\"Delegation mode: Disabled (0), Whitelist (1), or Open (2)\"}},\"setDelegationWhitelist(address[],bool)\":{\"params\":{\"approved\":\"True to approve, false to revoke\",\"delegators\":\"Array of delegator addresses to update\"}}},\"title\":\"IMultiAssetDelegation\",\"version\":1},\"userdoc\":{\"errors\":{\"AdapterChangeWhileDepositsExist(address,uint256)\":[{\"notice\":\"Round 4 audit S-2: raw register/remove of an adapter is rejected while the asset has live deposits. Use the M-8 migration path (`startAdapterMigration` \\u2192 `completeAdapterMigration`) instead.\"}]},\"kind\":\"user\",\"methods\":{\"canDelegate(address,address)\":{\"notice\":\"Check if delegator can delegate to operator\"},\"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)\":{\"notice\":\"Execute a specific matured unstake request and withdraw the resulting assets to `receiver`.\"},\"getCumStakeSeconds(address,(uint8,address))\":{\"notice\":\"F5: Lazy-realized cumulative stake-seconds for an (operator, asset) at the current block. Used by `Payments.billSubscription` for TWAP-fair pricing.\"},\"getDelegationMode(address)\":{\"notice\":\"Get operator's delegation mode\"},\"getOperatorRewardPool(address)\":{\"notice\":\"Get the operator's reward pool for the bond asset\"},\"isWhitelisted(address,address)\":{\"notice\":\"Check if delegator is whitelisted\"},\"setDelegationMode(uint8)\":{\"notice\":\"Set delegation mode for the operator\"},\"setDelegationWhitelist(address[],bool)\":{\"notice\":\"Update whitelist for the operator (batch)\"}},\"notice\":\"Full interface for the multi-asset staking contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IMultiAssetDelegation.sol\":\"IMultiAssetDelegation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/interfaces/IMultiAssetDelegation.sol\":{\"keccak256\":\"0xc82a8e7cdc9b02c97ed42d48a8c32be441d17849dc020141aed43f4cb2f8e70f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28ab8e80f646f40eb1e32b6a3c1ec4b6525a9cdbbf62913519dca857395027a7\",\"dweb:/ipfs/QmTCUBr95XPDh5beknpjWTB8V2tnaX2SY7B9V4ffjQo6bt\"]},\"src/interfaces/IRewardsManager.sol\":{\"keccak256\":\"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5\",\"dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k\"]},\"src/interfaces/IServiceFeeDistributor.sol\":{\"keccak256\":\"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3\",\"dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]},\"src/staking/DelegationErrors.sol\":{\"keccak256\":\"0xdb98e127f1b82a19f5da21f383b485053e0faa12153778512668a349b6758aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dff63a994f9dfa47e6b842186ef10f563d8515d95f95d31a63489432704eab8\",\"dweb:/ipfs/QmVLTrFqpYnELss9FgLdAndNRyWt86TjVMbNyMqXZt3c8S\"]},\"src/staking/DelegationManagerLib.sol\":{\"keccak256\":\"0x7bda528c13a7a4723ecac340af78bf09ea8a66bed150998973a89ca4aa15511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9fb51f571b71edfa652a6837f5b28fe73db26cd98a063b281bd6e19d54c64b\",\"dweb:/ipfs/QmYTiuTbJ2vQKAQ8onQVSudHGUdy6NStwrEtpCNyRCW6dN\"]},\"src/staking/DelegationStorage.sol\":{\"keccak256\":\"0x98bd82d3c86cf7c23efdedf3eecc91d860b963d491b102119759a6ca322ed1a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9345e8e4a44688685107aa1740c7c5e6c1490e884ab0b85f7c3251c2c6ae2093\",\"dweb:/ipfs/Qmev5dQN8EAgtxPHJ55a9UrcD2Y9Y1HW5b6A84iK3hAaWq\"]},\"src/staking/OperatorManager.sol\":{\"keccak256\":\"0x3a1083a9f49ec893bcb4848646f3353d3474b37e1c9ae37fd6661a909dff11a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db06517fcecc9c78f1f2db1f67b73a8b708bdc13c59375ddbf24dc20b41f8c7d\",\"dweb:/ipfs/QmXMSVPiCHcDbpiGcRhQAKCzmXfCPQr4Pt85D6bsifBYKg\"]},\"src/staking/RewardsManager.sol\":{\"keccak256\":\"0x829212768b1ec928efdbc8f7e005db70df22148e780d3e6bdc155816807adf3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a033c783f97767e3398855ac97283841851c9933288c5312e9a7552ebeb21b6d\",\"dweb:/ipfs/QmVw42yYzAY2BLF3ALzM8GG7uUyZKWZGiLfW1RZscSbT6B\"]},\"src/staking/SlashingManager.sol\":{\"keccak256\":\"0xb1847fff32d37fbff52f10a60e15a27e23cbf74c399c0ee2f56c411bd199233c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3569533340596ebd931a02215751c77e8dc7348b72a8c7b56dfa581437b78ea9\",\"dweb:/ipfs/QmWSDvL72TynLUxHRcGBq99bxfwcAmiiJidXX6iaxv8gTw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"currentDeposits","type":"uint256"}],"type":"error","name":"AdapterChangeWhileDepositsExist"},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"adapter","type":"address","indexed":true}],"type":"event","name":"AdapterRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true}],"type":"event","name":"AdapterRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true}],"type":"event","name":"AssetDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"minOperatorStake","type":"uint256","indexed":false},{"internalType":"uint256","name":"minDelegation","type":"uint256","indexed":false}],"type":"event","name":"AssetEnabled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintAddedToDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintRemovedFromDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8","indexed":false}],"type":"event","name":"Delegated","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DelegatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"estimatedAmount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"DelegatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"enum Types.LockMultiplier","name":"lock","type":"uint8","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalAmount","type":"uint256","indexed":false}],"type":"event","name":"ExpiredLocksHarvested","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorLeavingScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"stake","type":"uint256","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorStakeIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"bool","name":"required","type":"bool","indexed":false}],"type":"event","name":"RequireAdaptersUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"round","type":"uint64","indexed":true}],"type":"event","name":"RoundAdvanced","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"SlashRecorded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"operatorSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"delegatorsSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"Slashed","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"commitmentCount","type":"uint256","indexed":false}],"type":"event","name":"SlashedForService","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"WithdrawScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_ONE_MONTH","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_SIX_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_THREE_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_TWO_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_NONE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_ONE_MONTH","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_SIX_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_THREE_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_TWO_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"addBlueprintForOperator"},{"inputs":[{"internalType":"uint256","name":"delegationIndex","type":"uint256"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"addBlueprintToDelegation"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSlasher"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"advanceRound"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"canDelegate","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelCommissionChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"completeLeaving"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentRound","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint64[]","name":"blueprintIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"delegateWithOptions"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegationBondLessDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"payable","type":"function","name":"depositAndDelegate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint64[]","name":"blueprintIds","type":"uint64[]"}],"stateMutability":"payable","type":"function","name":"depositAndDelegateWithOptions"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.LockMultiplier","name":"lockMultiplier","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20WithLock"},{"inputs":[{"internalType":"enum Types.LockMultiplier","name":"lockMultiplier","type":"uint8"}],"stateMutability":"payable","type":"function","name":"depositWithLock"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"enableAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"adapter","type":"address"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"enableAssetWithAdapter"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeCommissionChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeDelegatorUnstake"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeDelegatorUnstakeAndWithdraw","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeOperatorUnstake"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeWithdraw"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAssetConfig","outputs":[{"internalType":"struct Types.AssetConfig","name":"","type":"tuple","components":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint256","name":"currentDeposits","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getCumStakeSeconds","outputs":[{"internalType":"uint256","name":"cum","type":"uint256"},{"internalType":"uint64","name":"lastUpdate","type":"uint64"},{"internalType":"uint256","name":"currentStake","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDelegationBlueprints","outputs":[{"internalType":"uint64[]","name":"","type":"uint64[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegationMode","outputs":[{"internalType":"enum Types.DelegationMode","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegations","outputs":[{"internalType":"struct Types.BondInfoDelegator[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getDeposit","outputs":[{"internalType":"struct Types.Deposit","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"delegatedAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getLocks","outputs":[{"internalType":"struct Types.LockInfo[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.LockMultiplier","name":"multiplier","type":"uint8"},{"internalType":"uint64","name":"expiryBlock","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlueprints","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegatedStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getOperatorDelegatedStakeForAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorMetadata","outputs":[{"internalType":"struct Types.OperatorMetadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint32","name":"delegationCount","type":"uint32"},{"internalType":"enum Types.OperatorStatus","name":"status","type":"uint8"},{"internalType":"uint64","name":"leavingRound","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRewardPool","outputs":[{"internalType":"struct Types.OperatorRewardPool","name":"","type":"tuple","components":[{"internalType":"uint256","name":"totalShares","type":"uint256"},{"internalType":"uint256","name":"totalAssets","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorSelfStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getOperatorStakeForAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPendingCommissionChange","outputs":[{"internalType":"uint16","name":"pendingBps","type":"uint16"},{"internalType":"uint64","name":"executeAfter","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingUnstakes","outputs":[{"internalType":"struct Types.BondLessRequest[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint256","name":"slashFactorSnapshot","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingWithdrawals","outputs":[{"internalType":"struct Types.WithdrawRequest[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForBlueprint","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForService","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashIndex","type":"uint64"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashRecord","outputs":[{"internalType":"struct SlashingManager.SlashRecord","name":"","type":"tuple","components":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalDelegation","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"increaseStake"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseStakeWithAsset"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isSlasher","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveDelegatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveOperatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"}],"stateMutability":"view","type":"function","name":"meetsStakeRequirement","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOperatorStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"operatorAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorBondToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCommissionBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDelegatorUnstakeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"adapter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerAdapter"},{"inputs":[],"stateMutability":"payable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorWithAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAdapter"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"removeBlueprintForOperator"},{"inputs":[{"internalType":"uint256","name":"delegationIndex","type":"uint256"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"removeBlueprintFromDelegation"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeSlasher"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rescueTokens"},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardsManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"roundDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleDelegatorUnstake"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleOperatorUnstake"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleWithdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceFeeDistributor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"delegationBondLessDelay","type":"uint64"},{"internalType":"uint64","name":"leaveDelegatorsDelay","type":"uint64"},{"internalType":"uint64","name":"leaveOperatorsDelay","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setDelays"},{"inputs":[{"internalType":"enum Types.DelegationMode","name":"mode","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setDelegationMode"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDelegationWhitelist"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorBondToken"},{"inputs":[{"internalType":"uint16","name":"bps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorCommission"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setRequireAdapters"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardsManager"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setServiceFeeDistributor"},{"inputs":[{"internalType":"address","name":"tangle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTangle"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slashForBlueprint","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slashForService","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"snapshotOperator"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startLeaving"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"undelegate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{"canDelegate(address,address)":{"params":{"delegator":"Delegator address","operator":"Operator address"},"returns":{"_0":"True if delegation is allowed"}},"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":{"details":"Convenience helper for integrations (e.g. ERC7540 liquid delegation vaults) to avoid a separate scheduleWithdraw/executeWithdraw flow after bond-less delay has already elapsed.","params":{"operator":"Operator to unstake from","receiver":"Recipient of the withdrawn assets","requestedRound":"Round in which the unstake was scheduled","shares":"Shares to unstake (as stored in the underlying bond-less request)","token":"Token address (address(0) for native)"},"returns":{"amount":"Actual amount returned (after exchange-rate adjustments)"}},"getDelegationMode(address)":{"params":{"operator":"Operator address"},"returns":{"_0":"The current delegation mode"}},"isWhitelisted(address,address)":{"params":{"delegator":"Delegator address","operator":"Operator address"},"returns":{"_0":"True if whitelisted"}},"setDelegationMode(uint8)":{"params":{"mode":"Delegation mode: Disabled (0), Whitelist (1), or Open (2)"}},"setDelegationWhitelist(address[],bool)":{"params":{"approved":"True to approve, false to revoke","delegators":"Array of delegator addresses to update"}}},"version":1},"userdoc":{"kind":"user","methods":{"canDelegate(address,address)":{"notice":"Check if delegator can delegate to operator"},"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":{"notice":"Execute a specific matured unstake request and withdraw the resulting assets to `receiver`."},"getCumStakeSeconds(address,(uint8,address))":{"notice":"F5: Lazy-realized cumulative stake-seconds for an (operator, asset) at the current block. Used by `Payments.billSubscription` for TWAP-fair pricing."},"getDelegationMode(address)":{"notice":"Get operator's delegation mode"},"getOperatorRewardPool(address)":{"notice":"Get the operator's reward pool for the bond asset"},"isWhitelisted(address,address)":{"notice":"Check if delegator is whitelisted"},"setDelegationMode(uint8)":{"notice":"Set delegation mode for the operator"},"setDelegationWhitelist(address[],bool)":{"notice":"Update whitelist for the operator (batch)"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/IMultiAssetDelegation.sol":"IMultiAssetDelegation"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/interfaces/IMultiAssetDelegation.sol":{"keccak256":"0xc82a8e7cdc9b02c97ed42d48a8c32be441d17849dc020141aed43f4cb2f8e70f","urls":["bzz-raw://28ab8e80f646f40eb1e32b6a3c1ec4b6525a9cdbbf62913519dca857395027a7","dweb:/ipfs/QmTCUBr95XPDh5beknpjWTB8V2tnaX2SY7B9V4ffjQo6bt"],"license":"MIT"},"src/interfaces/IRewardsManager.sol":{"keccak256":"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9","urls":["bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5","dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k"],"license":"MIT"},"src/interfaces/IServiceFeeDistributor.sol":{"keccak256":"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a","urls":["bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3","dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"},"src/staking/DelegationErrors.sol":{"keccak256":"0xdb98e127f1b82a19f5da21f383b485053e0faa12153778512668a349b6758aa8","urls":["bzz-raw://4dff63a994f9dfa47e6b842186ef10f563d8515d95f95d31a63489432704eab8","dweb:/ipfs/QmVLTrFqpYnELss9FgLdAndNRyWt86TjVMbNyMqXZt3c8S"],"license":"MIT"},"src/staking/DelegationManagerLib.sol":{"keccak256":"0x7bda528c13a7a4723ecac340af78bf09ea8a66bed150998973a89ca4aa15511b","urls":["bzz-raw://4c9fb51f571b71edfa652a6837f5b28fe73db26cd98a063b281bd6e19d54c64b","dweb:/ipfs/QmYTiuTbJ2vQKAQ8onQVSudHGUdy6NStwrEtpCNyRCW6dN"],"license":"MIT"},"src/staking/DelegationStorage.sol":{"keccak256":"0x98bd82d3c86cf7c23efdedf3eecc91d860b963d491b102119759a6ca322ed1a3","urls":["bzz-raw://9345e8e4a44688685107aa1740c7c5e6c1490e884ab0b85f7c3251c2c6ae2093","dweb:/ipfs/Qmev5dQN8EAgtxPHJ55a9UrcD2Y9Y1HW5b6A84iK3hAaWq"],"license":"MIT"},"src/staking/OperatorManager.sol":{"keccak256":"0x3a1083a9f49ec893bcb4848646f3353d3474b37e1c9ae37fd6661a909dff11a9","urls":["bzz-raw://db06517fcecc9c78f1f2db1f67b73a8b708bdc13c59375ddbf24dc20b41f8c7d","dweb:/ipfs/QmXMSVPiCHcDbpiGcRhQAKCzmXfCPQr4Pt85D6bsifBYKg"],"license":"MIT"},"src/staking/RewardsManager.sol":{"keccak256":"0x829212768b1ec928efdbc8f7e005db70df22148e780d3e6bdc155816807adf3c","urls":["bzz-raw://a033c783f97767e3398855ac97283841851c9933288c5312e9a7552ebeb21b6d","dweb:/ipfs/QmVw42yYzAY2BLF3ALzM8GG7uUyZKWZGiLfW1RZscSbT6B"],"license":"MIT"},"src/staking/SlashingManager.sol":{"keccak256":"0xb1847fff32d37fbff52f10a60e15a27e23cbf74c399c0ee2f56c411bd199233c","urls":["bzz-raw://3569533340596ebd931a02215751c77e8dc7348b72a8c7b56dfa581437b78ea9","dweb:/ipfs/QmWSDvL72TynLUxHRcGBq99bxfwcAmiiJidXX6iaxv8gTw"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file +{"abi":[{"type":"function","name":"LOCK_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_NONE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"addBlueprintForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addBlueprintToDelegation","inputs":[{"name":"delegationIndex","type":"uint256","internalType":"uint256"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSlasher","inputs":[{"name":"slasher","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"advanceRound","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canDelegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"cancelCommissionChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"completeLeaving","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentRound","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateWithOptions","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"blueprintIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegationBondLessDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositAndDelegate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositAndDelegateWithOptions","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"blueprintIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositERC20","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositERC20WithLock","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"lockMultiplier","type":"uint8","internalType":"enum Types.LockMultiplier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositWithLock","inputs":[{"name":"lockMultiplier","type":"uint8","internalType":"enum Types.LockMultiplier"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"disableAsset","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableAssetWithAdapter","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"adapter","type":"address","internalType":"address"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeCommissionChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegatorUnstake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeDelegatorUnstakeAndWithdraw","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeOperatorUnstake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeWithdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAssetConfig","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.AssetConfig","components":[{"name":"enabled","type":"bool","internalType":"bool"},{"name":"minOperatorStake","type":"uint256","internalType":"uint256"},{"name":"minDelegation","type":"uint256","internalType":"uint256"},{"name":"depositCap","type":"uint256","internalType":"uint256"},{"name":"currentDeposits","type":"uint256","internalType":"uint256"},{"name":"rewardMultiplierBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getCumStakeSeconds","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"cum","type":"uint256","internalType":"uint256"},{"name":"lastUpdate","type":"uint64","internalType":"uint64"},{"name":"currentStake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDelegation","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDelegationBlueprints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getDelegationMode","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.DelegationMode"}],"stateMutability":"view"},{"type":"function","name":"getDelegations","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.BondInfoDelegator[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"}]}],"stateMutability":"view"},{"type":"function","name":"getDeposit","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Deposit","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"delegatedAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getLocks","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.LockInfo[]","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"multiplier","type":"uint8","internalType":"enum Types.LockMultiplier"},{"name":"expiryBlock","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlueprints","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatedStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatedStakeForAsset","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegatorCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorDelegators","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorMetadata","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorMetadata","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"delegationCount","type":"uint32","internalType":"uint32"},{"name":"status","type":"uint8","internalType":"enum Types.OperatorStatus"},{"name":"leavingRound","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorRewardPool","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRewardPool","components":[{"name":"totalShares","type":"uint256","internalType":"uint256"},{"name":"totalAssets","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorSelfStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStake","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeForAsset","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPendingCommissionChange","inputs":[],"outputs":[{"name":"pendingBps","type":"uint16","internalType":"uint16"},{"name":"executeAfter","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getPendingUnstakes","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.BondLessRequest[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"},{"name":"selectionMode","type":"uint8","internalType":"enum Types.BlueprintSelectionMode"},{"name":"slashFactorSnapshot","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getPendingWithdrawals","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.WithdrawRequest[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"requestedRound","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashImpact","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashIndex","type":"uint64","internalType":"uint64"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashRecord","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingManager.SlashRecord","components":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getTotalDelegation","inputs":[{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increaseStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"increaseStakeWithAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperatorActive","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasher","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhitelisted","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"leaveDelegatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveOperatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"meetsStakeRequirement","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"required","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"minOperatorStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorAt","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorBondToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorCommissionBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"operatorCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"previewDelegatorUnstakeShares","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerAdapter","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"adapter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"registerOperatorWithAsset","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeAdapter","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeBlueprintForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeBlueprintFromDelegation","inputs":[{"name":"delegationIndex","type":"uint256","internalType":"uint256"},{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSlasher","inputs":[{"name":"slasher","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescueTokens","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardsManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"roundDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"scheduleDelegatorUnstake","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"scheduleOperatorUnstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"scheduleWithdraw","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceFeeDistributor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDelays","inputs":[{"name":"delegationBondLessDelay","type":"uint64","internalType":"uint64"},{"name":"leaveDelegatorsDelay","type":"uint64","internalType":"uint64"},{"name":"leaveOperatorsDelay","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegationMode","inputs":[{"name":"mode","type":"uint8","internalType":"enum Types.DelegationMode"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegationWhitelist","inputs":[{"name":"delegators","type":"address[]","internalType":"address[]"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorBondToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorCommission","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequireAdapters","inputs":[{"name":"required","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRewardsManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setServiceFeeDistributor","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTangle","inputs":[{"name":"tangle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slash","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashForBlueprint","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashForService","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startLeaving","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"undelegate","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterRegistered","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"adapter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterRemoved","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetDisabled","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetEnabled","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"minOperatorStake","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minDelegation","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintAddedToDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintRemovedFromDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Delegated","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"selectionMode","type":"uint8","indexed":false,"internalType":"enum Types.BlueprintSelectionMode"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeExecuted","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"estimatedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lock","type":"uint8","indexed":false,"internalType":"enum Types.LockMultiplier"}],"anonymous":false},{"type":"event","name":"ExpiredLocksHarvested","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintAdded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintRemoved","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeavingScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeft","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"stake","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorStakeIncreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeExecuted","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequireAdaptersUpdated","inputs":[{"name":"required","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RoundAdvanced","inputs":[{"name":"round","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"SlashRecorded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Slashed","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"operatorSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"delegatorsSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashedForService","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"commitmentCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AdapterChangeWhileDepositsExist","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"currentDeposits","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"LOCK_ONE_MONTH()":"9e870585","LOCK_SIX_MONTHS()":"f3c9b311","LOCK_THREE_MONTHS()":"d27a6f06","LOCK_TWO_MONTHS()":"7df92ada","MULTIPLIER_NONE()":"4962f88f","MULTIPLIER_ONE_MONTH()":"18056dc2","MULTIPLIER_SIX_MONTHS()":"453eccea","MULTIPLIER_THREE_MONTHS()":"a7fa6f98","MULTIPLIER_TWO_MONTHS()":"54de2320","addBlueprintForOperator(address,uint64)":"b9c04c1b","addBlueprintToDelegation(uint256,uint64)":"23cc2700","addSlasher(address)":"68a9f19c","advanceRound()":"1ba9998b","canDelegate(address,address)":"2aa81239","cancelCommissionChange()":"dc71ef30","completeLeaving()":"d1736ba7","currentRound()":"8a19c8bc","delegate(address,uint256)":"026e402b","delegateWithOptions(address,address,uint256,uint8,uint64[])":"fd7d3dbc","delegationBondLessDelay()":"ba05bbf5","deposit()":"d0e30db0","depositAndDelegate(address)":"461cc23b","depositAndDelegateWithOptions(address,address,uint256,uint8,uint64[])":"fbec4861","depositERC20(address,uint256)":"97feb926","depositERC20WithLock(address,uint256,uint8)":"cb15038b","depositWithLock(uint8)":"f38c7c4e","disableAsset(address)":"70807528","enableAsset(address,uint256,uint256,uint256,uint16)":"354ebef9","enableAssetWithAdapter(address,address,uint256,uint256,uint256,uint16)":"f0b52bb4","executeCommissionChange()":"46c9b454","executeDelegatorUnstake()":"007910d0","executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":"bf690206","executeOperatorUnstake()":"b0dfce06","executeWithdraw()":"f8fd9795","getAssetConfig(address)":"6ec3ab67","getCumStakeSeconds(address,(uint8,address))":"c1f1d6fb","getDelegation(address,address)":"15049a5a","getDelegationBlueprints(address,uint256)":"7b9996c5","getDelegationMode(address)":"7bed797d","getDelegations(address)":"31cc13ba","getDeposit(address,address)":"c35082a9","getLocks(address,address)":"0c8833ce","getOperatorBlueprints(address)":"dc972ccc","getOperatorDelegatedStake(address)":"8c5b4ae7","getOperatorDelegatedStakeForAsset(address,(uint8,address))":"20e1b202","getOperatorDelegatorCount(address)":"486398c3","getOperatorDelegators(address)":"a299e298","getOperatorMetadata(address)":"2ee663b8","getOperatorRewardPool(address)":"03587c1d","getOperatorSelfStake(address)":"d673e0b9","getOperatorStake(address)":"e4e88de8","getOperatorStakeForAsset(address,(uint8,address))":"3501b458","getPendingCommissionChange()":"c6b7a813","getPendingUnstakes(address)":"5722d512","getPendingWithdrawals(address)":"f340c0d0","getSlashCount(address)":"66c36875","getSlashCountForBlueprint(uint64,address)":"c550d938","getSlashCountForService(uint64,address)":"72b5032d","getSlashImpact(address,uint64,address)":"9494f426","getSlashRecord(address,uint64)":"a457af3d","getTotalDelegation(address)":"fc5e7e09","increaseStake()":"d9e257ef","increaseStakeWithAsset(address,uint256)":"e5e27b6a","isOperator(address)":"6d70f7ae","isOperatorActive(address)":"eb473533","isSlasher(address)":"57601c5d","isWhitelisted(address,address)":"b6b35272","leaveDelegatorsDelay()":"db8a173a","leaveOperatorsDelay()":"4de8addc","meetsStakeRequirement(address,uint256)":"f46913bb","minOperatorStake()":"d775cb61","operatorAt(uint256)":"26142335","operatorBondToken()":"0f157fb9","operatorCommissionBps()":"32273f61","operatorCount()":"7c6f3158","pause()":"8456cb59","previewDelegatorUnstakeShares(address,address,uint256)":"71ed20b6","registerAdapter(address,address)":"d655b92a","registerOperator()":"2acde098","registerOperatorWithAsset(address,uint256)":"e0a5825b","removeAdapter(address)":"585cd34b","removeBlueprintForOperator(address,uint64)":"d106de35","removeBlueprintFromDelegation(uint256,uint64)":"859caa18","removeSlasher(address)":"aac6aa9c","rescueTokens(address,address,uint256)":"cea9d26f","rewardsManager()":"defe2053","roundDuration()":"f7cb789a","scheduleDelegatorUnstake(address,address,uint256)":"fc8a91af","scheduleOperatorUnstake(uint256)":"44aff252","scheduleWithdraw(address,uint256)":"e1ee4bcc","serviceFeeDistributor()":"2e40f7fb","setDelays(uint64,uint64,uint64)":"03780211","setDelegationMode(uint8)":"7202f76a","setDelegationWhitelist(address[],bool)":"c353c1f6","setOperatorBondToken(address)":"84f5ef65","setOperatorCommission(uint16)":"f3c4d8a0","setRequireAdapters(bool)":"7b76fe5e","setRewardsManager(address)":"0a8ddc5e","setServiceFeeDistributor(address)":"fbcc7b3d","setTangle(address)":"bf5274a7","slash(address,uint64,uint16,bytes32)":"ff38b049","slashForBlueprint(address,uint64,uint64,uint16,bytes32)":"614b1d9b","slashForService(address,uint64,uint64,((uint8,address),uint16)[],uint16,bytes32)":"675b3c43","snapshotOperator(address)":"cadd550c","startLeaving()":"87703550","undelegate(address,uint256)":"4d99dd16","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentDeposits\",\"type\":\"uint256\"}],\"name\":\"AdapterChangeWhileDepositsExist\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"AdapterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"AdapterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"AssetDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"}],\"name\":\"AssetEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintAddedToDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintRemovedFromDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DelegatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"estimatedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"DelegatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lock\",\"type\":\"uint8\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"ExpiredLocksHarvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorLeavingScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorStakeIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"RequireAdaptersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"RoundAdvanced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"SlashRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegatorsSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"commitmentCount\",\"type\":\"uint256\"}],\"name\":\"SlashedForService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"WithdrawScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LOCK_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_NONE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"addBlueprintForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"addBlueprintToDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"addSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"advanceRound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"canDelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelCommissionChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"completeLeaving\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint64[]\",\"name\":\"blueprintIds\",\"type\":\"uint64[]\"}],\"name\":\"delegateWithOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationBondLessDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"depositAndDelegate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint64[]\",\"name\":\"blueprintIds\",\"type\":\"uint64[]\"}],\"name\":\"depositAndDelegateWithOptions\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lockMultiplier\",\"type\":\"uint8\"}],\"name\":\"depositERC20WithLock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lockMultiplier\",\"type\":\"uint8\"}],\"name\":\"depositWithLock\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"disableAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"name\":\"enableAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"name\":\"enableAssetWithAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeCommissionChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeDelegatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"executeDelegatorUnstakeAndWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeOperatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAssetConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"minOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depositCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentDeposits\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"rewardMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getCumStakeSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"cum\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"lastUpdate\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getDelegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getDelegationBlueprints\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getDelegationMode\",\"outputs\":[{\"internalType\":\"enum Types.DelegationMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getDelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.BondInfoDelegator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getDeposit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delegatedAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Deposit\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getLocks\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"multiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"expiryBlock\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.LockInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlueprints\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegatedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getOperatorDelegatedStakeForAsset\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorDelegators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"delegationCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"leavingRound\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.OperatorMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRewardPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalAssets\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.OperatorRewardPool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorSelfStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"}],\"name\":\"getOperatorStakeForAsset\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingCommissionChange\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"pendingBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getPendingUnstakes\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"slashFactorSnapshot\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BondLessRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getPendingWithdrawals\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"requestedRound\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.WithdrawRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashIndex\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getSlashImpact\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashIndex\",\"type\":\"uint64\"}],\"name\":\"getSlashRecord\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"internalType\":\"struct SlashingManager.SlashRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getTotalDelegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increaseStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"increaseStakeWithAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSlasher\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveDelegatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveOperatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"meetsStakeRequirement\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOperatorStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"operatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorBondToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCommissionBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"previewDelegatorUnstakeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"registerAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"registerOperatorWithAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"removeAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"removeBlueprintForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"removeBlueprintFromDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"removeSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleDelegatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleOperatorUnstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"scheduleWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceFeeDistributor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"delegationBondLessDelay\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leaveDelegatorsDelay\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leaveOperatorsDelay\",\"type\":\"uint64\"}],\"name\":\"setDelays\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Types.DelegationMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setDelegationMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"delegators\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setDelegationWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"setOperatorBondToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"bps\",\"type\":\"uint16\"}],\"name\":\"setOperatorCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"setRequireAdapters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"setRewardsManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"setServiceFeeDistributor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tangle\",\"type\":\"address\"}],\"name\":\"setTangle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slashForBlueprint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"slashForService\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"snapshotOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startLeaving\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"INTERFACE STRUCTURE: This interface is intentionally comprehensive to maintain backward compatibility. Logically, it can be viewed as composed of these segments: - Operator Functions: registration, staking, blueprint management - Deposit Functions: native/ERC20 deposits with optional locks - Delegation Functions: delegate/undelegate with blueprint selection - Slashing: slash functions and related queries - Asset Management: enable/disable assets, adapters - View Functions: read-only queries for state - Admin Functions: protocol configuration Future versions may split into focused sub-interfaces (e.g., IOperatorManager, IDepositManager, IDelegationManager) for better composability.\",\"kind\":\"dev\",\"methods\":{\"canDelegate(address,address)\":{\"params\":{\"delegator\":\"Delegator address\",\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"True if delegation is allowed\"}},\"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)\":{\"details\":\"Convenience helper for integrations (e.g. ERC7540 liquid delegation vaults) to avoid a separate scheduleWithdraw/executeWithdraw flow after bond-less delay has already elapsed.\",\"params\":{\"operator\":\"Operator to unstake from\",\"receiver\":\"Recipient of the withdrawn assets\",\"requestedRound\":\"Round in which the unstake was scheduled\",\"shares\":\"Shares to unstake (as stored in the underlying bond-less request)\",\"token\":\"Token address (address(0) for native)\"},\"returns\":{\"amount\":\"Actual amount returned (after exchange-rate adjustments)\"}},\"getDelegationMode(address)\":{\"params\":{\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"The current delegation mode\"}},\"isWhitelisted(address,address)\":{\"params\":{\"delegator\":\"Delegator address\",\"operator\":\"Operator address\"},\"returns\":{\"_0\":\"True if whitelisted\"}},\"setDelegationMode(uint8)\":{\"params\":{\"mode\":\"Delegation mode: Disabled (0), Whitelist (1), or Open (2)\"}},\"setDelegationWhitelist(address[],bool)\":{\"params\":{\"approved\":\"True to approve, false to revoke\",\"delegators\":\"Array of delegator addresses to update\"}}},\"title\":\"IMultiAssetDelegation\",\"version\":1},\"userdoc\":{\"errors\":{\"AdapterChangeWhileDepositsExist(address,uint256)\":[{\"notice\":\"Raw register/remove of an adapter is rejected while the asset has live deposits; admins must drain through the migration path (`startAdapterMigration` \\u2192 `completeAdapterMigration`) instead.\"}]},\"kind\":\"user\",\"methods\":{\"canDelegate(address,address)\":{\"notice\":\"Check if delegator can delegate to operator\"},\"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)\":{\"notice\":\"Execute a specific matured unstake request and withdraw the resulting assets to `receiver`.\"},\"getCumStakeSeconds(address,(uint8,address))\":{\"notice\":\"Lazy-realized cumulative stake-seconds for an (operator, asset) at the current block. Used by `Payments.billSubscription` for TWAP-fair pricing.\"},\"getDelegationMode(address)\":{\"notice\":\"Get operator's delegation mode\"},\"getOperatorRewardPool(address)\":{\"notice\":\"Get the operator's reward pool for the bond asset\"},\"isWhitelisted(address,address)\":{\"notice\":\"Check if delegator is whitelisted\"},\"setDelegationMode(uint8)\":{\"notice\":\"Set delegation mode for the operator\"},\"setDelegationWhitelist(address[],bool)\":{\"notice\":\"Update whitelist for the operator (batch)\"}},\"notice\":\"Full interface for the multi-asset staking contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IMultiAssetDelegation.sol\":\"IMultiAssetDelegation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/interfaces/IMultiAssetDelegation.sol\":{\"keccak256\":\"0x20b3277270e2823f403dd14473e772c40e363b9a82cfaed8f2dd08fdade0c4fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb6265f16d2a512ce819d61ce84630c161395157ef1a095455b437b4a15e513\",\"dweb:/ipfs/QmWj2wAdScu3mc7BxGUBt1hQyQEpcWyBxS92kX5XuodnL3\"]},\"src/interfaces/IRewardsManager.sol\":{\"keccak256\":\"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5\",\"dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k\"]},\"src/interfaces/IServiceFeeDistributor.sol\":{\"keccak256\":\"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3\",\"dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]},\"src/staking/DelegationErrors.sol\":{\"keccak256\":\"0x76926e780f34671c68ab5aff1973d337cbe6fc69d9366ee9daaf9fb00fc51c47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3500d473c17e4ff1ad2a058be1713ca08ecd121858f63f50c9a0964b2fefb8\",\"dweb:/ipfs/QmedZTSgjtZVPovjvNsKYFo2cx4RXY1yejyk9H73ZyjU2t\"]},\"src/staking/DelegationManagerLib.sol\":{\"keccak256\":\"0x24efc9fce4fb905ddd6d03de54098121bbdf7949673a81bc9acb4b5c83125fbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56af1504bb1374300c08519debaae3a18b3569be797d286b486560b15dd7756b\",\"dweb:/ipfs/QmQDpJm2YgZ81o96hx7po2mBToDJmPhNDbqXe3DyZy48Tq\"]},\"src/staking/DelegationStorage.sol\":{\"keccak256\":\"0xdbe45e7fb5f2535ab49aafe8adec875b5af30a18123ab6301865e7ef6bd4d91e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a653dcaac885e24477a12b6409fb0ec93f13d5f1a51709c88aec8de826f776e\",\"dweb:/ipfs/QmSZ1YEzpXbFPfXrFF3ujvgchgJteBsFnNw9S1YgUqPKQc\"]},\"src/staking/OperatorManager.sol\":{\"keccak256\":\"0xf362791e74d74757b67b7aaac34ac01a32c50b434c4a44182a613312d07752ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2a3790af9bceae26e4368cadf2d6507025d9cacf4bb1bc827d338a03d502e4c\",\"dweb:/ipfs/QmThzrdGJhXSixESvuJKaFncqw2gSqPmBVDdwNacdmSDA4\"]},\"src/staking/RewardsManager.sol\":{\"keccak256\":\"0x1bdae9f62162b9620ae8134c8e5cbb9d2724bb0c1168e7987b403a486702df21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7cd6bef2f368bd9c67c36ce8702ad7086222ec72f073dce2f27f068261dce57\",\"dweb:/ipfs/Qmf93doWDecxbUVbKmm3SruYVEHCWm7ncVbrEhTUAFYshy\"]},\"src/staking/SlashingManager.sol\":{\"keccak256\":\"0x1bd0b3b1ad9555d8c6cbe6a6b1b05eb709f219984780816fa074f8053523cbc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea85d5d9052165faf4b58cb3eb81665d5f7292ccff74bc35658ebdcc7d9bff4\",\"dweb:/ipfs/QmQD94GzYRmwWHGg6sM797MB3cmgSiVUV4237FiBNDNRiu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"currentDeposits","type":"uint256"}],"type":"error","name":"AdapterChangeWhileDepositsExist"},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"adapter","type":"address","indexed":true}],"type":"event","name":"AdapterRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true}],"type":"event","name":"AdapterRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true}],"type":"event","name":"AssetDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"minOperatorStake","type":"uint256","indexed":false},{"internalType":"uint256","name":"minDelegation","type":"uint256","indexed":false}],"type":"event","name":"AssetEnabled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintAddedToDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintRemovedFromDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8","indexed":false}],"type":"event","name":"Delegated","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DelegatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"estimatedAmount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"DelegatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"enum Types.LockMultiplier","name":"lock","type":"uint8","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalAmount","type":"uint256","indexed":false}],"type":"event","name":"ExpiredLocksHarvested","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorLeavingScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"stake","type":"uint256","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorStakeIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"bool","name":"required","type":"bool","indexed":false}],"type":"event","name":"RequireAdaptersUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"round","type":"uint64","indexed":true}],"type":"event","name":"RoundAdvanced","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"SlashRecorded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"operatorSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"delegatorsSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"Slashed","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"commitmentCount","type":"uint256","indexed":false}],"type":"event","name":"SlashedForService","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"WithdrawScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_ONE_MONTH","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_SIX_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_THREE_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_TWO_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_NONE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_ONE_MONTH","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_SIX_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_THREE_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_TWO_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"addBlueprintForOperator"},{"inputs":[{"internalType":"uint256","name":"delegationIndex","type":"uint256"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"addBlueprintToDelegation"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSlasher"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"advanceRound"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"canDelegate","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelCommissionChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"completeLeaving"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentRound","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint64[]","name":"blueprintIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"delegateWithOptions"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegationBondLessDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"payable","type":"function","name":"depositAndDelegate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint64[]","name":"blueprintIds","type":"uint64[]"}],"stateMutability":"payable","type":"function","name":"depositAndDelegateWithOptions"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.LockMultiplier","name":"lockMultiplier","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"depositERC20WithLock"},{"inputs":[{"internalType":"enum Types.LockMultiplier","name":"lockMultiplier","type":"uint8"}],"stateMutability":"payable","type":"function","name":"depositWithLock"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"enableAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"adapter","type":"address"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"enableAssetWithAdapter"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeCommissionChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeDelegatorUnstake"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeDelegatorUnstakeAndWithdraw","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeOperatorUnstake"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeWithdraw"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAssetConfig","outputs":[{"internalType":"struct Types.AssetConfig","name":"","type":"tuple","components":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"minOperatorStake","type":"uint256"},{"internalType":"uint256","name":"minDelegation","type":"uint256"},{"internalType":"uint256","name":"depositCap","type":"uint256"},{"internalType":"uint256","name":"currentDeposits","type":"uint256"},{"internalType":"uint16","name":"rewardMultiplierBps","type":"uint16"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getCumStakeSeconds","outputs":[{"internalType":"uint256","name":"cum","type":"uint256"},{"internalType":"uint64","name":"lastUpdate","type":"uint64"},{"internalType":"uint256","name":"currentStake","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDelegationBlueprints","outputs":[{"internalType":"uint64[]","name":"","type":"uint64[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegationMode","outputs":[{"internalType":"enum Types.DelegationMode","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getDelegations","outputs":[{"internalType":"struct Types.BondInfoDelegator[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getDeposit","outputs":[{"internalType":"struct Types.Deposit","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"delegatedAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getLocks","outputs":[{"internalType":"struct Types.LockInfo[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum Types.LockMultiplier","name":"multiplier","type":"uint8"},{"internalType":"uint64","name":"expiryBlock","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlueprints","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegatedStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getOperatorDelegatedStakeForAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorDelegators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorMetadata","outputs":[{"internalType":"struct Types.OperatorMetadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint32","name":"delegationCount","type":"uint32"},{"internalType":"enum Types.OperatorStatus","name":"status","type":"uint8"},{"internalType":"uint64","name":"leavingRound","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRewardPool","outputs":[{"internalType":"struct Types.OperatorRewardPool","name":"","type":"tuple","components":[{"internalType":"uint256","name":"totalShares","type":"uint256"},{"internalType":"uint256","name":"totalAssets","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorSelfStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]}],"stateMutability":"view","type":"function","name":"getOperatorStakeForAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPendingCommissionChange","outputs":[{"internalType":"uint16","name":"pendingBps","type":"uint16"},{"internalType":"uint64","name":"executeAfter","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingUnstakes","outputs":[{"internalType":"struct Types.BondLessRequest[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8"},{"internalType":"uint256","name":"slashFactorSnapshot","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingWithdrawals","outputs":[{"internalType":"struct Types.WithdrawRequest[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint64","name":"requestedRound","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForBlueprint","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForService","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashIndex","type":"uint64"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashRecord","outputs":[{"internalType":"struct SlashingManager.SlashRecord","name":"","type":"tuple","components":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalDelegation","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"increaseStake"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseStakeWithAsset"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isSlasher","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveDelegatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveOperatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"}],"stateMutability":"view","type":"function","name":"meetsStakeRequirement","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOperatorStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"operatorAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorBondToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCommissionBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDelegatorUnstakeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"adapter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerAdapter"},{"inputs":[],"stateMutability":"payable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorWithAsset"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeAdapter"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"removeBlueprintForOperator"},{"inputs":[{"internalType":"uint256","name":"delegationIndex","type":"uint256"},{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"removeBlueprintFromDelegation"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeSlasher"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rescueTokens"},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardsManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"roundDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleDelegatorUnstake"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleOperatorUnstake"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"scheduleWithdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceFeeDistributor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"delegationBondLessDelay","type":"uint64"},{"internalType":"uint64","name":"leaveDelegatorsDelay","type":"uint64"},{"internalType":"uint64","name":"leaveOperatorsDelay","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setDelays"},{"inputs":[{"internalType":"enum Types.DelegationMode","name":"mode","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setDelegationMode"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDelegationWhitelist"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorBondToken"},{"inputs":[{"internalType":"uint16","name":"bps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorCommission"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setRequireAdapters"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardsManager"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setServiceFeeDistributor"},{"inputs":[{"internalType":"address","name":"tangle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTangle"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slashForBlueprint","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"slashForService","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"snapshotOperator"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startLeaving"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"undelegate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{"canDelegate(address,address)":{"params":{"delegator":"Delegator address","operator":"Operator address"},"returns":{"_0":"True if delegation is allowed"}},"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":{"details":"Convenience helper for integrations (e.g. ERC7540 liquid delegation vaults) to avoid a separate scheduleWithdraw/executeWithdraw flow after bond-less delay has already elapsed.","params":{"operator":"Operator to unstake from","receiver":"Recipient of the withdrawn assets","requestedRound":"Round in which the unstake was scheduled","shares":"Shares to unstake (as stored in the underlying bond-less request)","token":"Token address (address(0) for native)"},"returns":{"amount":"Actual amount returned (after exchange-rate adjustments)"}},"getDelegationMode(address)":{"params":{"operator":"Operator address"},"returns":{"_0":"The current delegation mode"}},"isWhitelisted(address,address)":{"params":{"delegator":"Delegator address","operator":"Operator address"},"returns":{"_0":"True if whitelisted"}},"setDelegationMode(uint8)":{"params":{"mode":"Delegation mode: Disabled (0), Whitelist (1), or Open (2)"}},"setDelegationWhitelist(address[],bool)":{"params":{"approved":"True to approve, false to revoke","delegators":"Array of delegator addresses to update"}}},"version":1},"userdoc":{"kind":"user","methods":{"canDelegate(address,address)":{"notice":"Check if delegator can delegate to operator"},"executeDelegatorUnstakeAndWithdraw(address,address,uint256,uint64,address)":{"notice":"Execute a specific matured unstake request and withdraw the resulting assets to `receiver`."},"getCumStakeSeconds(address,(uint8,address))":{"notice":"Lazy-realized cumulative stake-seconds for an (operator, asset) at the current block. Used by `Payments.billSubscription` for TWAP-fair pricing."},"getDelegationMode(address)":{"notice":"Get operator's delegation mode"},"getOperatorRewardPool(address)":{"notice":"Get the operator's reward pool for the bond asset"},"isWhitelisted(address,address)":{"notice":"Check if delegator is whitelisted"},"setDelegationMode(uint8)":{"notice":"Set delegation mode for the operator"},"setDelegationWhitelist(address[],bool)":{"notice":"Update whitelist for the operator (batch)"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/IMultiAssetDelegation.sol":"IMultiAssetDelegation"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/interfaces/IMultiAssetDelegation.sol":{"keccak256":"0x20b3277270e2823f403dd14473e772c40e363b9a82cfaed8f2dd08fdade0c4fb","urls":["bzz-raw://efb6265f16d2a512ce819d61ce84630c161395157ef1a095455b437b4a15e513","dweb:/ipfs/QmWj2wAdScu3mc7BxGUBt1hQyQEpcWyBxS92kX5XuodnL3"],"license":"MIT"},"src/interfaces/IRewardsManager.sol":{"keccak256":"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9","urls":["bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5","dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k"],"license":"MIT"},"src/interfaces/IServiceFeeDistributor.sol":{"keccak256":"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a","urls":["bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3","dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"},"src/staking/DelegationErrors.sol":{"keccak256":"0x76926e780f34671c68ab5aff1973d337cbe6fc69d9366ee9daaf9fb00fc51c47","urls":["bzz-raw://7a3500d473c17e4ff1ad2a058be1713ca08ecd121858f63f50c9a0964b2fefb8","dweb:/ipfs/QmedZTSgjtZVPovjvNsKYFo2cx4RXY1yejyk9H73ZyjU2t"],"license":"MIT"},"src/staking/DelegationManagerLib.sol":{"keccak256":"0x24efc9fce4fb905ddd6d03de54098121bbdf7949673a81bc9acb4b5c83125fbd","urls":["bzz-raw://56af1504bb1374300c08519debaae3a18b3569be797d286b486560b15dd7756b","dweb:/ipfs/QmQDpJm2YgZ81o96hx7po2mBToDJmPhNDbqXe3DyZy48Tq"],"license":"MIT"},"src/staking/DelegationStorage.sol":{"keccak256":"0xdbe45e7fb5f2535ab49aafe8adec875b5af30a18123ab6301865e7ef6bd4d91e","urls":["bzz-raw://0a653dcaac885e24477a12b6409fb0ec93f13d5f1a51709c88aec8de826f776e","dweb:/ipfs/QmSZ1YEzpXbFPfXrFF3ujvgchgJteBsFnNw9S1YgUqPKQc"],"license":"MIT"},"src/staking/OperatorManager.sol":{"keccak256":"0xf362791e74d74757b67b7aaac34ac01a32c50b434c4a44182a613312d07752ea","urls":["bzz-raw://a2a3790af9bceae26e4368cadf2d6507025d9cacf4bb1bc827d338a03d502e4c","dweb:/ipfs/QmThzrdGJhXSixESvuJKaFncqw2gSqPmBVDdwNacdmSDA4"],"license":"MIT"},"src/staking/RewardsManager.sol":{"keccak256":"0x1bdae9f62162b9620ae8134c8e5cbb9d2724bb0c1168e7987b403a486702df21","urls":["bzz-raw://f7cd6bef2f368bd9c67c36ce8702ad7086222ec72f073dce2f27f068261dce57","dweb:/ipfs/Qmf93doWDecxbUVbKmm3SruYVEHCWm7ncVbrEhTUAFYshy"],"license":"MIT"},"src/staking/SlashingManager.sol":{"keccak256":"0x1bd0b3b1ad9555d8c6cbe6a6b1b05eb709f219984780816fa074f8053523cbc5","urls":["bzz-raw://6ea85d5d9052165faf4b58cb3eb81665d5f7292ccff74bc35658ebdcc7d9bff4","dweb:/ipfs/QmQD94GzYRmwWHGg6sM797MB3cmgSiVUV4237FiBNDNRiu"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file diff --git a/bindings/abi/ITangle.json b/bindings/abi/ITangle.json index c42b13d2..be2573ad 100644 --- a/bindings/abi/ITangle.json +++ b/bindings/abi/ITangle.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveService","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ApprovalParams","components":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"blsPopSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"teeCommitments","type":"tuple[]","internalType":"struct Types.TeeAttestationCommitment[]","components":[{"name":"backend","type":"uint8","internalType":"enum Types.TeeBackend"},{"name":"expectedMeasurement","type":"bytes32","internalType":"bytes32"},{"name":"nonceBinding","type":"bytes32","internalType":"bytes32"},{"name":"expiresAt","type":"uint64","internalType":"uint64"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscription","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscriptionBatch","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalBilled","type":"uint256","internalType":"uint256"},{"name":"billedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"blsPopMessage","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"blueprintCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"blueprintMasterRevision","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blueprintMetadata","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blueprintOperatorCount","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSources","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]}],"stateMutability":"view"},{"type":"function","name":"blueprintSupportedMemberships","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"memberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}],"stateMutability":"view"},{"type":"function","name":"canScheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"canExit","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"cancelExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsBatch","inputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBlueprint","inputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"outputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createServiceFromQuotes","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"deactivateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expireServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"extendServiceFromQuotes","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"extensionDuration","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"forceExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"forceRemoveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBillableServices","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"billable","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Blueprint","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintConfig","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintDefinition","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitConfig","components":[{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitRequest","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitRequest","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"scheduledAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"pending","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.ExitStatus"}],"stateMutability":"view"},{"type":"function","name":"getJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.JobCall","components":[{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"caller","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"resultCount","type":"uint32","internalType":"uint32"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"completed","type":"bool","internalType":"bool"},{"name":"isRFQ","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getJobEventRate","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedPrice","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlsPubkey","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorPreferences","components":[{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorPublicKey","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOperatorRegistration","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRegistration","components":[{"name":"registeredAt","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"},{"name":"online","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorTotalActiveServices","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Service","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"terminatedAt","type":"uint64","internalType":"uint64"},{"name":"lastPaymentAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"status","type":"uint8","internalType":"enum Types.ServiceStatus"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PaymentLib.ServiceEscrow","components":[{"name":"token","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"totalDeposited","type":"uint256","internalType":"uint256"},{"name":"totalReleased","type":"uint256","internalType":"uint256"},{"name":"__reserved0","type":"uint256","internalType":"uint256"},{"name":"subscriptionBaselineStake","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceOperator","components":[{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"joinedAt","type":"uint64","internalType":"uint64"},{"name":"leftAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceRequest","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"approvalCount","type":"uint32","internalType":"uint32"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"rejected","type":"bool","internalType":"bool"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"activated","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestResourceRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityCommitments","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceResourceCommitmentHash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityRequirements","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getTeeCommitmentRoot","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isOperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceActive","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinServiceWithCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leaveService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"preRegister","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rejectService","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestService","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithExposure","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"exposureBps","type":"uint16[]","internalType":"uint16[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithSecurity","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"securityRequirements","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"rewardTokens","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"scheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requirements","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setJobEventRates","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndexes","type":"uint8[]","internalType":"uint8[]"},{"name":"rates","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitJob","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitJobFromQuote","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedJobQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.JobQuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"uint8"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"result","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitResults","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callIds","type":"uint64[]","internalType":"uint64[]"},{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"teeNonceFor","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"terminateService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"terminateServiceForNonPayment","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"manager","type":"address","indexed":false,"internalType":"address"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BlueprintDeactivated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintResourceRequirementsSet","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintTransferred","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlueprintUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"JobCompleted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"JobResultSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmittedFromQuote","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"quotedOperators","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"totalPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OperatorJoinedService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"exposureBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"OperatorLeftService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorPreferencesUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRewardAccrued","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnregistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentDistributed","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"grossAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"developerRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"developerAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"operatorPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"stakerPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RewardsClaimed","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceActivated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceApproved","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRejected","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRequested","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceRequestedWithSecurity","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceTerminated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"ServiceTerminatedForNonPayment","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"triggeredBy","type":"address","indexed":true,"internalType":"address"},{"name":"dueAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"graceEndsAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"requiredAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"escrowBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionBilled","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"period","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPermittedCaller(uint64,address)":"815d6a26","approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":"6a46006b","billSubscription(uint64)":"cf3806c6","billSubscriptionBatch(uint64[])":"da232ded","blsPopMessage(address,uint256[4])":"433615a2","blueprintCount()":"c602d4fa","blueprintMasterRevision(uint64)":"ff14a940","blueprintMetadata(uint64)":"430ce118","blueprintOperatorCount(uint64)":"8d3f65be","blueprintSources(uint64)":"335ea071","blueprintSupportedMemberships(uint64)":"df57f527","canScheduleExit(uint64,address)":"27b37565","cancelExit(uint64)":"cbd8da63","claimRewards()":"372500ab","claimRewards(address)":"ef5cfb8c","claimRewardsAll()":"62b83dda","claimRewardsBatch(address[])":"8602bba0","createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":"3022f66c","createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":"458a69a0","deactivateBlueprint(uint64)":"449bb849","executeExit(uint64)":"b7c18207","expireServiceRequest(uint64)":"e07a86bd","extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":"ebb7d84b","forceExit(uint64,address)":"aea65925","forceRemoveOperator(uint64,address)":"684d89f5","fundService(uint64,uint256)":"970e08fe","getBillableServices(uint64[])":"93f3ddaf","getBlueprint(uint64)":"b7696dbb","getBlueprintConfig(uint64)":"563a89f9","getBlueprintDefinition(uint64)":"6171fea8","getBlueprintResourceRequirements(uint64)":"349e961a","getExitConfig(uint64)":"d2672ed4","getExitRequest(uint64,address)":"9dcc5a93","getExitStatus(uint64,address)":"427ffde9","getJobCall(uint64,uint64)":"a672bc0a","getJobEventRate(uint64,uint8)":"f9333bb1","getJobQuotedOperators(uint64,uint64)":"038dda6c","getJobQuotedPrice(uint64,uint64,address)":"fca78d2d","getOperatorBlsPubkey(uint64,address)":"6ee5bcff","getOperatorPreferences(uint64,address)":"f32f9673","getOperatorPublicKey(uint64,address)":"180cae67","getOperatorRegistration(uint64,address)":"6bda42f3","getOperatorTotalActiveServices(address)":"0ded8bf9","getService(uint64)":"3dc0d5fe","getServiceEscrow(uint64)":"eb8c3bcd","getServiceOperator(uint64,address)":"842524bb","getServiceOperators(uint64)":"bb207f1f","getServiceRequest(uint64)":"5f9b4dfa","getServiceRequestResourceRequirements(uint64)":"a305fb44","getServiceRequestSecurityCommitments(uint64,address)":"05bb3aa3","getServiceRequestSecurityRequirements(uint64)":"e5f797f2","getServiceResourceCommitmentHash(uint64,address)":"e4c0b756","getServiceSecurityCommitments(uint64,address)":"a0b0c62a","getServiceSecurityRequirements(uint64)":"d8644e52","getTeeCommitmentRoot(uint64,address)":"a7d282f4","isOperatorRegistered(uint64,address)":"64462595","isPermittedCaller(uint64,address)":"2ec2bd03","isServiceActive(uint64)":"2f46279f","isServiceOperator(uint64,address)":"a595b21e","joinService(uint64,uint16)":"2b9da71a","joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":"d563701f","leaveService(uint64)":"6778afbc","pendingRewards(address)":"31d7a262","pendingRewards(address,address)":"80ac8228","preRegister(uint64)":"18c68017","registerOperator(uint64,bytes,string)":"d4e1ab7c","registerOperator(uint64,bytes,string,bytes)":"7324e916","rejectService(uint64)":"6d8b88c3","removePermittedCaller(uint64,address)":"5f359924","requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":"c841e26e","requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":"327d6898","requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":"4c540ec1","rewardTokens(address)":"f5ab16cc","scheduleExit(uint64)":"b607ba59","serviceCount()":"06237526","setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":"e830bff6","setJobEventRates(uint64,uint8[],uint256[])":"c1d71304","submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":"c325ae12","submitJob(uint64,uint8,bytes)":"3413e8ee","submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":"52ada2be","submitResult(uint64,uint64,bytes)":"2d07e655","submitResults(uint64,uint64[],bytes[])":"aacdba9f","teeNonceFor(uint64)":"365e1439","terminateService(uint64)":"5b71c934","terminateServiceForNonPayment(uint64)":"13d36a66","transferBlueprint(uint64,address)":"8a4cf763","unregisterOperator(uint64)":"0afd3738","updateBlueprint(uint64,string,bytes32)":"c77f959b","updateOperatorPreferences(uint64,bytes,string)":"909eac24","withdrawRemainingEscrow(uint64)":"9dfb6100"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"BlueprintResourceRequirementsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"BlueprintTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"JobCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"JobResultSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"quotedOperators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmittedFromQuote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"OperatorJoinedService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeftService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorPreferencesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorRewardAccrued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"grossAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"developerRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"developerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorPoolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakerPoolAmount\",\"type\":\"uint256\"}],\"name\":\"PaymentDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequestedWithSecurity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"ServiceTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"dueAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"graceEndsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"escrowBalance\",\"type\":\"uint256\"}],\"name\":\"ServiceTerminatedForNonPayment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"}],\"name\":\"SubscriptionBilled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"addPermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"},{\"internalType\":\"uint256[2]\",\"name\":\"blsPopSignature\",\"type\":\"uint256[2]\"},{\"components\":[{\"internalType\":\"enum Types.TeeBackend\",\"name\":\"backend\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"expectedMeasurement\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"nonceBinding\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expiresAt\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.TeeAttestationCommitment[]\",\"name\":\"teeCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.ApprovalParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"approveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"billSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"billSubscriptionBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBilled\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"billedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"blsPopMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blueprintCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMasterRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSources\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSupportedMemberships\",\"outputs\":[{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"memberships\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canScheduleExit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canExit\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"cancelExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardsAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"claimRewardsBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"name\":\"createBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"createServiceFromQuotes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"deactivateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"executeExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"expireServiceRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"extensionDuration\",\"type\":\"uint64\"}],\"name\":\"extendServiceFromQuotes\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceRemoveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundService\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"getBillableServices\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"billable\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprint\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.Blueprint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintDefinition\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"scheduledAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitStatus\",\"outputs\":[{\"internalType\":\"enum Types.ExitStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobCall\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultCount\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRFQ\",\"type\":\"bool\"}],\"internalType\":\"struct Types.JobCall\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getJobEventRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobQuotedOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getJobQuotedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlsPubkey\",\"outputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPreferences\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"internalType\":\"struct Types.OperatorPreferences\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRegistration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"registeredAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"updatedAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"online\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorRegistration\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorTotalActiveServices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"terminatedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastPaymentAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ServiceStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceEscrow\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDeposited\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__reserved0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionBaselineStake\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentLib.ServiceEscrow\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"joinedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leftAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"approvalCount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"rejected\",\"type\":\"bool\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"activated\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceRequestSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceResourceCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getTeeCommitmentRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"isServiceActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isServiceOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"joinService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"}],\"name\":\"joinServiceWithCommitments\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"leaveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"preRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"rejectService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"removePermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"exposureBps\",\"type\":\"uint16[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithExposure\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"securityRequirements\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithSecurity\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"scheduleExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"requirements\",\"type\":\"tuple[]\"}],\"name\":\"setBlueprintResourceRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8[]\",\"name\":\"jobIndexes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rates\",\"type\":\"uint256[]\"}],\"name\":\"setJobEventRates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"submitAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"submitJob\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.JobQuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedJobQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"}],\"name\":\"submitJobFromQuote\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"submitResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64[]\",\"name\":\"callIds\",\"type\":\"uint64[]\"},{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"name\":\"submitResults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"teeNonceFor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateServiceForNonPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"updateOperatorPreferences\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"withdrawRemainingEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Consolidates all sub-interfaces into a single entry point. Inherits from focused sub-interfaces for modularity.\",\"events\":{\"JobCompleted(uint64,uint64)\":{\"details\":\"Derive resultCount from getJobCall(serviceId, callId).resultCount\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The updated ECDSA public key (may be empty if unchanged)\",\"operator\":\"The operator address\",\"rpcAddress\":\"The updated RPC endpoint (may be empty if unchanged)\"}},\"OperatorRegistered(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity\",\"operator\":\"The operator address (wallet)\",\"rpcAddress\":\"The operator's RPC endpoint\"}}},\"kind\":\"dev\",\"methods\":{\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"details\":\"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in \\u2014 protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile.\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"params\":{\"definition\":\"Fully populated blueprint definition struct\"},\"returns\":{\"blueprintId\":\"The new blueprint ID\"}},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"details\":\"No approval flow needed - operators have pre-committed via signatures\",\"params\":{\"blueprintId\":\"The blueprint to use\",\"config\":\"Service configuration\",\"permittedCallers\":\"Addresses allowed to call jobs\",\"quotes\":\"Array of signed quotes from operators\",\"ttl\":\"Service time-to-live (must match quotes)\"}},\"expireServiceRequest(uint64)\":{\"details\":\"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window.\"},\"forceRemoveOperator(uint64,address)\":{\"params\":{\"operator\":\"The operator to remove\",\"serviceId\":\"The service ID\"}},\"getOperatorBlsPubkey(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"blsPubkey\":\"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered\"}},\"getOperatorPublicKey(uint64,address)\":{\"details\":\"Returns the key used for signing/verifying gossip messages\"},\"getOperatorTotalActiveServices(address)\":{\"params\":{\"operator\":\"The operator address\"},\"returns\":{\"count\":\"Total number of active services the operator is part of\"}},\"getServiceResourceCommitmentHash(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)\"}},\"getTeeCommitmentRoot(uint64,address)\":{\"details\":\"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`.\"},\"registerOperator(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to register for\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)\",\"rpcAddress\":\"The operator's RPC endpoint URL\"}},\"registerOperator(uint64,bytes,string,bytes)\":{\"params\":{\"registrationInputs\":\"Encoded payload validated by blueprint's schema\"}},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"details\":\"Each operator must provide security commitments matching these requirements when approving\"},\"rewardTokens(address)\":{\"details\":\"Convenience view; mappings are not enumerable.\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Only valid for jobs where requiresAggregation returns true\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key [x0, x1, y0, y1]\",\"aggregatedSignature\":\"The aggregated BLS signature [x, y]\",\"callId\":\"The job call ID\",\"output\":\"The aggregated output data\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap indicating which operators signed (bit i = operator i in service)\"}},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"params\":{\"inputs\":\"Encoded job parameters\",\"jobIndex\":\"The job type index\",\"quotes\":\"Array of signed quotes from operators\",\"serviceId\":\"The service ID\"}},\"updateOperatorPreferences(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to update preferences for\",\"ecdsaPublicKey\":\"New ECDSA public key (pass empty bytes to keep unchanged)\",\"rpcAddress\":\"New RPC endpoint (pass empty string to keep unchanged)\"}}},\"title\":\"ITangle\",\"version\":1},\"userdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"notice\":\"Emitted when a job reaches its required result threshold\"},\"JobSubmittedFromQuote(uint64,uint64,uint8,address,address[],uint256,bytes)\":{\"notice\":\"Emitted when a job is submitted via RFQ with signed operator quotes\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator updates their preferences\"},\"OperatorRegistered(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator registers for a blueprint\"}},\"kind\":\"user\",\"methods\":{\"addPermittedCaller(uint64,address)\":{\"notice\":\"Add a permitted caller to a service\"},\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"notice\":\"Approve a service request as one of its operators.\"},\"billSubscription(uint64)\":{\"notice\":\"Bill a subscription service for the current period\"},\"billSubscriptionBatch(uint64[])\":{\"notice\":\"Bill multiple subscription services in one call\"},\"blsPopMessage(address,uint256[4])\":{\"notice\":\"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator.\"},\"blueprintCount()\":{\"notice\":\"Get current blueprint count\"},\"blueprintMasterRevision(uint64)\":{\"notice\":\"Get master blueprint revision\"},\"blueprintMetadata(uint64)\":{\"notice\":\"Get blueprint metadata and URI\"},\"blueprintOperatorCount(uint64)\":{\"notice\":\"Get number of operators for a blueprint\"},\"blueprintSources(uint64)\":{\"notice\":\"Get blueprint sources\"},\"blueprintSupportedMemberships(uint64)\":{\"notice\":\"Get blueprint supported membership models\"},\"canScheduleExit(uint64,address)\":{\"notice\":\"Check if operator can schedule exit now\"},\"cancelExit(uint64)\":{\"notice\":\"Cancel a scheduled exit before execution\"},\"claimRewards()\":{\"notice\":\"Claim accumulated rewards (native token)\"},\"claimRewards(address)\":{\"notice\":\"Claim accumulated rewards for a specific token\"},\"claimRewardsAll()\":{\"notice\":\"Claim accumulated rewards for all pending tokens\"},\"claimRewardsBatch(address[])\":{\"notice\":\"Claim accumulated rewards for multiple tokens\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"notice\":\"Create a blueprint from an encoded definition that includes schemas and job metadata\"},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"notice\":\"Create a service instantly using pre-signed operator quotes\"},\"deactivateBlueprint(uint64)\":{\"notice\":\"Deactivate a blueprint\"},\"executeExit(uint64)\":{\"notice\":\"Execute a scheduled exit after the queue delay\"},\"expireServiceRequest(uint64)\":{\"notice\":\"Permissionlessly expire a stale service request and refund the requester.\"},\"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)\":{\"notice\":\"Extend a service using pre-signed operator quotes\"},\"forceExit(uint64,address)\":{\"notice\":\"Force exit an operator from a service (if permitted by config)\"},\"forceRemoveOperator(uint64,address)\":{\"notice\":\"Force remove an operator from a service (blueprint manager only)\"},\"fundService(uint64,uint256)\":{\"notice\":\"Fund a service escrow balance\"},\"getBillableServices(uint64[])\":{\"notice\":\"Get billable services from a list of candidates\"},\"getBlueprint(uint64)\":{\"notice\":\"Get blueprint info\"},\"getBlueprintConfig(uint64)\":{\"notice\":\"Get blueprint configuration\"},\"getBlueprintDefinition(uint64)\":{\"notice\":\"Get the original blueprint definition\"},\"getBlueprintResourceRequirements(uint64)\":{\"notice\":\"Get default resource requirements for a blueprint\"},\"getExitConfig(uint64)\":{\"notice\":\"Get exit configuration for a service\"},\"getExitRequest(uint64,address)\":{\"notice\":\"Get exit request for an operator\"},\"getExitStatus(uint64,address)\":{\"notice\":\"Get exit status for an operator\"},\"getJobCall(uint64,uint64)\":{\"notice\":\"Get job call info\"},\"getJobEventRate(uint64,uint8)\":{\"notice\":\"Get the effective event rate for a specific job type\"},\"getJobQuotedOperators(uint64,uint64)\":{\"notice\":\"Get the quoted operators for an RFQ job\"},\"getJobQuotedPrice(uint64,uint64,address)\":{\"notice\":\"Get a quoted operator's price for an RFQ job\"},\"getOperatorBlsPubkey(uint64,address)\":{\"notice\":\"Get operator's BLS public key for a service\"},\"getOperatorPreferences(uint64,address)\":{\"notice\":\"Get operator preferences for a blueprint (includes ECDSA public key)\"},\"getOperatorPublicKey(uint64,address)\":{\"notice\":\"Get operator's ECDSA public key for gossip network identity\"},\"getOperatorRegistration(uint64,address)\":{\"notice\":\"Get operator registration for a blueprint\"},\"getOperatorTotalActiveServices(address)\":{\"notice\":\"Get total count of active services for an operator across all blueprints\"},\"getService(uint64)\":{\"notice\":\"Get service info\"},\"getServiceEscrow(uint64)\":{\"notice\":\"Get service escrow details\"},\"getServiceOperator(uint64,address)\":{\"notice\":\"Get operator info for a service\"},\"getServiceOperators(uint64)\":{\"notice\":\"Get the list of operators for a service\"},\"getServiceRequest(uint64)\":{\"notice\":\"Get service request\"},\"getServiceRequestResourceRequirements(uint64)\":{\"notice\":\"Get resource requirements for a service request\"},\"getServiceRequestSecurityCommitments(uint64,address)\":{\"notice\":\"Get security commitments for a service request by operator\"},\"getServiceRequestSecurityRequirements(uint64)\":{\"notice\":\"Get security requirements for a service request\"},\"getServiceResourceCommitmentHash(uint64,address)\":{\"notice\":\"Get the resource commitment hash for an operator in a service\"},\"getServiceSecurityCommitments(uint64,address)\":{\"notice\":\"Get persisted security commitments for an active service by operator\"},\"getServiceSecurityRequirements(uint64)\":{\"notice\":\"Get persisted security requirements for an active service\"},\"getTeeCommitmentRoot(uint64,address)\":{\"notice\":\"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service.\"},\"isOperatorRegistered(uint64,address)\":{\"notice\":\"Check if operator is registered for a blueprint\"},\"isPermittedCaller(uint64,address)\":{\"notice\":\"Check if address can call jobs on service\"},\"isServiceActive(uint64)\":{\"notice\":\"Check if service is active\"},\"isServiceOperator(uint64,address)\":{\"notice\":\"Check if address is operator in service\"},\"joinService(uint64,uint16)\":{\"notice\":\"Join an active service (Dynamic membership only)\"},\"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])\":{\"notice\":\"Join an active service with per-asset security commitments (Dynamic membership only)\"},\"leaveService(uint64)\":{\"notice\":\"Leave an active service (Dynamic membership only)\"},\"pendingRewards(address)\":{\"notice\":\"Get pending rewards for an account (native token)\"},\"pendingRewards(address,address)\":{\"notice\":\"Get pending rewards for an account and token\"},\"preRegister(uint64)\":{\"notice\":\"Signal intent to register for a blueprint\"},\"registerOperator(uint64,bytes,string)\":{\"notice\":\"Register as operator for a blueprint\"},\"registerOperator(uint64,bytes,string,bytes)\":{\"notice\":\"Register as operator providing blueprint-specific registration inputs\"},\"rejectService(uint64)\":{\"notice\":\"Reject a service request (as operator)\"},\"removePermittedCaller(uint64,address)\":{\"notice\":\"Remove a permitted caller from a service\"},\"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a new service\"},\"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with explicit exposure commitments\"},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with multi-asset security requirements\"},\"rewardTokens(address)\":{\"notice\":\"List tokens with non-zero pending rewards for an account\"},\"scheduleExit(uint64)\":{\"notice\":\"Schedule exit from an active service when exit queues are enabled\"},\"serviceCount()\":{\"notice\":\"Get current service count\"},\"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])\":{\"notice\":\"Set default resource requirements for a blueprint (owner only)\"},\"setJobEventRates(uint64,uint8[],uint256[])\":{\"notice\":\"Set event rate overrides for one or more job types in a blueprint\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Submit an aggregated BLS result for a job\"},\"submitJob(uint64,uint8,bytes)\":{\"notice\":\"Submit a job to a service\"},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"notice\":\"Submit a job using signed operator price quotes (RFQ)\"},\"submitResult(uint64,uint64,bytes)\":{\"notice\":\"Submit a job result (as operator)\"},\"submitResults(uint64,uint64[],bytes[])\":{\"notice\":\"Submit multiple results in one transaction\"},\"teeNonceFor(uint64)\":{\"notice\":\"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request \\u2014 it eliminates cross-request attestation replay at approval time.\"},\"terminateService(uint64)\":{\"notice\":\"Terminate a service (as owner)\"},\"terminateServiceForNonPayment(uint64)\":{\"notice\":\"Permissionlessly terminate an unpaid subscription after grace period\"},\"transferBlueprint(uint64,address)\":{\"notice\":\"Transfer blueprint ownership\"},\"unregisterOperator(uint64)\":{\"notice\":\"Unregister from a blueprint\"},\"updateBlueprint(uint64,string,bytes32)\":{\"notice\":\"Update blueprint metadata\"},\"updateOperatorPreferences(uint64,bytes,string)\":{\"notice\":\"Update operator preferences for a blueprint\"},\"withdrawRemainingEscrow(uint64)\":{\"notice\":\"Withdraw remaining escrow after termination\"}},\"notice\":\"Core interface for Tangle Protocol v2\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangle.sol\":\"ITangle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/interfaces/ITangle.sol\":{\"keccak256\":\"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd\",\"dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ\"]},\"src/interfaces/ITangleBlueprints.sol\":{\"keccak256\":\"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798\",\"dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF\"]},\"src/interfaces/ITangleJobs.sol\":{\"keccak256\":\"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47\",\"dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd\"]},\"src/interfaces/ITangleOperators.sol\":{\"keccak256\":\"0x02f071be69aa0d19e5d8e2f46d7eb95f31e2b6a4801700fd5b2e6728d4940223\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4581cf0c4f6ce041ca72dd65f55f7507b9dd548830c548a36adaba950cfa165\",\"dweb:/ipfs/QmWr2cLcKXZFkDpaFm6CbHRcdbzBfpqaDTQwyYAR9Qc1ve\"]},\"src/interfaces/ITangleRewards.sol\":{\"keccak256\":\"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5\",\"dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR\"]},\"src/interfaces/ITangleServices.sol\":{\"keccak256\":\"0xcd35629b25a9847d724bddc21486da34d8c44b0d00797b64ae1214da40e61cd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6f9e1b3213fe403193fc265332a51c18682ec5ccd91afae6686812dff2f5e0\",\"dweb:/ipfs/QmSCeKYPezdMFymA2FeKZNjxFiDNj8UW8wj1p1WmbZ227E\"]},\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c\",\"dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622\",\"dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8\"]},\"src/libraries/PaymentLib.sol\":{\"keccak256\":\"0xcc483845f5c93b5302d30339cdff31a9dd4cced3bdb7c2fe41cdf34ac935c3eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adf3d00787ac1923d38bce0ca1f4a091af0000afe3929b01adb5d1f0395895e6\",\"dweb:/ipfs/QmZuP4gYXpbsqn6zFXB2D7HSo9FZrDe21b1YAaUEQqHwnF\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"manager","type":"address","indexed":false},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintCreated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"BlueprintDeactivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"BlueprintResourceRequirementsSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"BlueprintTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true}],"type":"event","name":"JobCompleted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false}],"type":"event","name":"JobResultSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":false},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"address[]","name":"quotedOperators","type":"address[]","indexed":false},{"internalType":"uint256","name":"totalPrice","type":"uint256","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmittedFromQuote","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint16","name":"exposureBps","type":"uint16","indexed":false}],"type":"event","name":"OperatorJoinedService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeftService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorPreferencesUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorRewardAccrued","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorUnregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"grossAmount","type":"uint256","indexed":false},{"internalType":"address","name":"developerRecipient","type":"address","indexed":false},{"internalType":"uint256","name":"developerAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"protocolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"operatorPoolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"stakerPoolAmount","type":"uint256","indexed":false}],"type":"event","name":"PaymentDistributed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardsClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceActivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceApproved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceRejected","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequestedWithSecurity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true}],"type":"event","name":"ServiceTerminated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"triggeredBy","type":"address","indexed":true},{"internalType":"uint64","name":"dueAt","type":"uint64","indexed":false},{"internalType":"uint64","name":"graceEndsAt","type":"uint64","indexed":false},{"internalType":"uint256","name":"requiredAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"escrowBalance","type":"uint256","indexed":false}],"type":"event","name":"ServiceTerminatedForNonPayment","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"period","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionBilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPermittedCaller"},{"inputs":[{"internalType":"struct Types.ApprovalParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"},{"internalType":"uint256[2]","name":"blsPopSignature","type":"uint256[2]"},{"internalType":"struct Types.TeeAttestationCommitment[]","name":"teeCommitments","type":"tuple[]","components":[{"internalType":"enum Types.TeeBackend","name":"backend","type":"uint8"},{"internalType":"bytes32","name":"expectedMeasurement","type":"bytes32"},{"internalType":"bytes32","name":"nonceBinding","type":"bytes32"},{"internalType":"uint64","name":"expiresAt","type":"uint64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"approveService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"billSubscription"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"billSubscriptionBatch","outputs":[{"internalType":"uint256","name":"totalBilled","type":"uint256"},{"internalType":"uint256","name":"billedCount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}],"stateMutability":"view","type":"function","name":"blsPopMessage","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blueprintCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMasterRevision","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMetadata","outputs":[{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSources","outputs":[{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSupportedMemberships","outputs":[{"internalType":"enum Types.MembershipModel[]","name":"memberships","type":"uint8[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canScheduleExit","outputs":[{"internalType":"bool","name":"canExit","type":"bool"},{"internalType":"string","name":"reason","type":"string"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelExit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardsAll"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewardsBatch"},{"inputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createBlueprint","outputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"payable","type":"function","name":"createServiceFromQuotes","outputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deactivateBlueprint"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeExit"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expireServiceRequest"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"uint64","name":"extensionDuration","type":"uint64"}],"stateMutability":"payable","type":"function","name":"extendServiceFromQuotes"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceExit"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceRemoveOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundService"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"getBillableServices","outputs":[{"internalType":"uint64[]","name":"billable","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprint","outputs":[{"internalType":"struct Types.Blueprint","name":"","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintConfig","outputs":[{"internalType":"struct Types.BlueprintConfig","name":"","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintDefinition","outputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"struct Types.ExitConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitRequest","outputs":[{"internalType":"struct Types.ExitRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"scheduledAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"bool","name":"pending","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitStatus","outputs":[{"internalType":"enum Types.ExitStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobCall","outputs":[{"internalType":"struct Types.JobCall","name":"","type":"tuple","components":[{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"resultCount","type":"uint32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"bool","name":"isRFQ","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getJobEventRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobQuotedOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getJobQuotedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlsPubkey","outputs":[{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPreferences","outputs":[{"internalType":"struct Types.OperatorPreferences","name":"","type":"tuple","components":[{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRegistration","outputs":[{"internalType":"struct Types.OperatorRegistration","name":"","type":"tuple","components":[{"internalType":"uint64","name":"registeredAt","type":"uint64"},{"internalType":"uint64","name":"updatedAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"online","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorTotalActiveServices","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getService","outputs":[{"internalType":"struct Types.Service","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint64","name":"terminatedAt","type":"uint64"},{"internalType":"uint64","name":"lastPaymentAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"enum Types.ServiceStatus","name":"status","type":"uint8"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceEscrow","outputs":[{"internalType":"struct PaymentLib.ServiceEscrow","name":"","type":"tuple","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalReleased","type":"uint256"},{"internalType":"uint256","name":"__reserved0","type":"uint256"},{"internalType":"uint256","name":"subscriptionBaselineStake","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceOperator","outputs":[{"internalType":"struct Types.ServiceOperator","name":"","type":"tuple","components":[{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"uint64","name":"joinedAt","type":"uint64"},{"internalType":"uint64","name":"leftAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequest","outputs":[{"internalType":"struct Types.ServiceRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"approvalCount","type":"uint32"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"bool","name":"rejected","type":"bool"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"bool","name":"activated","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceResourceCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getTeeCommitmentRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"isServiceActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isServiceOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"joinService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"joinServiceWithCommitments"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"leaveService"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"preRegister"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"rejectService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePermittedCaller"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestService","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint16[]","name":"exposureBps","type":"uint16[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithExposure","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"struct Types.AssetSecurityRequirement[]","name":"securityRequirements","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithSecurity","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"rewardTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"scheduleExit"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.ResourceCommitment[]","name":"requirements","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"setBlueprintResourceRequirements"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8[]","name":"jobIndexes","type":"uint8[]"},{"internalType":"uint256[]","name":"rates","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setJobEventRates"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"submitAggregatedResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"submitJob","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"struct Types.SignedJobQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.JobQuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"uint8","name":"confidentiality","type":"uint8"}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]}],"stateMutability":"payable","type":"function","name":"submitJobFromQuote","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64[]","name":"callIds","type":"uint64[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitResults"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"teeNonceFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateServiceForNonPayment"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorPreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrow"}],"devdoc":{"kind":"dev","methods":{"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"details":"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in — protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile."},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"params":{"definition":"Fully populated blueprint definition struct"},"returns":{"blueprintId":"The new blueprint ID"}},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"details":"No approval flow needed - operators have pre-committed via signatures","params":{"blueprintId":"The blueprint to use","config":"Service configuration","permittedCallers":"Addresses allowed to call jobs","quotes":"Array of signed quotes from operators","ttl":"Service time-to-live (must match quotes)"}},"expireServiceRequest(uint64)":{"details":"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window."},"forceRemoveOperator(uint64,address)":{"params":{"operator":"The operator to remove","serviceId":"The service ID"}},"getOperatorBlsPubkey(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"blsPubkey":"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered"}},"getOperatorPublicKey(uint64,address)":{"details":"Returns the key used for signing/verifying gossip messages"},"getOperatorTotalActiveServices(address)":{"params":{"operator":"The operator address"},"returns":{"count":"Total number of active services the operator is part of"}},"getServiceResourceCommitmentHash(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)"}},"getTeeCommitmentRoot(uint64,address)":{"details":"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`."},"registerOperator(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to register for","ecdsaPublicKey":"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)","rpcAddress":"The operator's RPC endpoint URL"}},"registerOperator(uint64,bytes,string,bytes)":{"params":{"registrationInputs":"Encoded payload validated by blueprint's schema"}},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"details":"Each operator must provide security commitments matching these requirements when approving"},"rewardTokens(address)":{"details":"Convenience view; mappings are not enumerable."},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Only valid for jobs where requiresAggregation returns true","params":{"aggregatedPubkey":"The aggregated public key [x0, x1, y0, y1]","aggregatedSignature":"The aggregated BLS signature [x, y]","callId":"The job call ID","output":"The aggregated output data","serviceId":"The service ID","signerBitmap":"Bitmap indicating which operators signed (bit i = operator i in service)"}},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"params":{"inputs":"Encoded job parameters","jobIndex":"The job type index","quotes":"Array of signed quotes from operators","serviceId":"The service ID"}},"updateOperatorPreferences(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to update preferences for","ecdsaPublicKey":"New ECDSA public key (pass empty bytes to keep unchanged)","rpcAddress":"New RPC endpoint (pass empty string to keep unchanged)"}}},"version":1},"userdoc":{"kind":"user","methods":{"addPermittedCaller(uint64,address)":{"notice":"Add a permitted caller to a service"},"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"notice":"Approve a service request as one of its operators."},"billSubscription(uint64)":{"notice":"Bill a subscription service for the current period"},"billSubscriptionBatch(uint64[])":{"notice":"Bill multiple subscription services in one call"},"blsPopMessage(address,uint256[4])":{"notice":"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator."},"blueprintCount()":{"notice":"Get current blueprint count"},"blueprintMasterRevision(uint64)":{"notice":"Get master blueprint revision"},"blueprintMetadata(uint64)":{"notice":"Get blueprint metadata and URI"},"blueprintOperatorCount(uint64)":{"notice":"Get number of operators for a blueprint"},"blueprintSources(uint64)":{"notice":"Get blueprint sources"},"blueprintSupportedMemberships(uint64)":{"notice":"Get blueprint supported membership models"},"canScheduleExit(uint64,address)":{"notice":"Check if operator can schedule exit now"},"cancelExit(uint64)":{"notice":"Cancel a scheduled exit before execution"},"claimRewards()":{"notice":"Claim accumulated rewards (native token)"},"claimRewards(address)":{"notice":"Claim accumulated rewards for a specific token"},"claimRewardsAll()":{"notice":"Claim accumulated rewards for all pending tokens"},"claimRewardsBatch(address[])":{"notice":"Claim accumulated rewards for multiple tokens"},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"notice":"Create a blueprint from an encoded definition that includes schemas and job metadata"},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"notice":"Create a service instantly using pre-signed operator quotes"},"deactivateBlueprint(uint64)":{"notice":"Deactivate a blueprint"},"executeExit(uint64)":{"notice":"Execute a scheduled exit after the queue delay"},"expireServiceRequest(uint64)":{"notice":"Permissionlessly expire a stale service request and refund the requester."},"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":{"notice":"Extend a service using pre-signed operator quotes"},"forceExit(uint64,address)":{"notice":"Force exit an operator from a service (if permitted by config)"},"forceRemoveOperator(uint64,address)":{"notice":"Force remove an operator from a service (blueprint manager only)"},"fundService(uint64,uint256)":{"notice":"Fund a service escrow balance"},"getBillableServices(uint64[])":{"notice":"Get billable services from a list of candidates"},"getBlueprint(uint64)":{"notice":"Get blueprint info"},"getBlueprintConfig(uint64)":{"notice":"Get blueprint configuration"},"getBlueprintDefinition(uint64)":{"notice":"Get the original blueprint definition"},"getBlueprintResourceRequirements(uint64)":{"notice":"Get default resource requirements for a blueprint"},"getExitConfig(uint64)":{"notice":"Get exit configuration for a service"},"getExitRequest(uint64,address)":{"notice":"Get exit request for an operator"},"getExitStatus(uint64,address)":{"notice":"Get exit status for an operator"},"getJobCall(uint64,uint64)":{"notice":"Get job call info"},"getJobEventRate(uint64,uint8)":{"notice":"Get the effective event rate for a specific job type"},"getJobQuotedOperators(uint64,uint64)":{"notice":"Get the quoted operators for an RFQ job"},"getJobQuotedPrice(uint64,uint64,address)":{"notice":"Get a quoted operator's price for an RFQ job"},"getOperatorBlsPubkey(uint64,address)":{"notice":"Get operator's BLS public key for a service"},"getOperatorPreferences(uint64,address)":{"notice":"Get operator preferences for a blueprint (includes ECDSA public key)"},"getOperatorPublicKey(uint64,address)":{"notice":"Get operator's ECDSA public key for gossip network identity"},"getOperatorRegistration(uint64,address)":{"notice":"Get operator registration for a blueprint"},"getOperatorTotalActiveServices(address)":{"notice":"Get total count of active services for an operator across all blueprints"},"getService(uint64)":{"notice":"Get service info"},"getServiceEscrow(uint64)":{"notice":"Get service escrow details"},"getServiceOperator(uint64,address)":{"notice":"Get operator info for a service"},"getServiceOperators(uint64)":{"notice":"Get the list of operators for a service"},"getServiceRequest(uint64)":{"notice":"Get service request"},"getServiceRequestResourceRequirements(uint64)":{"notice":"Get resource requirements for a service request"},"getServiceRequestSecurityCommitments(uint64,address)":{"notice":"Get security commitments for a service request by operator"},"getServiceRequestSecurityRequirements(uint64)":{"notice":"Get security requirements for a service request"},"getServiceResourceCommitmentHash(uint64,address)":{"notice":"Get the resource commitment hash for an operator in a service"},"getServiceSecurityCommitments(uint64,address)":{"notice":"Get persisted security commitments for an active service by operator"},"getServiceSecurityRequirements(uint64)":{"notice":"Get persisted security requirements for an active service"},"getTeeCommitmentRoot(uint64,address)":{"notice":"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service."},"isOperatorRegistered(uint64,address)":{"notice":"Check if operator is registered for a blueprint"},"isPermittedCaller(uint64,address)":{"notice":"Check if address can call jobs on service"},"isServiceActive(uint64)":{"notice":"Check if service is active"},"isServiceOperator(uint64,address)":{"notice":"Check if address is operator in service"},"joinService(uint64,uint16)":{"notice":"Join an active service (Dynamic membership only)"},"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":{"notice":"Join an active service with per-asset security commitments (Dynamic membership only)"},"leaveService(uint64)":{"notice":"Leave an active service (Dynamic membership only)"},"pendingRewards(address)":{"notice":"Get pending rewards for an account (native token)"},"pendingRewards(address,address)":{"notice":"Get pending rewards for an account and token"},"preRegister(uint64)":{"notice":"Signal intent to register for a blueprint"},"registerOperator(uint64,bytes,string)":{"notice":"Register as operator for a blueprint"},"registerOperator(uint64,bytes,string,bytes)":{"notice":"Register as operator providing blueprint-specific registration inputs"},"rejectService(uint64)":{"notice":"Reject a service request (as operator)"},"removePermittedCaller(uint64,address)":{"notice":"Remove a permitted caller from a service"},"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a new service"},"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with explicit exposure commitments"},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with multi-asset security requirements"},"rewardTokens(address)":{"notice":"List tokens with non-zero pending rewards for an account"},"scheduleExit(uint64)":{"notice":"Schedule exit from an active service when exit queues are enabled"},"serviceCount()":{"notice":"Get current service count"},"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":{"notice":"Set default resource requirements for a blueprint (owner only)"},"setJobEventRates(uint64,uint8[],uint256[])":{"notice":"Set event rate overrides for one or more job types in a blueprint"},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Submit an aggregated BLS result for a job"},"submitJob(uint64,uint8,bytes)":{"notice":"Submit a job to a service"},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"notice":"Submit a job using signed operator price quotes (RFQ)"},"submitResult(uint64,uint64,bytes)":{"notice":"Submit a job result (as operator)"},"submitResults(uint64,uint64[],bytes[])":{"notice":"Submit multiple results in one transaction"},"teeNonceFor(uint64)":{"notice":"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request — it eliminates cross-request attestation replay at approval time."},"terminateService(uint64)":{"notice":"Terminate a service (as owner)"},"terminateServiceForNonPayment(uint64)":{"notice":"Permissionlessly terminate an unpaid subscription after grace period"},"transferBlueprint(uint64,address)":{"notice":"Transfer blueprint ownership"},"unregisterOperator(uint64)":{"notice":"Unregister from a blueprint"},"updateBlueprint(uint64,string,bytes32)":{"notice":"Update blueprint metadata"},"updateOperatorPreferences(uint64,bytes,string)":{"notice":"Update operator preferences for a blueprint"},"withdrawRemainingEscrow(uint64)":{"notice":"Withdraw remaining escrow after termination"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangle.sol":"ITangle"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/interfaces/ITangle.sol":{"keccak256":"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d","urls":["bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd","dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ"],"license":"MIT"},"src/interfaces/ITangleBlueprints.sol":{"keccak256":"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d","urls":["bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798","dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF"],"license":"MIT"},"src/interfaces/ITangleJobs.sol":{"keccak256":"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0","urls":["bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47","dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd"],"license":"MIT"},"src/interfaces/ITangleOperators.sol":{"keccak256":"0x02f071be69aa0d19e5d8e2f46d7eb95f31e2b6a4801700fd5b2e6728d4940223","urls":["bzz-raw://a4581cf0c4f6ce041ca72dd65f55f7507b9dd548830c548a36adaba950cfa165","dweb:/ipfs/QmWr2cLcKXZFkDpaFm6CbHRcdbzBfpqaDTQwyYAR9Qc1ve"],"license":"MIT"},"src/interfaces/ITangleRewards.sol":{"keccak256":"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741","urls":["bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5","dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR"],"license":"MIT"},"src/interfaces/ITangleServices.sol":{"keccak256":"0xcd35629b25a9847d724bddc21486da34d8c44b0d00797b64ae1214da40e61cd4","urls":["bzz-raw://fc6f9e1b3213fe403193fc265332a51c18682ec5ccd91afae6686812dff2f5e0","dweb:/ipfs/QmSCeKYPezdMFymA2FeKZNjxFiDNj8UW8wj1p1WmbZ227E"],"license":"MIT"},"src/interfaces/ITangleSlashing.sol":{"keccak256":"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280","urls":["bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c","dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd","urls":["bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622","dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8"],"license":"MIT"},"src/libraries/PaymentLib.sol":{"keccak256":"0xcc483845f5c93b5302d30339cdff31a9dd4cced3bdb7c2fe41cdf34ac935c3eb","urls":["bzz-raw://adf3d00787ac1923d38bce0ca1f4a091af0000afe3929b01adb5d1f0395895e6","dweb:/ipfs/QmZuP4gYXpbsqn6zFXB2D7HSo9FZrDe21b1YAaUEQqHwnF"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file +{"abi":[{"type":"function","name":"addPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveService","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ApprovalParams","components":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"blsPopSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"teeCommitments","type":"tuple[]","internalType":"struct Types.TeeAttestationCommitment[]","components":[{"name":"backend","type":"uint8","internalType":"enum Types.TeeBackend"},{"name":"expectedMeasurement","type":"bytes32","internalType":"bytes32"},{"name":"nonceBinding","type":"bytes32","internalType":"bytes32"},{"name":"expiresAt","type":"uint64","internalType":"uint64"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscription","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscriptionBatch","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalBilled","type":"uint256","internalType":"uint256"},{"name":"billedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"blsPopMessage","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"blueprintCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"blueprintMasterRevision","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blueprintMetadata","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blueprintOperatorCount","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSources","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]}],"stateMutability":"view"},{"type":"function","name":"blueprintSupportedMemberships","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"memberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}],"stateMutability":"view"},{"type":"function","name":"canScheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"canExit","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"cancelExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsBatch","inputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBlueprint","inputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"outputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createServiceFromQuotes","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"deactivateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expireServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"extendServiceFromQuotes","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"extensionDuration","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"forceExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"forceRemoveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBillableServices","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"billable","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Blueprint","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintConfig","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintDefinition","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitConfig","components":[{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitRequest","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitRequest","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"scheduledAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"pending","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.ExitStatus"}],"stateMutability":"view"},{"type":"function","name":"getJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.JobCall","components":[{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"caller","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"resultCount","type":"uint32","internalType":"uint32"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"completed","type":"bool","internalType":"bool"},{"name":"isRFQ","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getJobEventRate","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedPrice","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlsPubkey","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorPreferences","components":[{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorPublicKey","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOperatorRegistration","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRegistration","components":[{"name":"registeredAt","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"},{"name":"online","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorTotalActiveServices","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Service","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"terminatedAt","type":"uint64","internalType":"uint64"},{"name":"lastPaymentAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"status","type":"uint8","internalType":"enum Types.ServiceStatus"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PaymentLib.ServiceEscrow","components":[{"name":"token","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"totalDeposited","type":"uint256","internalType":"uint256"},{"name":"totalReleased","type":"uint256","internalType":"uint256"},{"name":"__reserved0","type":"uint256","internalType":"uint256"},{"name":"subscriptionBaselineStake","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceOperator","components":[{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"joinedAt","type":"uint64","internalType":"uint64"},{"name":"leftAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceRequest","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"approvalCount","type":"uint32","internalType":"uint32"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"rejected","type":"bool","internalType":"bool"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"activated","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestResourceRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityCommitments","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceResourceCommitmentHash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityRequirements","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getTeeCommitmentRoot","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isOperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceActive","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinServiceWithCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leaveService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"preRegister","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rejectService","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestService","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithExposure","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"exposureBps","type":"uint16[]","internalType":"uint16[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithSecurity","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"securityRequirements","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"rewardTokens","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"scheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requirements","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setJobEventRates","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndexes","type":"uint8[]","internalType":"uint8[]"},{"name":"rates","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitJob","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitJobFromQuote","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedJobQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.JobQuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"uint8"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"result","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitResults","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callIds","type":"uint64[]","internalType":"uint64[]"},{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"teeNonceFor","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"terminateService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"terminateServiceForNonPayment","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrowTo","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"to","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"manager","type":"address","indexed":false,"internalType":"address"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BlueprintDeactivated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintResourceRequirementsSet","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintTransferred","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlueprintUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"JobCompleted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"JobResultSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmittedFromQuote","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"quotedOperators","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"totalPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OperatorJoinedService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"exposureBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"OperatorLeftService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorPreferencesUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRewardAccrued","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnregistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentDistributed","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"grossAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"developerRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"developerAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"operatorPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"stakerPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RewardsClaimed","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceActivated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceApproved","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRejected","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRequested","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceRequestedWithSecurity","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceTerminated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"ServiceTerminatedForNonPayment","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"triggeredBy","type":"address","indexed":true,"internalType":"address"},{"name":"dueAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"graceEndsAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"requiredAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"escrowBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionBilled","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"period","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPermittedCaller(uint64,address)":"815d6a26","approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":"6a46006b","billSubscription(uint64)":"cf3806c6","billSubscriptionBatch(uint64[])":"da232ded","blsPopMessage(address,uint256[4])":"433615a2","blueprintCount()":"c602d4fa","blueprintMasterRevision(uint64)":"ff14a940","blueprintMetadata(uint64)":"430ce118","blueprintOperatorCount(uint64)":"8d3f65be","blueprintSources(uint64)":"335ea071","blueprintSupportedMemberships(uint64)":"df57f527","canScheduleExit(uint64,address)":"27b37565","cancelExit(uint64)":"cbd8da63","claimRewards()":"372500ab","claimRewards(address)":"ef5cfb8c","claimRewardsAll()":"62b83dda","claimRewardsBatch(address[])":"8602bba0","createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":"3022f66c","createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":"458a69a0","deactivateBlueprint(uint64)":"449bb849","executeExit(uint64)":"b7c18207","expireServiceRequest(uint64)":"e07a86bd","extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":"ebb7d84b","forceExit(uint64,address)":"aea65925","forceRemoveOperator(uint64,address)":"684d89f5","fundService(uint64,uint256)":"970e08fe","getBillableServices(uint64[])":"93f3ddaf","getBlueprint(uint64)":"b7696dbb","getBlueprintConfig(uint64)":"563a89f9","getBlueprintDefinition(uint64)":"6171fea8","getBlueprintResourceRequirements(uint64)":"349e961a","getExitConfig(uint64)":"d2672ed4","getExitRequest(uint64,address)":"9dcc5a93","getExitStatus(uint64,address)":"427ffde9","getJobCall(uint64,uint64)":"a672bc0a","getJobEventRate(uint64,uint8)":"f9333bb1","getJobQuotedOperators(uint64,uint64)":"038dda6c","getJobQuotedPrice(uint64,uint64,address)":"fca78d2d","getOperatorBlsPubkey(uint64,address)":"6ee5bcff","getOperatorPreferences(uint64,address)":"f32f9673","getOperatorPublicKey(uint64,address)":"180cae67","getOperatorRegistration(uint64,address)":"6bda42f3","getOperatorTotalActiveServices(address)":"0ded8bf9","getService(uint64)":"3dc0d5fe","getServiceEscrow(uint64)":"eb8c3bcd","getServiceOperator(uint64,address)":"842524bb","getServiceOperators(uint64)":"bb207f1f","getServiceRequest(uint64)":"5f9b4dfa","getServiceRequestResourceRequirements(uint64)":"a305fb44","getServiceRequestSecurityCommitments(uint64,address)":"05bb3aa3","getServiceRequestSecurityRequirements(uint64)":"e5f797f2","getServiceResourceCommitmentHash(uint64,address)":"e4c0b756","getServiceSecurityCommitments(uint64,address)":"a0b0c62a","getServiceSecurityRequirements(uint64)":"d8644e52","getTeeCommitmentRoot(uint64,address)":"a7d282f4","isOperatorRegistered(uint64,address)":"64462595","isPermittedCaller(uint64,address)":"2ec2bd03","isServiceActive(uint64)":"2f46279f","isServiceOperator(uint64,address)":"a595b21e","joinService(uint64,uint16)":"2b9da71a","joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":"d563701f","leaveService(uint64)":"6778afbc","pendingRewards(address)":"31d7a262","pendingRewards(address,address)":"80ac8228","preRegister(uint64)":"18c68017","registerOperator(uint64,bytes,string)":"d4e1ab7c","registerOperator(uint64,bytes,string,bytes)":"7324e916","rejectService(uint64)":"6d8b88c3","removePermittedCaller(uint64,address)":"5f359924","requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":"c841e26e","requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":"327d6898","requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":"4c540ec1","rewardTokens(address)":"f5ab16cc","scheduleExit(uint64)":"b607ba59","serviceCount()":"06237526","setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":"e830bff6","setJobEventRates(uint64,uint8[],uint256[])":"c1d71304","submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":"c325ae12","submitJob(uint64,uint8,bytes)":"3413e8ee","submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":"52ada2be","submitResult(uint64,uint64,bytes)":"2d07e655","submitResults(uint64,uint64[],bytes[])":"aacdba9f","teeNonceFor(uint64)":"365e1439","terminateService(uint64)":"5b71c934","terminateServiceForNonPayment(uint64)":"13d36a66","transferBlueprint(uint64,address)":"8a4cf763","unregisterOperator(uint64)":"0afd3738","updateBlueprint(uint64,string,bytes32)":"c77f959b","updateOperatorPreferences(uint64,bytes,string)":"909eac24","withdrawRemainingEscrow(uint64)":"9dfb6100","withdrawRemainingEscrowTo(uint64,address)":"25d80f7d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"BlueprintResourceRequirementsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"BlueprintTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"JobCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"JobResultSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"quotedOperators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmittedFromQuote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"OperatorJoinedService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeftService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorPreferencesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorRewardAccrued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"grossAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"developerRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"developerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorPoolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakerPoolAmount\",\"type\":\"uint256\"}],\"name\":\"PaymentDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequestedWithSecurity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"ServiceTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"dueAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"graceEndsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"escrowBalance\",\"type\":\"uint256\"}],\"name\":\"ServiceTerminatedForNonPayment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"}],\"name\":\"SubscriptionBilled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"addPermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"},{\"internalType\":\"uint256[2]\",\"name\":\"blsPopSignature\",\"type\":\"uint256[2]\"},{\"components\":[{\"internalType\":\"enum Types.TeeBackend\",\"name\":\"backend\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"expectedMeasurement\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"nonceBinding\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expiresAt\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.TeeAttestationCommitment[]\",\"name\":\"teeCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.ApprovalParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"approveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"billSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"billSubscriptionBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBilled\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"billedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"blsPopMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blueprintCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMasterRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSources\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSupportedMemberships\",\"outputs\":[{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"memberships\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canScheduleExit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canExit\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"cancelExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardsAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"claimRewardsBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"name\":\"createBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"createServiceFromQuotes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"deactivateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"executeExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"expireServiceRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"extensionDuration\",\"type\":\"uint64\"}],\"name\":\"extendServiceFromQuotes\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceRemoveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundService\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"getBillableServices\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"billable\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprint\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.Blueprint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintDefinition\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"scheduledAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitStatus\",\"outputs\":[{\"internalType\":\"enum Types.ExitStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobCall\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultCount\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRFQ\",\"type\":\"bool\"}],\"internalType\":\"struct Types.JobCall\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getJobEventRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobQuotedOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getJobQuotedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlsPubkey\",\"outputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPreferences\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"internalType\":\"struct Types.OperatorPreferences\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRegistration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"registeredAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"updatedAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"online\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorRegistration\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorTotalActiveServices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"terminatedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastPaymentAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ServiceStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceEscrow\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDeposited\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__reserved0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionBaselineStake\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentLib.ServiceEscrow\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"joinedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leftAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"approvalCount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"rejected\",\"type\":\"bool\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"activated\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceRequestSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceResourceCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getTeeCommitmentRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"isServiceActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isServiceOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"joinService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"}],\"name\":\"joinServiceWithCommitments\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"leaveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"preRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"rejectService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"removePermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"exposureBps\",\"type\":\"uint16[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithExposure\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"securityRequirements\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithSecurity\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"scheduleExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"requirements\",\"type\":\"tuple[]\"}],\"name\":\"setBlueprintResourceRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8[]\",\"name\":\"jobIndexes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rates\",\"type\":\"uint256[]\"}],\"name\":\"setJobEventRates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"submitAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"submitJob\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.JobQuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedJobQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"}],\"name\":\"submitJobFromQuote\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"submitResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64[]\",\"name\":\"callIds\",\"type\":\"uint64[]\"},{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"name\":\"submitResults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"teeNonceFor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateServiceForNonPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"updateOperatorPreferences\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"withdrawRemainingEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawRemainingEscrowTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Consolidates all sub-interfaces into a single entry point. Inherits from focused sub-interfaces for modularity.\",\"events\":{\"JobCompleted(uint64,uint64)\":{\"details\":\"Derive resultCount from getJobCall(serviceId, callId).resultCount\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The updated ECDSA public key (may be empty if unchanged)\",\"operator\":\"The operator address\",\"rpcAddress\":\"The updated RPC endpoint (may be empty if unchanged)\"}},\"OperatorRegistered(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity\",\"operator\":\"The operator address (wallet)\",\"rpcAddress\":\"The operator's RPC endpoint\"}}},\"kind\":\"dev\",\"methods\":{\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"details\":\"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in \\u2014 protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile.\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"params\":{\"definition\":\"Fully populated blueprint definition struct\"},\"returns\":{\"blueprintId\":\"The new blueprint ID\"}},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"details\":\"No approval flow needed - operators have pre-committed via signatures\",\"params\":{\"blueprintId\":\"The blueprint to use\",\"config\":\"Service configuration\",\"permittedCallers\":\"Addresses allowed to call jobs\",\"quotes\":\"Array of signed quotes from operators\",\"ttl\":\"Service time-to-live (must match quotes)\"}},\"expireServiceRequest(uint64)\":{\"details\":\"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window.\"},\"forceRemoveOperator(uint64,address)\":{\"params\":{\"operator\":\"The operator to remove\",\"serviceId\":\"The service ID\"}},\"getOperatorBlsPubkey(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"blsPubkey\":\"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered\"}},\"getOperatorPublicKey(uint64,address)\":{\"details\":\"Returns the key used for signing/verifying gossip messages\"},\"getOperatorTotalActiveServices(address)\":{\"params\":{\"operator\":\"The operator address\"},\"returns\":{\"count\":\"Total number of active services the operator is part of\"}},\"getServiceResourceCommitmentHash(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)\"}},\"getTeeCommitmentRoot(uint64,address)\":{\"details\":\"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`.\"},\"registerOperator(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to register for\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)\",\"rpcAddress\":\"The operator's RPC endpoint URL\"}},\"registerOperator(uint64,bytes,string,bytes)\":{\"params\":{\"registrationInputs\":\"Encoded payload validated by blueprint's schema\"}},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"details\":\"Each operator must provide security commitments matching these requirements when approving\"},\"rewardTokens(address)\":{\"details\":\"Convenience view; mappings are not enumerable.\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Only valid for jobs where requiresAggregation returns true\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key [x0, x1, y0, y1]\",\"aggregatedSignature\":\"The aggregated BLS signature [x, y]\",\"callId\":\"The job call ID\",\"output\":\"The aggregated output data\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap indicating which operators signed (bit i = operator i in service)\"}},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"params\":{\"inputs\":\"Encoded job parameters\",\"jobIndex\":\"The job type index\",\"quotes\":\"Array of signed quotes from operators\",\"serviceId\":\"The service ID\"}},\"updateOperatorPreferences(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to update preferences for\",\"ecdsaPublicKey\":\"New ECDSA public key (pass empty bytes to keep unchanged)\",\"rpcAddress\":\"New RPC endpoint (pass empty string to keep unchanged)\"}},\"withdrawRemainingEscrowTo(uint64,address)\":{\"details\":\"Service owner can route around blocklisting tokens / smart-account receive constraints. Caller must equal the service owner; recipient is arbitrary but must be non-zero.\"}},\"title\":\"ITangle\",\"version\":1},\"userdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"notice\":\"Emitted when a job reaches its required result threshold\"},\"JobSubmittedFromQuote(uint64,uint64,uint8,address,address[],uint256,bytes)\":{\"notice\":\"Emitted when a job is submitted via RFQ with signed operator quotes\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator updates their preferences\"},\"OperatorRegistered(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator registers for a blueprint\"}},\"kind\":\"user\",\"methods\":{\"addPermittedCaller(uint64,address)\":{\"notice\":\"Add a permitted caller to a service\"},\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"notice\":\"Approve a service request as one of its operators.\"},\"billSubscription(uint64)\":{\"notice\":\"Bill a subscription service for the current period\"},\"billSubscriptionBatch(uint64[])\":{\"notice\":\"Bill multiple subscription services in one call\"},\"blsPopMessage(address,uint256[4])\":{\"notice\":\"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator.\"},\"blueprintCount()\":{\"notice\":\"Get current blueprint count\"},\"blueprintMasterRevision(uint64)\":{\"notice\":\"Get master blueprint revision\"},\"blueprintMetadata(uint64)\":{\"notice\":\"Get blueprint metadata and URI\"},\"blueprintOperatorCount(uint64)\":{\"notice\":\"Get number of operators for a blueprint\"},\"blueprintSources(uint64)\":{\"notice\":\"Get blueprint sources\"},\"blueprintSupportedMemberships(uint64)\":{\"notice\":\"Get blueprint supported membership models\"},\"canScheduleExit(uint64,address)\":{\"notice\":\"Check if operator can schedule exit now\"},\"cancelExit(uint64)\":{\"notice\":\"Cancel a scheduled exit before execution\"},\"claimRewards()\":{\"notice\":\"Claim accumulated rewards (native token)\"},\"claimRewards(address)\":{\"notice\":\"Claim accumulated rewards for a specific token\"},\"claimRewardsAll()\":{\"notice\":\"Claim accumulated rewards for all pending tokens\"},\"claimRewardsBatch(address[])\":{\"notice\":\"Claim accumulated rewards for multiple tokens\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"notice\":\"Create a blueprint from an encoded definition that includes schemas and job metadata\"},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"notice\":\"Create a service instantly using pre-signed operator quotes\"},\"deactivateBlueprint(uint64)\":{\"notice\":\"Deactivate a blueprint\"},\"executeExit(uint64)\":{\"notice\":\"Execute a scheduled exit after the queue delay\"},\"expireServiceRequest(uint64)\":{\"notice\":\"Permissionlessly expire a stale service request and refund the requester.\"},\"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)\":{\"notice\":\"Extend a service using pre-signed operator quotes\"},\"forceExit(uint64,address)\":{\"notice\":\"Force exit an operator from a service (if permitted by config)\"},\"forceRemoveOperator(uint64,address)\":{\"notice\":\"Force remove an operator from a service (blueprint manager only)\"},\"fundService(uint64,uint256)\":{\"notice\":\"Fund a service escrow balance\"},\"getBillableServices(uint64[])\":{\"notice\":\"Get billable services from a list of candidates\"},\"getBlueprint(uint64)\":{\"notice\":\"Get blueprint info\"},\"getBlueprintConfig(uint64)\":{\"notice\":\"Get blueprint configuration\"},\"getBlueprintDefinition(uint64)\":{\"notice\":\"Get the original blueprint definition\"},\"getBlueprintResourceRequirements(uint64)\":{\"notice\":\"Get default resource requirements for a blueprint\"},\"getExitConfig(uint64)\":{\"notice\":\"Get exit configuration for a service\"},\"getExitRequest(uint64,address)\":{\"notice\":\"Get exit request for an operator\"},\"getExitStatus(uint64,address)\":{\"notice\":\"Get exit status for an operator\"},\"getJobCall(uint64,uint64)\":{\"notice\":\"Get job call info\"},\"getJobEventRate(uint64,uint8)\":{\"notice\":\"Get the effective event rate for a specific job type\"},\"getJobQuotedOperators(uint64,uint64)\":{\"notice\":\"Get the quoted operators for an RFQ job\"},\"getJobQuotedPrice(uint64,uint64,address)\":{\"notice\":\"Get a quoted operator's price for an RFQ job\"},\"getOperatorBlsPubkey(uint64,address)\":{\"notice\":\"Get operator's BLS public key for a service\"},\"getOperatorPreferences(uint64,address)\":{\"notice\":\"Get operator preferences for a blueprint (includes ECDSA public key)\"},\"getOperatorPublicKey(uint64,address)\":{\"notice\":\"Get operator's ECDSA public key for gossip network identity\"},\"getOperatorRegistration(uint64,address)\":{\"notice\":\"Get operator registration for a blueprint\"},\"getOperatorTotalActiveServices(address)\":{\"notice\":\"Get total count of active services for an operator across all blueprints\"},\"getService(uint64)\":{\"notice\":\"Get service info\"},\"getServiceEscrow(uint64)\":{\"notice\":\"Get service escrow details\"},\"getServiceOperator(uint64,address)\":{\"notice\":\"Get operator info for a service\"},\"getServiceOperators(uint64)\":{\"notice\":\"Get the list of operators for a service\"},\"getServiceRequest(uint64)\":{\"notice\":\"Get service request\"},\"getServiceRequestResourceRequirements(uint64)\":{\"notice\":\"Get resource requirements for a service request\"},\"getServiceRequestSecurityCommitments(uint64,address)\":{\"notice\":\"Get security commitments for a service request by operator\"},\"getServiceRequestSecurityRequirements(uint64)\":{\"notice\":\"Get security requirements for a service request\"},\"getServiceResourceCommitmentHash(uint64,address)\":{\"notice\":\"Get the resource commitment hash for an operator in a service\"},\"getServiceSecurityCommitments(uint64,address)\":{\"notice\":\"Get persisted security commitments for an active service by operator\"},\"getServiceSecurityRequirements(uint64)\":{\"notice\":\"Get persisted security requirements for an active service\"},\"getTeeCommitmentRoot(uint64,address)\":{\"notice\":\"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service.\"},\"isOperatorRegistered(uint64,address)\":{\"notice\":\"Check if operator is registered for a blueprint\"},\"isPermittedCaller(uint64,address)\":{\"notice\":\"Check if address can call jobs on service\"},\"isServiceActive(uint64)\":{\"notice\":\"Check if service is active\"},\"isServiceOperator(uint64,address)\":{\"notice\":\"Check if address is operator in service\"},\"joinService(uint64,uint16)\":{\"notice\":\"Join an active service (Dynamic membership only)\"},\"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])\":{\"notice\":\"Join an active service with per-asset security commitments (Dynamic membership only)\"},\"leaveService(uint64)\":{\"notice\":\"Leave an active service (Dynamic membership only)\"},\"pendingRewards(address)\":{\"notice\":\"Get pending rewards for an account (native token)\"},\"pendingRewards(address,address)\":{\"notice\":\"Get pending rewards for an account and token\"},\"preRegister(uint64)\":{\"notice\":\"Signal intent to register for a blueprint\"},\"registerOperator(uint64,bytes,string)\":{\"notice\":\"Register as operator for a blueprint\"},\"registerOperator(uint64,bytes,string,bytes)\":{\"notice\":\"Register as operator providing blueprint-specific registration inputs\"},\"rejectService(uint64)\":{\"notice\":\"Reject a service request (as operator)\"},\"removePermittedCaller(uint64,address)\":{\"notice\":\"Remove a permitted caller from a service\"},\"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a new service\"},\"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with explicit exposure commitments\"},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with multi-asset security requirements\"},\"rewardTokens(address)\":{\"notice\":\"List tokens with non-zero pending rewards for an account\"},\"scheduleExit(uint64)\":{\"notice\":\"Schedule exit from an active service when exit queues are enabled\"},\"serviceCount()\":{\"notice\":\"Get current service count\"},\"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])\":{\"notice\":\"Set default resource requirements for a blueprint (owner only)\"},\"setJobEventRates(uint64,uint8[],uint256[])\":{\"notice\":\"Set event rate overrides for one or more job types in a blueprint\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Submit an aggregated BLS result for a job\"},\"submitJob(uint64,uint8,bytes)\":{\"notice\":\"Submit a job to a service\"},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"notice\":\"Submit a job using signed operator price quotes (RFQ)\"},\"submitResult(uint64,uint64,bytes)\":{\"notice\":\"Submit a job result (as operator)\"},\"submitResults(uint64,uint64[],bytes[])\":{\"notice\":\"Submit multiple results in one transaction\"},\"teeNonceFor(uint64)\":{\"notice\":\"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request \\u2014 it eliminates cross-request attestation replay at approval time.\"},\"terminateService(uint64)\":{\"notice\":\"Terminate a service (as owner)\"},\"terminateServiceForNonPayment(uint64)\":{\"notice\":\"Permissionlessly terminate an unpaid subscription after grace period\"},\"transferBlueprint(uint64,address)\":{\"notice\":\"Transfer blueprint ownership\"},\"unregisterOperator(uint64)\":{\"notice\":\"Unregister from a blueprint\"},\"updateBlueprint(uint64,string,bytes32)\":{\"notice\":\"Update blueprint metadata\"},\"updateOperatorPreferences(uint64,bytes,string)\":{\"notice\":\"Update operator preferences for a blueprint\"},\"withdrawRemainingEscrow(uint64)\":{\"notice\":\"Withdraw remaining escrow after termination to the service owner.\"},\"withdrawRemainingEscrowTo(uint64,address)\":{\"notice\":\"Withdraw remaining escrow after termination to a service-owner-chosen address.\"}},\"notice\":\"Core interface for Tangle Protocol v2\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangle.sol\":\"ITangle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/interfaces/ITangle.sol\":{\"keccak256\":\"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd\",\"dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ\"]},\"src/interfaces/ITangleBlueprints.sol\":{\"keccak256\":\"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798\",\"dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF\"]},\"src/interfaces/ITangleJobs.sol\":{\"keccak256\":\"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47\",\"dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd\"]},\"src/interfaces/ITangleOperators.sol\":{\"keccak256\":\"0xce666d409611f041d08161dbc39f4165da7c0484baa6aacc60815dccf4a2583a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9c0e27ac2429ac4acbea9f203729b10ca4f2548815c9a817485ed8d236e040f\",\"dweb:/ipfs/QmWwkDVeuHc5UaDt8LU3Swr8PXCE5k1mdwH9zFWWbcybsz\"]},\"src/interfaces/ITangleRewards.sol\":{\"keccak256\":\"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5\",\"dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR\"]},\"src/interfaces/ITangleServices.sol\":{\"keccak256\":\"0x7fba18afbe05abb9cbda852a011c5f87c2cd3c72c18bc521620a7199c798c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7273ede38ef52be90c3a14cb38b92e7a0373469364044ca5c379316a829f9a9\",\"dweb:/ipfs/QmVu6ZM95vBk76oN2z2w3ZCtM21dJk53FKLT3EKc9X8KiH\"]},\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74\",\"dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412\",\"dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB\"]},\"src/libraries/PaymentLib.sol\":{\"keccak256\":\"0x818b32fd77219fd4c91bc15bb91f8eb059b363ac9cfe9f601358fef8f8d1a196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c22a401c62563aa9eccf48a40b79083b5116bb67f1c53bc6e9df20ceb15aaeb0\",\"dweb:/ipfs/QmXGyhEpu6JswZPPvPnJE2rVHtSag4hhHmv4L5mFh5TL3H\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"manager","type":"address","indexed":false},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintCreated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"BlueprintDeactivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"BlueprintResourceRequirementsSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"BlueprintTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true}],"type":"event","name":"JobCompleted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false}],"type":"event","name":"JobResultSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":false},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"address[]","name":"quotedOperators","type":"address[]","indexed":false},{"internalType":"uint256","name":"totalPrice","type":"uint256","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmittedFromQuote","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint16","name":"exposureBps","type":"uint16","indexed":false}],"type":"event","name":"OperatorJoinedService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeftService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorPreferencesUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorRewardAccrued","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorUnregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"grossAmount","type":"uint256","indexed":false},{"internalType":"address","name":"developerRecipient","type":"address","indexed":false},{"internalType":"uint256","name":"developerAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"protocolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"operatorPoolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"stakerPoolAmount","type":"uint256","indexed":false}],"type":"event","name":"PaymentDistributed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardsClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceActivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceApproved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceRejected","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequestedWithSecurity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true}],"type":"event","name":"ServiceTerminated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"triggeredBy","type":"address","indexed":true},{"internalType":"uint64","name":"dueAt","type":"uint64","indexed":false},{"internalType":"uint64","name":"graceEndsAt","type":"uint64","indexed":false},{"internalType":"uint256","name":"requiredAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"escrowBalance","type":"uint256","indexed":false}],"type":"event","name":"ServiceTerminatedForNonPayment","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"period","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionBilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPermittedCaller"},{"inputs":[{"internalType":"struct Types.ApprovalParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"},{"internalType":"uint256[2]","name":"blsPopSignature","type":"uint256[2]"},{"internalType":"struct Types.TeeAttestationCommitment[]","name":"teeCommitments","type":"tuple[]","components":[{"internalType":"enum Types.TeeBackend","name":"backend","type":"uint8"},{"internalType":"bytes32","name":"expectedMeasurement","type":"bytes32"},{"internalType":"bytes32","name":"nonceBinding","type":"bytes32"},{"internalType":"uint64","name":"expiresAt","type":"uint64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"approveService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"billSubscription"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"billSubscriptionBatch","outputs":[{"internalType":"uint256","name":"totalBilled","type":"uint256"},{"internalType":"uint256","name":"billedCount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}],"stateMutability":"view","type":"function","name":"blsPopMessage","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blueprintCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMasterRevision","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMetadata","outputs":[{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSources","outputs":[{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSupportedMemberships","outputs":[{"internalType":"enum Types.MembershipModel[]","name":"memberships","type":"uint8[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canScheduleExit","outputs":[{"internalType":"bool","name":"canExit","type":"bool"},{"internalType":"string","name":"reason","type":"string"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelExit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardsAll"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewardsBatch"},{"inputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createBlueprint","outputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"payable","type":"function","name":"createServiceFromQuotes","outputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deactivateBlueprint"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeExit"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expireServiceRequest"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"uint64","name":"extensionDuration","type":"uint64"}],"stateMutability":"payable","type":"function","name":"extendServiceFromQuotes"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceExit"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceRemoveOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundService"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"getBillableServices","outputs":[{"internalType":"uint64[]","name":"billable","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprint","outputs":[{"internalType":"struct Types.Blueprint","name":"","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintConfig","outputs":[{"internalType":"struct Types.BlueprintConfig","name":"","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintDefinition","outputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"struct Types.ExitConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitRequest","outputs":[{"internalType":"struct Types.ExitRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"scheduledAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"bool","name":"pending","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitStatus","outputs":[{"internalType":"enum Types.ExitStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobCall","outputs":[{"internalType":"struct Types.JobCall","name":"","type":"tuple","components":[{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"resultCount","type":"uint32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"bool","name":"isRFQ","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getJobEventRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobQuotedOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getJobQuotedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlsPubkey","outputs":[{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPreferences","outputs":[{"internalType":"struct Types.OperatorPreferences","name":"","type":"tuple","components":[{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRegistration","outputs":[{"internalType":"struct Types.OperatorRegistration","name":"","type":"tuple","components":[{"internalType":"uint64","name":"registeredAt","type":"uint64"},{"internalType":"uint64","name":"updatedAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"online","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorTotalActiveServices","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getService","outputs":[{"internalType":"struct Types.Service","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint64","name":"terminatedAt","type":"uint64"},{"internalType":"uint64","name":"lastPaymentAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"enum Types.ServiceStatus","name":"status","type":"uint8"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceEscrow","outputs":[{"internalType":"struct PaymentLib.ServiceEscrow","name":"","type":"tuple","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalReleased","type":"uint256"},{"internalType":"uint256","name":"__reserved0","type":"uint256"},{"internalType":"uint256","name":"subscriptionBaselineStake","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceOperator","outputs":[{"internalType":"struct Types.ServiceOperator","name":"","type":"tuple","components":[{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"uint64","name":"joinedAt","type":"uint64"},{"internalType":"uint64","name":"leftAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequest","outputs":[{"internalType":"struct Types.ServiceRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"approvalCount","type":"uint32"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"bool","name":"rejected","type":"bool"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"bool","name":"activated","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceResourceCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getTeeCommitmentRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"isServiceActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isServiceOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"joinService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"joinServiceWithCommitments"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"leaveService"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"preRegister"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"rejectService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePermittedCaller"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestService","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint16[]","name":"exposureBps","type":"uint16[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithExposure","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"struct Types.AssetSecurityRequirement[]","name":"securityRequirements","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithSecurity","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"rewardTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"scheduleExit"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.ResourceCommitment[]","name":"requirements","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"setBlueprintResourceRequirements"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8[]","name":"jobIndexes","type":"uint8[]"},{"internalType":"uint256[]","name":"rates","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setJobEventRates"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"submitAggregatedResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"submitJob","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"struct Types.SignedJobQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.JobQuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"uint8","name":"confidentiality","type":"uint8"}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]}],"stateMutability":"payable","type":"function","name":"submitJobFromQuote","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64[]","name":"callIds","type":"uint64[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitResults"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"teeNonceFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateServiceForNonPayment"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorPreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrow"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address payable","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrowTo"}],"devdoc":{"kind":"dev","methods":{"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"details":"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in — protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile."},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"params":{"definition":"Fully populated blueprint definition struct"},"returns":{"blueprintId":"The new blueprint ID"}},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"details":"No approval flow needed - operators have pre-committed via signatures","params":{"blueprintId":"The blueprint to use","config":"Service configuration","permittedCallers":"Addresses allowed to call jobs","quotes":"Array of signed quotes from operators","ttl":"Service time-to-live (must match quotes)"}},"expireServiceRequest(uint64)":{"details":"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window."},"forceRemoveOperator(uint64,address)":{"params":{"operator":"The operator to remove","serviceId":"The service ID"}},"getOperatorBlsPubkey(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"blsPubkey":"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered"}},"getOperatorPublicKey(uint64,address)":{"details":"Returns the key used for signing/verifying gossip messages"},"getOperatorTotalActiveServices(address)":{"params":{"operator":"The operator address"},"returns":{"count":"Total number of active services the operator is part of"}},"getServiceResourceCommitmentHash(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)"}},"getTeeCommitmentRoot(uint64,address)":{"details":"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`."},"registerOperator(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to register for","ecdsaPublicKey":"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)","rpcAddress":"The operator's RPC endpoint URL"}},"registerOperator(uint64,bytes,string,bytes)":{"params":{"registrationInputs":"Encoded payload validated by blueprint's schema"}},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"details":"Each operator must provide security commitments matching these requirements when approving"},"rewardTokens(address)":{"details":"Convenience view; mappings are not enumerable."},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Only valid for jobs where requiresAggregation returns true","params":{"aggregatedPubkey":"The aggregated public key [x0, x1, y0, y1]","aggregatedSignature":"The aggregated BLS signature [x, y]","callId":"The job call ID","output":"The aggregated output data","serviceId":"The service ID","signerBitmap":"Bitmap indicating which operators signed (bit i = operator i in service)"}},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"params":{"inputs":"Encoded job parameters","jobIndex":"The job type index","quotes":"Array of signed quotes from operators","serviceId":"The service ID"}},"updateOperatorPreferences(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to update preferences for","ecdsaPublicKey":"New ECDSA public key (pass empty bytes to keep unchanged)","rpcAddress":"New RPC endpoint (pass empty string to keep unchanged)"}},"withdrawRemainingEscrowTo(uint64,address)":{"details":"Service owner can route around blocklisting tokens / smart-account receive constraints. Caller must equal the service owner; recipient is arbitrary but must be non-zero."}},"version":1},"userdoc":{"kind":"user","methods":{"addPermittedCaller(uint64,address)":{"notice":"Add a permitted caller to a service"},"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"notice":"Approve a service request as one of its operators."},"billSubscription(uint64)":{"notice":"Bill a subscription service for the current period"},"billSubscriptionBatch(uint64[])":{"notice":"Bill multiple subscription services in one call"},"blsPopMessage(address,uint256[4])":{"notice":"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator."},"blueprintCount()":{"notice":"Get current blueprint count"},"blueprintMasterRevision(uint64)":{"notice":"Get master blueprint revision"},"blueprintMetadata(uint64)":{"notice":"Get blueprint metadata and URI"},"blueprintOperatorCount(uint64)":{"notice":"Get number of operators for a blueprint"},"blueprintSources(uint64)":{"notice":"Get blueprint sources"},"blueprintSupportedMemberships(uint64)":{"notice":"Get blueprint supported membership models"},"canScheduleExit(uint64,address)":{"notice":"Check if operator can schedule exit now"},"cancelExit(uint64)":{"notice":"Cancel a scheduled exit before execution"},"claimRewards()":{"notice":"Claim accumulated rewards (native token)"},"claimRewards(address)":{"notice":"Claim accumulated rewards for a specific token"},"claimRewardsAll()":{"notice":"Claim accumulated rewards for all pending tokens"},"claimRewardsBatch(address[])":{"notice":"Claim accumulated rewards for multiple tokens"},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"notice":"Create a blueprint from an encoded definition that includes schemas and job metadata"},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"notice":"Create a service instantly using pre-signed operator quotes"},"deactivateBlueprint(uint64)":{"notice":"Deactivate a blueprint"},"executeExit(uint64)":{"notice":"Execute a scheduled exit after the queue delay"},"expireServiceRequest(uint64)":{"notice":"Permissionlessly expire a stale service request and refund the requester."},"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":{"notice":"Extend a service using pre-signed operator quotes"},"forceExit(uint64,address)":{"notice":"Force exit an operator from a service (if permitted by config)"},"forceRemoveOperator(uint64,address)":{"notice":"Force remove an operator from a service (blueprint manager only)"},"fundService(uint64,uint256)":{"notice":"Fund a service escrow balance"},"getBillableServices(uint64[])":{"notice":"Get billable services from a list of candidates"},"getBlueprint(uint64)":{"notice":"Get blueprint info"},"getBlueprintConfig(uint64)":{"notice":"Get blueprint configuration"},"getBlueprintDefinition(uint64)":{"notice":"Get the original blueprint definition"},"getBlueprintResourceRequirements(uint64)":{"notice":"Get default resource requirements for a blueprint"},"getExitConfig(uint64)":{"notice":"Get exit configuration for a service"},"getExitRequest(uint64,address)":{"notice":"Get exit request for an operator"},"getExitStatus(uint64,address)":{"notice":"Get exit status for an operator"},"getJobCall(uint64,uint64)":{"notice":"Get job call info"},"getJobEventRate(uint64,uint8)":{"notice":"Get the effective event rate for a specific job type"},"getJobQuotedOperators(uint64,uint64)":{"notice":"Get the quoted operators for an RFQ job"},"getJobQuotedPrice(uint64,uint64,address)":{"notice":"Get a quoted operator's price for an RFQ job"},"getOperatorBlsPubkey(uint64,address)":{"notice":"Get operator's BLS public key for a service"},"getOperatorPreferences(uint64,address)":{"notice":"Get operator preferences for a blueprint (includes ECDSA public key)"},"getOperatorPublicKey(uint64,address)":{"notice":"Get operator's ECDSA public key for gossip network identity"},"getOperatorRegistration(uint64,address)":{"notice":"Get operator registration for a blueprint"},"getOperatorTotalActiveServices(address)":{"notice":"Get total count of active services for an operator across all blueprints"},"getService(uint64)":{"notice":"Get service info"},"getServiceEscrow(uint64)":{"notice":"Get service escrow details"},"getServiceOperator(uint64,address)":{"notice":"Get operator info for a service"},"getServiceOperators(uint64)":{"notice":"Get the list of operators for a service"},"getServiceRequest(uint64)":{"notice":"Get service request"},"getServiceRequestResourceRequirements(uint64)":{"notice":"Get resource requirements for a service request"},"getServiceRequestSecurityCommitments(uint64,address)":{"notice":"Get security commitments for a service request by operator"},"getServiceRequestSecurityRequirements(uint64)":{"notice":"Get security requirements for a service request"},"getServiceResourceCommitmentHash(uint64,address)":{"notice":"Get the resource commitment hash for an operator in a service"},"getServiceSecurityCommitments(uint64,address)":{"notice":"Get persisted security commitments for an active service by operator"},"getServiceSecurityRequirements(uint64)":{"notice":"Get persisted security requirements for an active service"},"getTeeCommitmentRoot(uint64,address)":{"notice":"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service."},"isOperatorRegistered(uint64,address)":{"notice":"Check if operator is registered for a blueprint"},"isPermittedCaller(uint64,address)":{"notice":"Check if address can call jobs on service"},"isServiceActive(uint64)":{"notice":"Check if service is active"},"isServiceOperator(uint64,address)":{"notice":"Check if address is operator in service"},"joinService(uint64,uint16)":{"notice":"Join an active service (Dynamic membership only)"},"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":{"notice":"Join an active service with per-asset security commitments (Dynamic membership only)"},"leaveService(uint64)":{"notice":"Leave an active service (Dynamic membership only)"},"pendingRewards(address)":{"notice":"Get pending rewards for an account (native token)"},"pendingRewards(address,address)":{"notice":"Get pending rewards for an account and token"},"preRegister(uint64)":{"notice":"Signal intent to register for a blueprint"},"registerOperator(uint64,bytes,string)":{"notice":"Register as operator for a blueprint"},"registerOperator(uint64,bytes,string,bytes)":{"notice":"Register as operator providing blueprint-specific registration inputs"},"rejectService(uint64)":{"notice":"Reject a service request (as operator)"},"removePermittedCaller(uint64,address)":{"notice":"Remove a permitted caller from a service"},"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a new service"},"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with explicit exposure commitments"},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with multi-asset security requirements"},"rewardTokens(address)":{"notice":"List tokens with non-zero pending rewards for an account"},"scheduleExit(uint64)":{"notice":"Schedule exit from an active service when exit queues are enabled"},"serviceCount()":{"notice":"Get current service count"},"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":{"notice":"Set default resource requirements for a blueprint (owner only)"},"setJobEventRates(uint64,uint8[],uint256[])":{"notice":"Set event rate overrides for one or more job types in a blueprint"},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Submit an aggregated BLS result for a job"},"submitJob(uint64,uint8,bytes)":{"notice":"Submit a job to a service"},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"notice":"Submit a job using signed operator price quotes (RFQ)"},"submitResult(uint64,uint64,bytes)":{"notice":"Submit a job result (as operator)"},"submitResults(uint64,uint64[],bytes[])":{"notice":"Submit multiple results in one transaction"},"teeNonceFor(uint64)":{"notice":"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request — it eliminates cross-request attestation replay at approval time."},"terminateService(uint64)":{"notice":"Terminate a service (as owner)"},"terminateServiceForNonPayment(uint64)":{"notice":"Permissionlessly terminate an unpaid subscription after grace period"},"transferBlueprint(uint64,address)":{"notice":"Transfer blueprint ownership"},"unregisterOperator(uint64)":{"notice":"Unregister from a blueprint"},"updateBlueprint(uint64,string,bytes32)":{"notice":"Update blueprint metadata"},"updateOperatorPreferences(uint64,bytes,string)":{"notice":"Update operator preferences for a blueprint"},"withdrawRemainingEscrow(uint64)":{"notice":"Withdraw remaining escrow after termination to the service owner."},"withdrawRemainingEscrowTo(uint64,address)":{"notice":"Withdraw remaining escrow after termination to a service-owner-chosen address."}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangle.sol":"ITangle"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/interfaces/ITangle.sol":{"keccak256":"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d","urls":["bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd","dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ"],"license":"MIT"},"src/interfaces/ITangleBlueprints.sol":{"keccak256":"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d","urls":["bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798","dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF"],"license":"MIT"},"src/interfaces/ITangleJobs.sol":{"keccak256":"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0","urls":["bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47","dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd"],"license":"MIT"},"src/interfaces/ITangleOperators.sol":{"keccak256":"0xce666d409611f041d08161dbc39f4165da7c0484baa6aacc60815dccf4a2583a","urls":["bzz-raw://d9c0e27ac2429ac4acbea9f203729b10ca4f2548815c9a817485ed8d236e040f","dweb:/ipfs/QmWwkDVeuHc5UaDt8LU3Swr8PXCE5k1mdwH9zFWWbcybsz"],"license":"MIT"},"src/interfaces/ITangleRewards.sol":{"keccak256":"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741","urls":["bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5","dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR"],"license":"MIT"},"src/interfaces/ITangleServices.sol":{"keccak256":"0x7fba18afbe05abb9cbda852a011c5f87c2cd3c72c18bc521620a7199c798c140","urls":["bzz-raw://b7273ede38ef52be90c3a14cb38b92e7a0373469364044ca5c379316a829f9a9","dweb:/ipfs/QmVu6ZM95vBk76oN2z2w3ZCtM21dJk53FKLT3EKc9X8KiH"],"license":"MIT"},"src/interfaces/ITangleSlashing.sol":{"keccak256":"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5","urls":["bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74","dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58","urls":["bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412","dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB"],"license":"MIT"},"src/libraries/PaymentLib.sol":{"keccak256":"0x818b32fd77219fd4c91bc15bb91f8eb059b363ac9cfe9f601358fef8f8d1a196","urls":["bzz-raw://c22a401c62563aa9eccf48a40b79083b5116bb67f1c53bc6e9df20ceb15aaeb0","dweb:/ipfs/QmXGyhEpu6JswZPPvPnJE2rVHtSag4hhHmv4L5mFh5TL3H"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/bindings/abi/ITangleFull.json b/bindings/abi/ITangleFull.json index 8566a455..4a65bff3 100644 --- a/bindings/abi/ITangleFull.json +++ b/bindings/abi/ITangleFull.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveService","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ApprovalParams","components":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"blsPopSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"teeCommitments","type":"tuple[]","internalType":"struct Types.TeeAttestationCommitment[]","components":[{"name":"backend","type":"uint8","internalType":"enum Types.TeeBackend"},{"name":"expectedMeasurement","type":"bytes32","internalType":"bytes32"},{"name":"nonceBinding","type":"bytes32","internalType":"bytes32"},{"name":"expiresAt","type":"uint64","internalType":"uint64"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscription","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscriptionBatch","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalBilled","type":"uint256","internalType":"uint256"},{"name":"billedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"blsPopMessage","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"blueprintCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"blueprintMasterRevision","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blueprintMetadata","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blueprintOperatorCount","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSources","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]}],"stateMutability":"view"},{"type":"function","name":"blueprintSupportedMemberships","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"memberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}],"stateMutability":"view"},{"type":"function","name":"canScheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"canExit","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"cancelExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimDisputeBond","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsBatch","inputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBlueprint","inputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"outputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createServiceFromQuotes","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"deactivateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"defaultTntMinExposureBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"disputeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashBatch","inputs":[{"name":"slashIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"executedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"expireServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"extendServiceFromQuotes","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"extensionDuration","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"forceExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"forceRemoveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBillableServices","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"billable","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Blueprint","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintConfig","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintDefinition","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getExecutableSlashes","inputs":[{"name":"fromId","type":"uint64","internalType":"uint64"},{"name":"toId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitConfig","components":[{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitRequest","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitRequest","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"scheduledAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"pending","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.ExitStatus"}],"stateMutability":"view"},{"type":"function","name":"getJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.JobCall","components":[{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"caller","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"resultCount","type":"uint32","internalType":"uint32"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"completed","type":"bool","internalType":"bool"},{"name":"isRFQ","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getJobEventRate","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedPrice","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlsPubkey","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorPreferences","components":[{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorPublicKey","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOperatorRegistration","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRegistration","components":[{"name":"registeredAt","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"},{"name":"online","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorTotalActiveServices","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Service","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"terminatedAt","type":"uint64","internalType":"uint64"},{"name":"lastPaymentAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"status","type":"uint8","internalType":"enum Types.ServiceStatus"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PaymentLib.ServiceEscrow","components":[{"name":"token","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"totalDeposited","type":"uint256","internalType":"uint256"},{"name":"totalReleased","type":"uint256","internalType":"uint256"},{"name":"__reserved0","type":"uint256","internalType":"uint256"},{"name":"subscriptionBaselineStake","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceOperator","components":[{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"joinedAt","type":"uint64","internalType":"uint64"},{"name":"leftAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceRequest","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"approvalCount","type":"uint32","internalType":"uint32"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"rejected","type":"bool","internalType":"bool"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"activated","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestResourceRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityCommitments","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceResourceCommitmentHash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityRequirements","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashConfig","components":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashProposal","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashProposal","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"proposer","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"},{"name":"proposedAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum SlashingLib.SlashStatus"},{"name":"disputeReason","type":"string","internalType":"string"},{"name":"disputer","type":"address","internalType":"address"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"disputedAt","type":"uint64","internalType":"uint64"},{"name":"disputeDeadline","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getTeeCommitmentRoot","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isOperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceActive","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinServiceWithCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leaveService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxBlueprintsPerOperator","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"mbsmRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metricsRecorder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorStatusRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paymentSplit","inputs":[],"outputs":[{"name":"developerBps","type":"uint16","internalType":"uint16"},{"name":"protocolBps","type":"uint16","internalType":"uint16"},{"name":"operatorBps","type":"uint16","internalType":"uint16"},{"name":"stakerBps","type":"uint16","internalType":"uint16"},{"name":"keeperBps","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"pendingDisputeBondRefund","inputs":[{"name":"disputer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"preRegister","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"priceOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposeSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rejectService","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestService","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithExposure","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"exposureBps","type":"uint16[]","internalType":"uint16[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithSecurity","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"securityRequirements","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"rewardTokens","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"rewardVaults","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"scheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"serviceFeeDistributor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requirements","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultTntMinExposureBps","inputs":[{"name":"minExposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setJobEventRates","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndexes","type":"uint8[]","internalType":"uint8[]"},{"name":"rates","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMBSMRegistry","inputs":[{"name":"registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxBlueprintsPerOperator","inputs":[{"name":"newMax","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMetricsRecorder","inputs":[{"name":"recorder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatusRegistry","inputs":[{"name":"registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaymentSplit","inputs":[{"name":"split","type":"tuple","internalType":"struct Types.PaymentSplit","components":[{"name":"developerBps","type":"uint16","internalType":"uint16"},{"name":"protocolBps","type":"uint16","internalType":"uint16"},{"name":"operatorBps","type":"uint16","internalType":"uint16"},{"name":"stakerBps","type":"uint16","internalType":"uint16"},{"name":"keeperBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceOracle","inputs":[{"name":"oracle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRewardVaults","inputs":[{"name":"vaults","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setServiceFeeDistributor","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashConfig","inputs":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaking","inputs":[{"name":"staking","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTntPaymentDiscountBps","inputs":[{"name":"discountBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTntToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitJob","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitJobFromQuote","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedJobQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.JobQuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"uint8"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"result","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitResults","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callIds","type":"uint64[]","internalType":"uint64[]"},{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"teeNonceFor","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"terminateService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"terminateServiceForNonPayment","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tntPaymentDiscountBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"tntToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"manager","type":"address","indexed":false,"internalType":"address"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BlueprintDeactivated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintResourceRequirementsSet","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintTransferred","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlueprintUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"JobCompleted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"JobResultSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmittedFromQuote","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"quotedOperators","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"totalPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OperatorJoinedService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"exposureBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"OperatorLeftService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorPreferencesUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRewardAccrued","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnregistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentDistributed","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"grossAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"developerRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"developerAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"operatorPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"stakerPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RewardsClaimed","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceActivated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceApproved","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRejected","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRequested","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceRequestedWithSecurity","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceTerminated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"ServiceTerminatedForNonPayment","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"triggeredBy","type":"address","indexed":true,"internalType":"address"},{"name":"dueAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"graceEndsAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"requiredAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"escrowBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashCancelled","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"canceller","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashConfigUpdated","inputs":[{"name":"disputeWindow","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","indexed":false,"internalType":"bool"},{"name":"maxSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"disputeBond","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SlashDisputed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"disputer","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashExecuted","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"actualSlashed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashProposed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"proposer","type":"address","indexed":false,"internalType":"address"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"evidence","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"executeAfter","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"SubscriptionBilled","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"period","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPermittedCaller(uint64,address)":"815d6a26","approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":"6a46006b","billSubscription(uint64)":"cf3806c6","billSubscriptionBatch(uint64[])":"da232ded","blsPopMessage(address,uint256[4])":"433615a2","blueprintCount()":"c602d4fa","blueprintMasterRevision(uint64)":"ff14a940","blueprintMetadata(uint64)":"430ce118","blueprintOperatorCount(uint64)":"8d3f65be","blueprintSources(uint64)":"335ea071","blueprintSupportedMemberships(uint64)":"df57f527","canScheduleExit(uint64,address)":"27b37565","cancelExit(uint64)":"cbd8da63","cancelSlash(uint64,string)":"06079dc5","claimDisputeBond()":"ead1df17","claimRewards()":"372500ab","claimRewards(address)":"ef5cfb8c","claimRewardsAll()":"62b83dda","claimRewardsBatch(address[])":"8602bba0","createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":"3022f66c","createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":"458a69a0","deactivateBlueprint(uint64)":"449bb849","defaultTntMinExposureBps()":"8eb435a5","disputeSlash(uint64,string)":"77380c74","executeExit(uint64)":"b7c18207","executeSlash(uint64)":"a5bfbae4","executeSlashBatch(uint64[])":"b055449b","expireServiceRequest(uint64)":"e07a86bd","extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":"ebb7d84b","forceExit(uint64,address)":"aea65925","forceRemoveOperator(uint64,address)":"684d89f5","fundService(uint64,uint256)":"970e08fe","getBillableServices(uint64[])":"93f3ddaf","getBlueprint(uint64)":"b7696dbb","getBlueprintConfig(uint64)":"563a89f9","getBlueprintDefinition(uint64)":"6171fea8","getBlueprintResourceRequirements(uint64)":"349e961a","getExecutableSlashes(uint64,uint64)":"110f829b","getExitConfig(uint64)":"d2672ed4","getExitRequest(uint64,address)":"9dcc5a93","getExitStatus(uint64,address)":"427ffde9","getJobCall(uint64,uint64)":"a672bc0a","getJobEventRate(uint64,uint8)":"f9333bb1","getJobQuotedOperators(uint64,uint64)":"038dda6c","getJobQuotedPrice(uint64,uint64,address)":"fca78d2d","getOperatorBlsPubkey(uint64,address)":"6ee5bcff","getOperatorPreferences(uint64,address)":"f32f9673","getOperatorPublicKey(uint64,address)":"180cae67","getOperatorRegistration(uint64,address)":"6bda42f3","getOperatorTotalActiveServices(address)":"0ded8bf9","getService(uint64)":"3dc0d5fe","getServiceEscrow(uint64)":"eb8c3bcd","getServiceOperator(uint64,address)":"842524bb","getServiceOperators(uint64)":"bb207f1f","getServiceRequest(uint64)":"5f9b4dfa","getServiceRequestResourceRequirements(uint64)":"a305fb44","getServiceRequestSecurityCommitments(uint64,address)":"05bb3aa3","getServiceRequestSecurityRequirements(uint64)":"e5f797f2","getServiceResourceCommitmentHash(uint64,address)":"e4c0b756","getServiceSecurityCommitments(uint64,address)":"a0b0c62a","getServiceSecurityRequirements(uint64)":"d8644e52","getSlashConfig()":"8fc3b8b3","getSlashProposal(uint64)":"ef1b42a2","getTeeCommitmentRoot(uint64,address)":"a7d282f4","isOperatorRegistered(uint64,address)":"64462595","isPermittedCaller(uint64,address)":"2ec2bd03","isServiceActive(uint64)":"2f46279f","isServiceOperator(uint64,address)":"a595b21e","joinService(uint64,uint16)":"2b9da71a","joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":"d563701f","leaveService(uint64)":"6778afbc","maxBlueprintsPerOperator()":"5ece2405","mbsmRegistry()":"26c9887b","metricsRecorder()":"2dae1885","operatorStatusRegistry()":"d390bbbb","pause()":"8456cb59","paymentSplit()":"aac7416b","pendingDisputeBondRefund(address)":"8c2f4ee4","pendingRewards(address)":"31d7a262","pendingRewards(address,address)":"80ac8228","preRegister(uint64)":"18c68017","priceOracle()":"2630c12f","proposeSlash(uint64,address,uint16,bytes32)":"0472d2ff","registerOperator(uint64,bytes,string)":"d4e1ab7c","registerOperator(uint64,bytes,string,bytes)":"7324e916","rejectService(uint64)":"6d8b88c3","removePermittedCaller(uint64,address)":"5f359924","requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":"c841e26e","requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":"327d6898","requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":"4c540ec1","rewardTokens(address)":"f5ab16cc","rewardVaults()":"9ebd65ad","scheduleExit(uint64)":"b607ba59","serviceCount()":"06237526","serviceFeeDistributor()":"2e40f7fb","setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":"e830bff6","setDefaultTntMinExposureBps(uint16)":"78d66be3","setJobEventRates(uint64,uint8[],uint256[])":"c1d71304","setMBSMRegistry(address)":"5f807d0a","setMaxBlueprintsPerOperator(uint32)":"1d77351b","setMetricsRecorder(address)":"20812956","setOperatorStatusRegistry(address)":"6a64a27e","setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":"45d8a0b3","setPriceOracle(address)":"530e784f","setRewardVaults(address)":"43a6307d","setServiceFeeDistributor(address)":"fbcc7b3d","setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":"72155d50","setStaking(address)":"8ff39099","setTntPaymentDiscountBps(uint16)":"893a88cd","setTntToken(address)":"9fb43d4c","setTreasury(address)":"f0f44260","submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":"c325ae12","submitJob(uint64,uint8,bytes)":"3413e8ee","submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":"52ada2be","submitResult(uint64,uint64,bytes)":"2d07e655","submitResults(uint64,uint64[],bytes[])":"aacdba9f","teeNonceFor(uint64)":"365e1439","terminateService(uint64)":"5b71c934","terminateServiceForNonPayment(uint64)":"13d36a66","tntPaymentDiscountBps()":"cdd3d5ba","tntToken()":"e3969617","transferBlueprint(uint64,address)":"8a4cf763","treasury()":"61d027b3","unpause()":"3f4ba83a","unregisterOperator(uint64)":"0afd3738","updateBlueprint(uint64,string,bytes32)":"c77f959b","updateOperatorPreferences(uint64,bytes,string)":"909eac24","withdrawRemainingEscrow(uint64)":"9dfb6100"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"BlueprintResourceRequirementsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"BlueprintTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"JobCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"JobResultSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"quotedOperators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmittedFromQuote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"OperatorJoinedService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeftService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorPreferencesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorRewardAccrued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"grossAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"developerRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"developerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorPoolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakerPoolAmount\",\"type\":\"uint256\"}],\"name\":\"PaymentDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequestedWithSecurity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"ServiceTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"dueAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"graceEndsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"escrowBalance\",\"type\":\"uint256\"}],\"name\":\"ServiceTerminatedForNonPayment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"canceller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"SlashConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"name\":\"SlashExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"SlashProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"}],\"name\":\"SubscriptionBilled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"addPermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"},{\"internalType\":\"uint256[2]\",\"name\":\"blsPopSignature\",\"type\":\"uint256[2]\"},{\"components\":[{\"internalType\":\"enum Types.TeeBackend\",\"name\":\"backend\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"expectedMeasurement\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"nonceBinding\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expiresAt\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.TeeAttestationCommitment[]\",\"name\":\"teeCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.ApprovalParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"approveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"billSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"billSubscriptionBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBilled\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"billedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"blsPopMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blueprintCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMasterRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSources\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSupportedMemberships\",\"outputs\":[{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"memberships\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canScheduleExit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canExit\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"cancelExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"cancelSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDisputeBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardsAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"claimRewardsBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"name\":\"createBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"createServiceFromQuotes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"deactivateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultTntMinExposureBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"disputeSlash\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"executeExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"slashIds\",\"type\":\"uint64[]\"}],\"name\":\"executeSlashBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"expireServiceRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"extensionDuration\",\"type\":\"uint64\"}],\"name\":\"extendServiceFromQuotes\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceRemoveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundService\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"getBillableServices\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"billable\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprint\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.Blueprint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintDefinition\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"toId\",\"type\":\"uint64\"}],\"name\":\"getExecutableSlashes\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"scheduledAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitStatus\",\"outputs\":[{\"internalType\":\"enum Types.ExitStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobCall\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultCount\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRFQ\",\"type\":\"bool\"}],\"internalType\":\"struct Types.JobCall\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getJobEventRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobQuotedOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getJobQuotedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlsPubkey\",\"outputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPreferences\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"internalType\":\"struct Types.OperatorPreferences\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRegistration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"registeredAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"updatedAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"online\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorRegistration\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorTotalActiveServices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"terminatedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastPaymentAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ServiceStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceEscrow\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDeposited\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__reserved0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionBaselineStake\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentLib.ServiceEscrow\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"joinedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leftAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"approvalCount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"rejected\",\"type\":\"bool\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"activated\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceRequestSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceResourceCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSlashConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"internalType\":\"struct SlashingLib.SlashConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"enum SlashingLib.SlashStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"disputeReason\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"disputedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"disputeDeadline\",\"type\":\"uint64\"}],\"internalType\":\"struct SlashingLib.SlashProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getTeeCommitmentRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"isServiceActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isServiceOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"joinService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"}],\"name\":\"joinServiceWithCommitments\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"leaveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBlueprintsPerOperator\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mbsmRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metricsRecorder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorStatusRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentSplit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"developerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"protocolBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operatorBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stakerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"keeperBps\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"name\":\"pendingDisputeBondRefund\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"preRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"proposeSlash\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"rejectService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"removePermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"exposureBps\",\"type\":\"uint16[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithExposure\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"securityRequirements\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithSecurity\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardVaults\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"scheduleExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceFeeDistributor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"requirements\",\"type\":\"tuple[]\"}],\"name\":\"setBlueprintResourceRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultTntMinExposureBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8[]\",\"name\":\"jobIndexes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rates\",\"type\":\"uint256[]\"}],\"name\":\"setJobEventRates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"setMBSMRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"newMax\",\"type\":\"uint32\"}],\"name\":\"setMaxBlueprintsPerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"}],\"name\":\"setMetricsRecorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"setOperatorStatusRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"developerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"protocolBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operatorBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stakerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"keeperBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.PaymentSplit\",\"name\":\"split\",\"type\":\"tuple\"}],\"name\":\"setPaymentSplit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setPriceOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaults\",\"type\":\"address\"}],\"name\":\"setRewardVaults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"setServiceFeeDistributor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"setSlashConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staking\",\"type\":\"address\"}],\"name\":\"setStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"discountBps\",\"type\":\"uint16\"}],\"name\":\"setTntPaymentDiscountBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"setTntToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"submitAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"submitJob\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.JobQuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedJobQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"}],\"name\":\"submitJobFromQuote\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"submitResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64[]\",\"name\":\"callIds\",\"type\":\"uint64[]\"},{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"name\":\"submitResults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"teeNonceFor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateServiceForNonPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tntPaymentDiscountBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tntToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"updateOperatorPreferences\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"withdrawRemainingEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"details\":\"Derive resultCount from getJobCall(serviceId, callId).resultCount\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The updated ECDSA public key (may be empty if unchanged)\",\"operator\":\"The operator address\",\"rpcAddress\":\"The updated RPC endpoint (may be empty if unchanged)\"}},\"OperatorRegistered(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity\",\"operator\":\"The operator address (wallet)\",\"rpcAddress\":\"The operator's RPC endpoint\"}}},\"kind\":\"dev\",\"methods\":{\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"details\":\"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in \\u2014 protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile.\"},\"claimDisputeBond()\":{\"details\":\"Pull-pattern (Round 3 audit fix for economic F3). The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block.\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"params\":{\"definition\":\"Fully populated blueprint definition struct\"},\"returns\":{\"blueprintId\":\"The new blueprint ID\"}},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"details\":\"No approval flow needed - operators have pre-committed via signatures\",\"params\":{\"blueprintId\":\"The blueprint to use\",\"config\":\"Service configuration\",\"permittedCallers\":\"Addresses allowed to call jobs\",\"quotes\":\"Array of signed quotes from operators\",\"ttl\":\"Service time-to-live (must match quotes)\"}},\"disputeSlash(uint64,string)\":{\"details\":\"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles.\"},\"expireServiceRequest(uint64)\":{\"details\":\"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window.\"},\"forceRemoveOperator(uint64,address)\":{\"params\":{\"operator\":\"The operator to remove\",\"serviceId\":\"The service ID\"}},\"getOperatorBlsPubkey(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"blsPubkey\":\"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered\"}},\"getOperatorPublicKey(uint64,address)\":{\"details\":\"Returns the key used for signing/verifying gossip messages\"},\"getOperatorTotalActiveServices(address)\":{\"params\":{\"operator\":\"The operator address\"},\"returns\":{\"count\":\"Total number of active services the operator is part of\"}},\"getServiceResourceCommitmentHash(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)\"}},\"getTeeCommitmentRoot(uint64,address)\":{\"details\":\"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"params\":{\"evidence\":\"Evidence hash\",\"operator\":\"The operator to slash\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"},\"returns\":{\"slashId\":\"The ID of the created slash proposal\"}},\"registerOperator(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to register for\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)\",\"rpcAddress\":\"The operator's RPC endpoint URL\"}},\"registerOperator(uint64,bytes,string,bytes)\":{\"params\":{\"registrationInputs\":\"Encoded payload validated by blueprint's schema\"}},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"details\":\"Each operator must provide security commitments matching these requirements when approving\"},\"rewardTokens(address)\":{\"details\":\"Convenience view; mappings are not enumerable.\"},\"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))\":{\"params\":{\"split\":\"The new split configuration\"}},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"params\":{\"disputeBond\":\"Native asset bond required to dispute (0 = disabled)\",\"disputeResolutionDeadline\":\"How long SLASH_ADMIN has to resolve a dispute\",\"maxPendingSlashesPerOperator\":\"Cap on concurrent pending slashes per operator\"}},\"setStaking(address)\":{\"params\":{\"staking\":\"The IStaking implementation\"}},\"setTreasury(address)\":{\"params\":{\"treasury\":\"The treasury address\"}},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Only valid for jobs where requiresAggregation returns true\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key [x0, x1, y0, y1]\",\"aggregatedSignature\":\"The aggregated BLS signature [x, y]\",\"callId\":\"The job call ID\",\"output\":\"The aggregated output data\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap indicating which operators signed (bit i = operator i in service)\"}},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"params\":{\"inputs\":\"Encoded job parameters\",\"jobIndex\":\"The job type index\",\"quotes\":\"Array of signed quotes from operators\",\"serviceId\":\"The service ID\"}},\"updateOperatorPreferences(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to update preferences for\",\"ecdsaPublicKey\":\"New ECDSA public key (pass empty bytes to keep unchanged)\",\"rpcAddress\":\"New RPC endpoint (pass empty string to keep unchanged)\"}}},\"title\":\"ITangleFull\",\"version\":1},\"userdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"notice\":\"Emitted when a job reaches its required result threshold\"},\"JobSubmittedFromQuote(uint64,uint64,uint8,address,address[],uint256,bytes)\":{\"notice\":\"Emitted when a job is submitted via RFQ with signed operator quotes\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator updates their preferences\"},\"OperatorRegistered(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator registers for a blueprint\"}},\"kind\":\"user\",\"methods\":{\"addPermittedCaller(uint64,address)\":{\"notice\":\"Add a permitted caller to a service\"},\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"notice\":\"Approve a service request as one of its operators.\"},\"billSubscription(uint64)\":{\"notice\":\"Bill a subscription service for the current period\"},\"billSubscriptionBatch(uint64[])\":{\"notice\":\"Bill multiple subscription services in one call\"},\"blsPopMessage(address,uint256[4])\":{\"notice\":\"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator.\"},\"blueprintCount()\":{\"notice\":\"Get current blueprint count\"},\"blueprintMasterRevision(uint64)\":{\"notice\":\"Get master blueprint revision\"},\"blueprintMetadata(uint64)\":{\"notice\":\"Get blueprint metadata and URI\"},\"blueprintOperatorCount(uint64)\":{\"notice\":\"Get number of operators for a blueprint\"},\"blueprintSources(uint64)\":{\"notice\":\"Get blueprint sources\"},\"blueprintSupportedMemberships(uint64)\":{\"notice\":\"Get blueprint supported membership models\"},\"canScheduleExit(uint64,address)\":{\"notice\":\"Check if operator can schedule exit now\"},\"cancelExit(uint64)\":{\"notice\":\"Cancel a scheduled exit before execution\"},\"cancelSlash(uint64,string)\":{\"notice\":\"Cancel a slash proposal\"},\"claimDisputeBond()\":{\"notice\":\"Claim a dispute bond previously refunded via `cancelSlash`.\"},\"claimRewards()\":{\"notice\":\"Claim accumulated rewards (native token)\"},\"claimRewards(address)\":{\"notice\":\"Claim accumulated rewards for a specific token\"},\"claimRewardsAll()\":{\"notice\":\"Claim accumulated rewards for all pending tokens\"},\"claimRewardsBatch(address[])\":{\"notice\":\"Claim accumulated rewards for multiple tokens\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"notice\":\"Create a blueprint from an encoded definition that includes schemas and job metadata\"},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"notice\":\"Create a service instantly using pre-signed operator quotes\"},\"deactivateBlueprint(uint64)\":{\"notice\":\"Deactivate a blueprint\"},\"defaultTntMinExposureBps()\":{\"notice\":\"Get default TNT min exposure bps\"},\"disputeSlash(uint64,string)\":{\"notice\":\"Dispute a slash proposal\"},\"executeExit(uint64)\":{\"notice\":\"Execute a scheduled exit after the queue delay\"},\"executeSlash(uint64)\":{\"notice\":\"Execute a slash proposal\"},\"executeSlashBatch(uint64[])\":{\"notice\":\"Execute a batch of slashes\"},\"expireServiceRequest(uint64)\":{\"notice\":\"Permissionlessly expire a stale service request and refund the requester.\"},\"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)\":{\"notice\":\"Extend a service using pre-signed operator quotes\"},\"forceExit(uint64,address)\":{\"notice\":\"Force exit an operator from a service (if permitted by config)\"},\"forceRemoveOperator(uint64,address)\":{\"notice\":\"Force remove an operator from a service (blueprint manager only)\"},\"fundService(uint64,uint256)\":{\"notice\":\"Fund a service escrow balance\"},\"getBillableServices(uint64[])\":{\"notice\":\"Get billable services from a list of candidates\"},\"getBlueprint(uint64)\":{\"notice\":\"Get blueprint info\"},\"getBlueprintConfig(uint64)\":{\"notice\":\"Get blueprint configuration\"},\"getBlueprintDefinition(uint64)\":{\"notice\":\"Get the original blueprint definition\"},\"getBlueprintResourceRequirements(uint64)\":{\"notice\":\"Get default resource requirements for a blueprint\"},\"getExecutableSlashes(uint64,uint64)\":{\"notice\":\"Get list of executable slash IDs in a range\"},\"getExitConfig(uint64)\":{\"notice\":\"Get exit configuration for a service\"},\"getExitRequest(uint64,address)\":{\"notice\":\"Get exit request for an operator\"},\"getExitStatus(uint64,address)\":{\"notice\":\"Get exit status for an operator\"},\"getJobCall(uint64,uint64)\":{\"notice\":\"Get job call info\"},\"getJobEventRate(uint64,uint8)\":{\"notice\":\"Get the effective event rate for a specific job type\"},\"getJobQuotedOperators(uint64,uint64)\":{\"notice\":\"Get the quoted operators for an RFQ job\"},\"getJobQuotedPrice(uint64,uint64,address)\":{\"notice\":\"Get a quoted operator's price for an RFQ job\"},\"getOperatorBlsPubkey(uint64,address)\":{\"notice\":\"Get operator's BLS public key for a service\"},\"getOperatorPreferences(uint64,address)\":{\"notice\":\"Get operator preferences for a blueprint (includes ECDSA public key)\"},\"getOperatorPublicKey(uint64,address)\":{\"notice\":\"Get operator's ECDSA public key for gossip network identity\"},\"getOperatorRegistration(uint64,address)\":{\"notice\":\"Get operator registration for a blueprint\"},\"getOperatorTotalActiveServices(address)\":{\"notice\":\"Get total count of active services for an operator across all blueprints\"},\"getService(uint64)\":{\"notice\":\"Get service info\"},\"getServiceEscrow(uint64)\":{\"notice\":\"Get service escrow details\"},\"getServiceOperator(uint64,address)\":{\"notice\":\"Get operator info for a service\"},\"getServiceOperators(uint64)\":{\"notice\":\"Get the list of operators for a service\"},\"getServiceRequest(uint64)\":{\"notice\":\"Get service request\"},\"getServiceRequestResourceRequirements(uint64)\":{\"notice\":\"Get resource requirements for a service request\"},\"getServiceRequestSecurityCommitments(uint64,address)\":{\"notice\":\"Get security commitments for a service request by operator\"},\"getServiceRequestSecurityRequirements(uint64)\":{\"notice\":\"Get security requirements for a service request\"},\"getServiceResourceCommitmentHash(uint64,address)\":{\"notice\":\"Get the resource commitment hash for an operator in a service\"},\"getServiceSecurityCommitments(uint64,address)\":{\"notice\":\"Get persisted security commitments for an active service by operator\"},\"getServiceSecurityRequirements(uint64)\":{\"notice\":\"Get persisted security requirements for an active service\"},\"getSlashConfig()\":{\"notice\":\"Get current slashing configuration\"},\"getSlashProposal(uint64)\":{\"notice\":\"Get slash proposal details\"},\"getTeeCommitmentRoot(uint64,address)\":{\"notice\":\"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service.\"},\"isOperatorRegistered(uint64,address)\":{\"notice\":\"Check if operator is registered for a blueprint\"},\"isPermittedCaller(uint64,address)\":{\"notice\":\"Check if address can call jobs on service\"},\"isServiceActive(uint64)\":{\"notice\":\"Check if service is active\"},\"isServiceOperator(uint64,address)\":{\"notice\":\"Check if address is operator in service\"},\"joinService(uint64,uint16)\":{\"notice\":\"Join an active service (Dynamic membership only)\"},\"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])\":{\"notice\":\"Join an active service with per-asset security commitments (Dynamic membership only)\"},\"leaveService(uint64)\":{\"notice\":\"Leave an active service (Dynamic membership only)\"},\"maxBlueprintsPerOperator()\":{\"notice\":\"Get max blueprints per operator\"},\"mbsmRegistry()\":{\"notice\":\"Get Master Blueprint Service Manager registry\"},\"metricsRecorder()\":{\"notice\":\"Get the metrics recorder address\"},\"operatorStatusRegistry()\":{\"notice\":\"Get operator status registry\"},\"pause()\":{\"notice\":\"Pause the protocol\"},\"paymentSplit()\":{\"notice\":\"Get the current payment split\"},\"pendingDisputeBondRefund(address)\":{\"notice\":\"Read pending dispute-bond refund balance for a disputer.\"},\"pendingRewards(address)\":{\"notice\":\"Get pending rewards for an account (native token)\"},\"pendingRewards(address,address)\":{\"notice\":\"Get pending rewards for an account and token\"},\"preRegister(uint64)\":{\"notice\":\"Signal intent to register for a blueprint\"},\"priceOracle()\":{\"notice\":\"Get price oracle\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"notice\":\"Propose a slash against an operator\"},\"registerOperator(uint64,bytes,string)\":{\"notice\":\"Register as operator for a blueprint\"},\"registerOperator(uint64,bytes,string,bytes)\":{\"notice\":\"Register as operator providing blueprint-specific registration inputs\"},\"rejectService(uint64)\":{\"notice\":\"Reject a service request (as operator)\"},\"removePermittedCaller(uint64,address)\":{\"notice\":\"Remove a permitted caller from a service\"},\"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a new service\"},\"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with explicit exposure commitments\"},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with multi-asset security requirements\"},\"rewardTokens(address)\":{\"notice\":\"List tokens with non-zero pending rewards for an account\"},\"rewardVaults()\":{\"notice\":\"Get reward vaults address\"},\"scheduleExit(uint64)\":{\"notice\":\"Schedule exit from an active service when exit queues are enabled\"},\"serviceCount()\":{\"notice\":\"Get current service count\"},\"serviceFeeDistributor()\":{\"notice\":\"Get service fee distributor\"},\"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])\":{\"notice\":\"Set default resource requirements for a blueprint (owner only)\"},\"setDefaultTntMinExposureBps(uint16)\":{\"notice\":\"Set default TNT min exposure bps\"},\"setJobEventRates(uint64,uint8[],uint256[])\":{\"notice\":\"Set event rate overrides for one or more job types in a blueprint\"},\"setMBSMRegistry(address)\":{\"notice\":\"Configure Master Blueprint Service Manager registry\"},\"setMaxBlueprintsPerOperator(uint32)\":{\"notice\":\"Set max blueprints per operator\"},\"setMetricsRecorder(address)\":{\"notice\":\"Set the metrics recorder (optional)\"},\"setOperatorStatusRegistry(address)\":{\"notice\":\"Set operator status registry\"},\"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))\":{\"notice\":\"Set the payment split configuration\"},\"setPriceOracle(address)\":{\"notice\":\"Configure price oracle\"},\"setRewardVaults(address)\":{\"notice\":\"Set reward vaults address\"},\"setServiceFeeDistributor(address)\":{\"notice\":\"Configure service fee distributor\"},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"notice\":\"Update slashing configuration\"},\"setStaking(address)\":{\"notice\":\"Set the staking module\"},\"setTntPaymentDiscountBps(uint16)\":{\"notice\":\"Set TNT payment discount bps\"},\"setTntToken(address)\":{\"notice\":\"Set TNT token address\"},\"setTreasury(address)\":{\"notice\":\"Set the protocol treasury\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Submit an aggregated BLS result for a job\"},\"submitJob(uint64,uint8,bytes)\":{\"notice\":\"Submit a job to a service\"},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"notice\":\"Submit a job using signed operator price quotes (RFQ)\"},\"submitResult(uint64,uint64,bytes)\":{\"notice\":\"Submit a job result (as operator)\"},\"submitResults(uint64,uint64[],bytes[])\":{\"notice\":\"Submit multiple results in one transaction\"},\"teeNonceFor(uint64)\":{\"notice\":\"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request \\u2014 it eliminates cross-request attestation replay at approval time.\"},\"terminateService(uint64)\":{\"notice\":\"Terminate a service (as owner)\"},\"terminateServiceForNonPayment(uint64)\":{\"notice\":\"Permissionlessly terminate an unpaid subscription after grace period\"},\"tntPaymentDiscountBps()\":{\"notice\":\"Get TNT payment discount bps\"},\"tntToken()\":{\"notice\":\"Get TNT token address\"},\"transferBlueprint(uint64,address)\":{\"notice\":\"Transfer blueprint ownership\"},\"treasury()\":{\"notice\":\"Get the configured treasury\"},\"unpause()\":{\"notice\":\"Unpause the protocol\"},\"unregisterOperator(uint64)\":{\"notice\":\"Unregister from a blueprint\"},\"updateBlueprint(uint64,string,bytes32)\":{\"notice\":\"Update blueprint metadata\"},\"updateOperatorPreferences(uint64,bytes,string)\":{\"notice\":\"Update operator preferences for a blueprint\"},\"withdrawRemainingEscrow(uint64)\":{\"notice\":\"Withdraw remaining escrow after termination\"}},\"notice\":\"Complete Tangle interface including admin and slashing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangle.sol\":\"ITangleFull\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/interfaces/ITangle.sol\":{\"keccak256\":\"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd\",\"dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ\"]},\"src/interfaces/ITangleBlueprints.sol\":{\"keccak256\":\"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798\",\"dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF\"]},\"src/interfaces/ITangleJobs.sol\":{\"keccak256\":\"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47\",\"dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd\"]},\"src/interfaces/ITangleOperators.sol\":{\"keccak256\":\"0x02f071be69aa0d19e5d8e2f46d7eb95f31e2b6a4801700fd5b2e6728d4940223\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4581cf0c4f6ce041ca72dd65f55f7507b9dd548830c548a36adaba950cfa165\",\"dweb:/ipfs/QmWr2cLcKXZFkDpaFm6CbHRcdbzBfpqaDTQwyYAR9Qc1ve\"]},\"src/interfaces/ITangleRewards.sol\":{\"keccak256\":\"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5\",\"dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR\"]},\"src/interfaces/ITangleServices.sol\":{\"keccak256\":\"0xcd35629b25a9847d724bddc21486da34d8c44b0d00797b64ae1214da40e61cd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6f9e1b3213fe403193fc265332a51c18682ec5ccd91afae6686812dff2f5e0\",\"dweb:/ipfs/QmSCeKYPezdMFymA2FeKZNjxFiDNj8UW8wj1p1WmbZ227E\"]},\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c\",\"dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622\",\"dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8\"]},\"src/libraries/PaymentLib.sol\":{\"keccak256\":\"0xcc483845f5c93b5302d30339cdff31a9dd4cced3bdb7c2fe41cdf34ac935c3eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adf3d00787ac1923d38bce0ca1f4a091af0000afe3929b01adb5d1f0395895e6\",\"dweb:/ipfs/QmZuP4gYXpbsqn6zFXB2D7HSo9FZrDe21b1YAaUEQqHwnF\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"manager","type":"address","indexed":false},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintCreated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"BlueprintDeactivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"BlueprintResourceRequirementsSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"BlueprintTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true}],"type":"event","name":"JobCompleted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false}],"type":"event","name":"JobResultSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":false},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"address[]","name":"quotedOperators","type":"address[]","indexed":false},{"internalType":"uint256","name":"totalPrice","type":"uint256","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmittedFromQuote","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint16","name":"exposureBps","type":"uint16","indexed":false}],"type":"event","name":"OperatorJoinedService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeftService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorPreferencesUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorRewardAccrued","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorUnregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"grossAmount","type":"uint256","indexed":false},{"internalType":"address","name":"developerRecipient","type":"address","indexed":false},{"internalType":"uint256","name":"developerAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"protocolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"operatorPoolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"stakerPoolAmount","type":"uint256","indexed":false}],"type":"event","name":"PaymentDistributed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardsClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceActivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceApproved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceRejected","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequestedWithSecurity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true}],"type":"event","name":"ServiceTerminated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"triggeredBy","type":"address","indexed":true},{"internalType":"uint64","name":"dueAt","type":"uint64","indexed":false},{"internalType":"uint64","name":"graceEndsAt","type":"uint64","indexed":false},{"internalType":"uint256","name":"requiredAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"escrowBalance","type":"uint256","indexed":false}],"type":"event","name":"ServiceTerminatedForNonPayment","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"canceller","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashCancelled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64","indexed":false},{"internalType":"bool","name":"instantSlashEnabled","type":"bool","indexed":false},{"internalType":"uint16","name":"maxSlashBps","type":"uint16","indexed":false},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64","indexed":false},{"internalType":"uint256","name":"disputeBond","type":"uint256","indexed":false},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false}],"type":"event","name":"SlashConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"disputer","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashDisputed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"actualSlashed","type":"uint256","indexed":false}],"type":"event","name":"SlashExecuted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16","indexed":false},{"internalType":"bytes32","name":"evidence","type":"bytes32","indexed":false},{"internalType":"uint64","name":"executeAfter","type":"uint64","indexed":false}],"type":"event","name":"SlashProposed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"period","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionBilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPermittedCaller"},{"inputs":[{"internalType":"struct Types.ApprovalParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"},{"internalType":"uint256[2]","name":"blsPopSignature","type":"uint256[2]"},{"internalType":"struct Types.TeeAttestationCommitment[]","name":"teeCommitments","type":"tuple[]","components":[{"internalType":"enum Types.TeeBackend","name":"backend","type":"uint8"},{"internalType":"bytes32","name":"expectedMeasurement","type":"bytes32"},{"internalType":"bytes32","name":"nonceBinding","type":"bytes32"},{"internalType":"uint64","name":"expiresAt","type":"uint64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"approveService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"billSubscription"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"billSubscriptionBatch","outputs":[{"internalType":"uint256","name":"totalBilled","type":"uint256"},{"internalType":"uint256","name":"billedCount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}],"stateMutability":"view","type":"function","name":"blsPopMessage","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blueprintCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMasterRevision","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMetadata","outputs":[{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSources","outputs":[{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSupportedMemberships","outputs":[{"internalType":"enum Types.MembershipModel[]","name":"memberships","type":"uint8[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canScheduleExit","outputs":[{"internalType":"bool","name":"canExit","type":"bool"},{"internalType":"string","name":"reason","type":"string"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelExit"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"cancelSlash"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimDisputeBond"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardsAll"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewardsBatch"},{"inputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createBlueprint","outputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"payable","type":"function","name":"createServiceFromQuotes","outputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deactivateBlueprint"},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultTntMinExposureBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"payable","type":"function","name":"disputeSlash"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeExit"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"uint64[]","name":"slashIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"executeSlashBatch","outputs":[{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"executedCount","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expireServiceRequest"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"uint64","name":"extensionDuration","type":"uint64"}],"stateMutability":"payable","type":"function","name":"extendServiceFromQuotes"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceExit"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceRemoveOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundService"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"getBillableServices","outputs":[{"internalType":"uint64[]","name":"billable","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprint","outputs":[{"internalType":"struct Types.Blueprint","name":"","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintConfig","outputs":[{"internalType":"struct Types.BlueprintConfig","name":"","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintDefinition","outputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"fromId","type":"uint64"},{"internalType":"uint64","name":"toId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExecutableSlashes","outputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"struct Types.ExitConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitRequest","outputs":[{"internalType":"struct Types.ExitRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"scheduledAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"bool","name":"pending","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitStatus","outputs":[{"internalType":"enum Types.ExitStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobCall","outputs":[{"internalType":"struct Types.JobCall","name":"","type":"tuple","components":[{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"resultCount","type":"uint32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"bool","name":"isRFQ","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getJobEventRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobQuotedOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getJobQuotedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlsPubkey","outputs":[{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPreferences","outputs":[{"internalType":"struct Types.OperatorPreferences","name":"","type":"tuple","components":[{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRegistration","outputs":[{"internalType":"struct Types.OperatorRegistration","name":"","type":"tuple","components":[{"internalType":"uint64","name":"registeredAt","type":"uint64"},{"internalType":"uint64","name":"updatedAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"online","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorTotalActiveServices","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getService","outputs":[{"internalType":"struct Types.Service","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint64","name":"terminatedAt","type":"uint64"},{"internalType":"uint64","name":"lastPaymentAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"enum Types.ServiceStatus","name":"status","type":"uint8"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceEscrow","outputs":[{"internalType":"struct PaymentLib.ServiceEscrow","name":"","type":"tuple","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalReleased","type":"uint256"},{"internalType":"uint256","name":"__reserved0","type":"uint256"},{"internalType":"uint256","name":"subscriptionBaselineStake","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceOperator","outputs":[{"internalType":"struct Types.ServiceOperator","name":"","type":"tuple","components":[{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"uint64","name":"joinedAt","type":"uint64"},{"internalType":"uint64","name":"leftAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequest","outputs":[{"internalType":"struct Types.ServiceRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"approvalCount","type":"uint32"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"bool","name":"rejected","type":"bool"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"bool","name":"activated","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceResourceCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSlashConfig","outputs":[{"internalType":"struct SlashingLib.SlashConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashProposal","outputs":[{"internalType":"struct SlashingLib.SlashProposal","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"},{"internalType":"uint64","name":"proposedAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"enum SlashingLib.SlashStatus","name":"status","type":"uint8"},{"internalType":"string","name":"disputeReason","type":"string"},{"internalType":"address","name":"disputer","type":"address"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint64","name":"disputedAt","type":"uint64"},{"internalType":"uint64","name":"disputeDeadline","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getTeeCommitmentRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"isServiceActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isServiceOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"joinService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"joinServiceWithCommitments"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"leaveService"},{"inputs":[],"stateMutability":"view","type":"function","name":"maxBlueprintsPerOperator","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mbsmRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metricsRecorder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorStatusRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paymentSplit","outputs":[{"internalType":"uint16","name":"developerBps","type":"uint16"},{"internalType":"uint16","name":"protocolBps","type":"uint16"},{"internalType":"uint16","name":"operatorBps","type":"uint16"},{"internalType":"uint16","name":"stakerBps","type":"uint16"},{"internalType":"uint16","name":"keeperBps","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"disputer","type":"address"}],"stateMutability":"view","type":"function","name":"pendingDisputeBondRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"preRegister"},{"inputs":[],"stateMutability":"view","type":"function","name":"priceOracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"proposeSlash","outputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"rejectService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePermittedCaller"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestService","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint16[]","name":"exposureBps","type":"uint16[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithExposure","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"struct Types.AssetSecurityRequirement[]","name":"securityRequirements","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithSecurity","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"rewardTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardVaults","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"scheduleExit"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceFeeDistributor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.ResourceCommitment[]","name":"requirements","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"setBlueprintResourceRequirements"},{"inputs":[{"internalType":"uint16","name":"minExposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultTntMinExposureBps"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8[]","name":"jobIndexes","type":"uint8[]"},{"internalType":"uint256[]","name":"rates","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setJobEventRates"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMBSMRegistry"},{"inputs":[{"internalType":"uint32","name":"newMax","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBlueprintsPerOperator"},{"inputs":[{"internalType":"address","name":"recorder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMetricsRecorder"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatusRegistry"},{"inputs":[{"internalType":"struct Types.PaymentSplit","name":"split","type":"tuple","components":[{"internalType":"uint16","name":"developerBps","type":"uint16"},{"internalType":"uint16","name":"protocolBps","type":"uint16"},{"internalType":"uint16","name":"operatorBps","type":"uint16"},{"internalType":"uint16","name":"stakerBps","type":"uint16"},{"internalType":"uint16","name":"keeperBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"setPaymentSplit"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceOracle"},{"inputs":[{"internalType":"address","name":"vaults","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardVaults"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setServiceFeeDistributor"},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setSlashConfig"},{"inputs":[{"internalType":"address","name":"staking","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setStaking"},{"inputs":[{"internalType":"uint16","name":"discountBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setTntPaymentDiscountBps"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTntToken"},{"inputs":[{"internalType":"address","name":"treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"submitAggregatedResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"submitJob","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"struct Types.SignedJobQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.JobQuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"uint8","name":"confidentiality","type":"uint8"}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]}],"stateMutability":"payable","type":"function","name":"submitJobFromQuote","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64[]","name":"callIds","type":"uint64[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitResults"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"teeNonceFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateServiceForNonPayment"},{"inputs":[],"stateMutability":"view","type":"function","name":"tntPaymentDiscountBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tntToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferBlueprint"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorPreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrow"}],"devdoc":{"kind":"dev","methods":{"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"details":"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in — protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile."},"claimDisputeBond()":{"details":"Pull-pattern (Round 3 audit fix for economic F3). The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block."},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"params":{"definition":"Fully populated blueprint definition struct"},"returns":{"blueprintId":"The new blueprint ID"}},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"details":"No approval flow needed - operators have pre-committed via signatures","params":{"blueprintId":"The blueprint to use","config":"Service configuration","permittedCallers":"Addresses allowed to call jobs","quotes":"Array of signed quotes from operators","ttl":"Service time-to-live (must match quotes)"}},"disputeSlash(uint64,string)":{"details":"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles."},"expireServiceRequest(uint64)":{"details":"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window."},"forceRemoveOperator(uint64,address)":{"params":{"operator":"The operator to remove","serviceId":"The service ID"}},"getOperatorBlsPubkey(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"blsPubkey":"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered"}},"getOperatorPublicKey(uint64,address)":{"details":"Returns the key used for signing/verifying gossip messages"},"getOperatorTotalActiveServices(address)":{"params":{"operator":"The operator address"},"returns":{"count":"Total number of active services the operator is part of"}},"getServiceResourceCommitmentHash(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)"}},"getTeeCommitmentRoot(uint64,address)":{"details":"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`."},"proposeSlash(uint64,address,uint16,bytes32)":{"params":{"evidence":"Evidence hash","operator":"The operator to slash","serviceId":"The service where violation occurred","slashBps":"Slash percentage in basis points"},"returns":{"slashId":"The ID of the created slash proposal"}},"registerOperator(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to register for","ecdsaPublicKey":"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)","rpcAddress":"The operator's RPC endpoint URL"}},"registerOperator(uint64,bytes,string,bytes)":{"params":{"registrationInputs":"Encoded payload validated by blueprint's schema"}},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"details":"Each operator must provide security commitments matching these requirements when approving"},"rewardTokens(address)":{"details":"Convenience view; mappings are not enumerable."},"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":{"params":{"split":"The new split configuration"}},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"params":{"disputeBond":"Native asset bond required to dispute (0 = disabled)","disputeResolutionDeadline":"How long SLASH_ADMIN has to resolve a dispute","maxPendingSlashesPerOperator":"Cap on concurrent pending slashes per operator"}},"setStaking(address)":{"params":{"staking":"The IStaking implementation"}},"setTreasury(address)":{"params":{"treasury":"The treasury address"}},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Only valid for jobs where requiresAggregation returns true","params":{"aggregatedPubkey":"The aggregated public key [x0, x1, y0, y1]","aggregatedSignature":"The aggregated BLS signature [x, y]","callId":"The job call ID","output":"The aggregated output data","serviceId":"The service ID","signerBitmap":"Bitmap indicating which operators signed (bit i = operator i in service)"}},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"params":{"inputs":"Encoded job parameters","jobIndex":"The job type index","quotes":"Array of signed quotes from operators","serviceId":"The service ID"}},"updateOperatorPreferences(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to update preferences for","ecdsaPublicKey":"New ECDSA public key (pass empty bytes to keep unchanged)","rpcAddress":"New RPC endpoint (pass empty string to keep unchanged)"}}},"version":1},"userdoc":{"kind":"user","methods":{"addPermittedCaller(uint64,address)":{"notice":"Add a permitted caller to a service"},"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"notice":"Approve a service request as one of its operators."},"billSubscription(uint64)":{"notice":"Bill a subscription service for the current period"},"billSubscriptionBatch(uint64[])":{"notice":"Bill multiple subscription services in one call"},"blsPopMessage(address,uint256[4])":{"notice":"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator."},"blueprintCount()":{"notice":"Get current blueprint count"},"blueprintMasterRevision(uint64)":{"notice":"Get master blueprint revision"},"blueprintMetadata(uint64)":{"notice":"Get blueprint metadata and URI"},"blueprintOperatorCount(uint64)":{"notice":"Get number of operators for a blueprint"},"blueprintSources(uint64)":{"notice":"Get blueprint sources"},"blueprintSupportedMemberships(uint64)":{"notice":"Get blueprint supported membership models"},"canScheduleExit(uint64,address)":{"notice":"Check if operator can schedule exit now"},"cancelExit(uint64)":{"notice":"Cancel a scheduled exit before execution"},"cancelSlash(uint64,string)":{"notice":"Cancel a slash proposal"},"claimDisputeBond()":{"notice":"Claim a dispute bond previously refunded via `cancelSlash`."},"claimRewards()":{"notice":"Claim accumulated rewards (native token)"},"claimRewards(address)":{"notice":"Claim accumulated rewards for a specific token"},"claimRewardsAll()":{"notice":"Claim accumulated rewards for all pending tokens"},"claimRewardsBatch(address[])":{"notice":"Claim accumulated rewards for multiple tokens"},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"notice":"Create a blueprint from an encoded definition that includes schemas and job metadata"},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"notice":"Create a service instantly using pre-signed operator quotes"},"deactivateBlueprint(uint64)":{"notice":"Deactivate a blueprint"},"defaultTntMinExposureBps()":{"notice":"Get default TNT min exposure bps"},"disputeSlash(uint64,string)":{"notice":"Dispute a slash proposal"},"executeExit(uint64)":{"notice":"Execute a scheduled exit after the queue delay"},"executeSlash(uint64)":{"notice":"Execute a slash proposal"},"executeSlashBatch(uint64[])":{"notice":"Execute a batch of slashes"},"expireServiceRequest(uint64)":{"notice":"Permissionlessly expire a stale service request and refund the requester."},"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":{"notice":"Extend a service using pre-signed operator quotes"},"forceExit(uint64,address)":{"notice":"Force exit an operator from a service (if permitted by config)"},"forceRemoveOperator(uint64,address)":{"notice":"Force remove an operator from a service (blueprint manager only)"},"fundService(uint64,uint256)":{"notice":"Fund a service escrow balance"},"getBillableServices(uint64[])":{"notice":"Get billable services from a list of candidates"},"getBlueprint(uint64)":{"notice":"Get blueprint info"},"getBlueprintConfig(uint64)":{"notice":"Get blueprint configuration"},"getBlueprintDefinition(uint64)":{"notice":"Get the original blueprint definition"},"getBlueprintResourceRequirements(uint64)":{"notice":"Get default resource requirements for a blueprint"},"getExecutableSlashes(uint64,uint64)":{"notice":"Get list of executable slash IDs in a range"},"getExitConfig(uint64)":{"notice":"Get exit configuration for a service"},"getExitRequest(uint64,address)":{"notice":"Get exit request for an operator"},"getExitStatus(uint64,address)":{"notice":"Get exit status for an operator"},"getJobCall(uint64,uint64)":{"notice":"Get job call info"},"getJobEventRate(uint64,uint8)":{"notice":"Get the effective event rate for a specific job type"},"getJobQuotedOperators(uint64,uint64)":{"notice":"Get the quoted operators for an RFQ job"},"getJobQuotedPrice(uint64,uint64,address)":{"notice":"Get a quoted operator's price for an RFQ job"},"getOperatorBlsPubkey(uint64,address)":{"notice":"Get operator's BLS public key for a service"},"getOperatorPreferences(uint64,address)":{"notice":"Get operator preferences for a blueprint (includes ECDSA public key)"},"getOperatorPublicKey(uint64,address)":{"notice":"Get operator's ECDSA public key for gossip network identity"},"getOperatorRegistration(uint64,address)":{"notice":"Get operator registration for a blueprint"},"getOperatorTotalActiveServices(address)":{"notice":"Get total count of active services for an operator across all blueprints"},"getService(uint64)":{"notice":"Get service info"},"getServiceEscrow(uint64)":{"notice":"Get service escrow details"},"getServiceOperator(uint64,address)":{"notice":"Get operator info for a service"},"getServiceOperators(uint64)":{"notice":"Get the list of operators for a service"},"getServiceRequest(uint64)":{"notice":"Get service request"},"getServiceRequestResourceRequirements(uint64)":{"notice":"Get resource requirements for a service request"},"getServiceRequestSecurityCommitments(uint64,address)":{"notice":"Get security commitments for a service request by operator"},"getServiceRequestSecurityRequirements(uint64)":{"notice":"Get security requirements for a service request"},"getServiceResourceCommitmentHash(uint64,address)":{"notice":"Get the resource commitment hash for an operator in a service"},"getServiceSecurityCommitments(uint64,address)":{"notice":"Get persisted security commitments for an active service by operator"},"getServiceSecurityRequirements(uint64)":{"notice":"Get persisted security requirements for an active service"},"getSlashConfig()":{"notice":"Get current slashing configuration"},"getSlashProposal(uint64)":{"notice":"Get slash proposal details"},"getTeeCommitmentRoot(uint64,address)":{"notice":"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service."},"isOperatorRegistered(uint64,address)":{"notice":"Check if operator is registered for a blueprint"},"isPermittedCaller(uint64,address)":{"notice":"Check if address can call jobs on service"},"isServiceActive(uint64)":{"notice":"Check if service is active"},"isServiceOperator(uint64,address)":{"notice":"Check if address is operator in service"},"joinService(uint64,uint16)":{"notice":"Join an active service (Dynamic membership only)"},"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":{"notice":"Join an active service with per-asset security commitments (Dynamic membership only)"},"leaveService(uint64)":{"notice":"Leave an active service (Dynamic membership only)"},"maxBlueprintsPerOperator()":{"notice":"Get max blueprints per operator"},"mbsmRegistry()":{"notice":"Get Master Blueprint Service Manager registry"},"metricsRecorder()":{"notice":"Get the metrics recorder address"},"operatorStatusRegistry()":{"notice":"Get operator status registry"},"pause()":{"notice":"Pause the protocol"},"paymentSplit()":{"notice":"Get the current payment split"},"pendingDisputeBondRefund(address)":{"notice":"Read pending dispute-bond refund balance for a disputer."},"pendingRewards(address)":{"notice":"Get pending rewards for an account (native token)"},"pendingRewards(address,address)":{"notice":"Get pending rewards for an account and token"},"preRegister(uint64)":{"notice":"Signal intent to register for a blueprint"},"priceOracle()":{"notice":"Get price oracle"},"proposeSlash(uint64,address,uint16,bytes32)":{"notice":"Propose a slash against an operator"},"registerOperator(uint64,bytes,string)":{"notice":"Register as operator for a blueprint"},"registerOperator(uint64,bytes,string,bytes)":{"notice":"Register as operator providing blueprint-specific registration inputs"},"rejectService(uint64)":{"notice":"Reject a service request (as operator)"},"removePermittedCaller(uint64,address)":{"notice":"Remove a permitted caller from a service"},"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a new service"},"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with explicit exposure commitments"},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with multi-asset security requirements"},"rewardTokens(address)":{"notice":"List tokens with non-zero pending rewards for an account"},"rewardVaults()":{"notice":"Get reward vaults address"},"scheduleExit(uint64)":{"notice":"Schedule exit from an active service when exit queues are enabled"},"serviceCount()":{"notice":"Get current service count"},"serviceFeeDistributor()":{"notice":"Get service fee distributor"},"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":{"notice":"Set default resource requirements for a blueprint (owner only)"},"setDefaultTntMinExposureBps(uint16)":{"notice":"Set default TNT min exposure bps"},"setJobEventRates(uint64,uint8[],uint256[])":{"notice":"Set event rate overrides for one or more job types in a blueprint"},"setMBSMRegistry(address)":{"notice":"Configure Master Blueprint Service Manager registry"},"setMaxBlueprintsPerOperator(uint32)":{"notice":"Set max blueprints per operator"},"setMetricsRecorder(address)":{"notice":"Set the metrics recorder (optional)"},"setOperatorStatusRegistry(address)":{"notice":"Set operator status registry"},"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":{"notice":"Set the payment split configuration"},"setPriceOracle(address)":{"notice":"Configure price oracle"},"setRewardVaults(address)":{"notice":"Set reward vaults address"},"setServiceFeeDistributor(address)":{"notice":"Configure service fee distributor"},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"notice":"Update slashing configuration"},"setStaking(address)":{"notice":"Set the staking module"},"setTntPaymentDiscountBps(uint16)":{"notice":"Set TNT payment discount bps"},"setTntToken(address)":{"notice":"Set TNT token address"},"setTreasury(address)":{"notice":"Set the protocol treasury"},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Submit an aggregated BLS result for a job"},"submitJob(uint64,uint8,bytes)":{"notice":"Submit a job to a service"},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"notice":"Submit a job using signed operator price quotes (RFQ)"},"submitResult(uint64,uint64,bytes)":{"notice":"Submit a job result (as operator)"},"submitResults(uint64,uint64[],bytes[])":{"notice":"Submit multiple results in one transaction"},"teeNonceFor(uint64)":{"notice":"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request — it eliminates cross-request attestation replay at approval time."},"terminateService(uint64)":{"notice":"Terminate a service (as owner)"},"terminateServiceForNonPayment(uint64)":{"notice":"Permissionlessly terminate an unpaid subscription after grace period"},"tntPaymentDiscountBps()":{"notice":"Get TNT payment discount bps"},"tntToken()":{"notice":"Get TNT token address"},"transferBlueprint(uint64,address)":{"notice":"Transfer blueprint ownership"},"treasury()":{"notice":"Get the configured treasury"},"unpause()":{"notice":"Unpause the protocol"},"unregisterOperator(uint64)":{"notice":"Unregister from a blueprint"},"updateBlueprint(uint64,string,bytes32)":{"notice":"Update blueprint metadata"},"updateOperatorPreferences(uint64,bytes,string)":{"notice":"Update operator preferences for a blueprint"},"withdrawRemainingEscrow(uint64)":{"notice":"Withdraw remaining escrow after termination"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangle.sol":"ITangleFull"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/interfaces/ITangle.sol":{"keccak256":"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d","urls":["bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd","dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ"],"license":"MIT"},"src/interfaces/ITangleBlueprints.sol":{"keccak256":"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d","urls":["bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798","dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF"],"license":"MIT"},"src/interfaces/ITangleJobs.sol":{"keccak256":"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0","urls":["bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47","dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd"],"license":"MIT"},"src/interfaces/ITangleOperators.sol":{"keccak256":"0x02f071be69aa0d19e5d8e2f46d7eb95f31e2b6a4801700fd5b2e6728d4940223","urls":["bzz-raw://a4581cf0c4f6ce041ca72dd65f55f7507b9dd548830c548a36adaba950cfa165","dweb:/ipfs/QmWr2cLcKXZFkDpaFm6CbHRcdbzBfpqaDTQwyYAR9Qc1ve"],"license":"MIT"},"src/interfaces/ITangleRewards.sol":{"keccak256":"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741","urls":["bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5","dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR"],"license":"MIT"},"src/interfaces/ITangleServices.sol":{"keccak256":"0xcd35629b25a9847d724bddc21486da34d8c44b0d00797b64ae1214da40e61cd4","urls":["bzz-raw://fc6f9e1b3213fe403193fc265332a51c18682ec5ccd91afae6686812dff2f5e0","dweb:/ipfs/QmSCeKYPezdMFymA2FeKZNjxFiDNj8UW8wj1p1WmbZ227E"],"license":"MIT"},"src/interfaces/ITangleSlashing.sol":{"keccak256":"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280","urls":["bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c","dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd","urls":["bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622","dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8"],"license":"MIT"},"src/libraries/PaymentLib.sol":{"keccak256":"0xcc483845f5c93b5302d30339cdff31a9dd4cced3bdb7c2fe41cdf34ac935c3eb","urls":["bzz-raw://adf3d00787ac1923d38bce0ca1f4a091af0000afe3929b01adb5d1f0395895e6","dweb:/ipfs/QmZuP4gYXpbsqn6zFXB2D7HSo9FZrDe21b1YAaUEQqHwnF"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file +{"abi":[{"type":"function","name":"addPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveService","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ApprovalParams","components":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"blsPopSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"teeCommitments","type":"tuple[]","internalType":"struct Types.TeeAttestationCommitment[]","components":[{"name":"backend","type":"uint8","internalType":"enum Types.TeeBackend"},{"name":"expectedMeasurement","type":"bytes32","internalType":"bytes32"},{"name":"nonceBinding","type":"bytes32","internalType":"bytes32"},{"name":"expiresAt","type":"uint64","internalType":"uint64"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscription","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"billSubscriptionBatch","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalBilled","type":"uint256","internalType":"uint256"},{"name":"billedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"blsPopMessage","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"blueprintCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"blueprintMasterRevision","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blueprintMetadata","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blueprintOperatorCount","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSources","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]}],"stateMutability":"view"},{"type":"function","name":"blueprintSupportedMemberships","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"memberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}],"stateMutability":"view"},{"type":"function","name":"canScheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"canExit","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"cancelExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimDisputeBond","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardsBatch","inputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBlueprint","inputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"outputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createServiceFromQuotes","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"deactivateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"defaultTntMinExposureBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"disputeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashBatch","inputs":[{"name":"slashIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"executedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"expireServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"extendServiceFromQuotes","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.QuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ttlBlocks","type":"uint64","internalType":"uint64"},{"name":"totalCost","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"securityCommitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]},{"name":"resourceCommitments","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"extensionDuration","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"forceExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"forceRemoveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBillableServices","inputs":[{"name":"serviceIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"billable","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Blueprint","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintConfig","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintDefinition","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"definition","type":"tuple","internalType":"struct Types.BlueprintDefinition","components":[{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"},{"name":"manager","type":"address","internalType":"address"},{"name":"masterManagerRevision","type":"uint32","internalType":"uint32"},{"name":"hasConfig","type":"bool","internalType":"bool"},{"name":"config","type":"tuple","internalType":"struct Types.BlueprintConfig","components":[{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"subscriptionRate","type":"uint256","internalType":"uint256"},{"name":"subscriptionInterval","type":"uint64","internalType":"uint64"},{"name":"eventRate","type":"uint256","internalType":"uint256"}]},{"name":"metadata","type":"tuple","internalType":"struct Types.BlueprintMetadata","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"author","type":"string","internalType":"string"},{"name":"category","type":"string","internalType":"string"},{"name":"codeRepository","type":"string","internalType":"string"},{"name":"logo","type":"string","internalType":"string"},{"name":"website","type":"string","internalType":"string"},{"name":"license","type":"string","internalType":"string"},{"name":"profilingData","type":"string","internalType":"string"}]},{"name":"jobs","type":"tuple[]","internalType":"struct Types.JobDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"paramsSchema","type":"bytes","internalType":"bytes"},{"name":"resultSchema","type":"bytes","internalType":"bytes"}]},{"name":"registrationSchema","type":"bytes","internalType":"bytes"},{"name":"requestSchema","type":"bytes","internalType":"bytes"},{"name":"sources","type":"tuple[]","internalType":"struct Types.BlueprintSource[]","components":[{"name":"kind","type":"uint8","internalType":"enum Types.BlueprintSourceKind"},{"name":"container","type":"tuple","internalType":"struct Types.ImageRegistrySource","components":[{"name":"registry","type":"string","internalType":"string"},{"name":"image","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}]},{"name":"wasm","type":"tuple","internalType":"struct Types.WasmSource","components":[{"name":"runtime","type":"uint8","internalType":"enum Types.WasmRuntime"},{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"native","type":"tuple","internalType":"struct Types.NativeSource","components":[{"name":"fetcher","type":"uint8","internalType":"enum Types.BlueprintFetcherKind"},{"name":"artifactUri","type":"string","internalType":"string"},{"name":"entrypoint","type":"string","internalType":"string"}]},{"name":"testing","type":"tuple","internalType":"struct Types.TestingSource","components":[{"name":"cargoPackage","type":"string","internalType":"string"},{"name":"cargoBin","type":"string","internalType":"string"},{"name":"basePath","type":"string","internalType":"string"}]},{"name":"binaries","type":"tuple[]","internalType":"struct Types.BlueprintBinary[]","components":[{"name":"arch","type":"uint8","internalType":"enum Types.BlueprintArchitecture"},{"name":"os","type":"uint8","internalType":"enum Types.BlueprintOperatingSystem"},{"name":"name","type":"string","internalType":"string"},{"name":"sha256","type":"bytes32","internalType":"bytes32"}]}]},{"name":"supportedMemberships","type":"uint8[]","internalType":"enum Types.MembershipModel[]"}]}],"stateMutability":"view"},{"type":"function","name":"getBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getExecutableSlashes","inputs":[{"name":"fromId","type":"uint64","internalType":"uint64"},{"name":"toId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getExitConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitConfig","components":[{"name":"minCommitmentDuration","type":"uint64","internalType":"uint64"},{"name":"exitQueueDuration","type":"uint64","internalType":"uint64"},{"name":"forceExitAllowed","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitRequest","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ExitRequest","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"scheduledAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"pending","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getExitStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Types.ExitStatus"}],"stateMutability":"view"},{"type":"function","name":"getJobCall","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.JobCall","components":[{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"caller","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"resultCount","type":"uint32","internalType":"uint32"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"completed","type":"bool","internalType":"bool"},{"name":"isRFQ","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getJobEventRate","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"rate","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getJobQuotedPrice","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorBlsPubkey","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"blsPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorPreferences","components":[{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorPublicKey","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOperatorRegistration","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorRegistration","components":[{"name":"registeredAt","type":"uint64","internalType":"uint64"},{"name":"updatedAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"},{"name":"online","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorTotalActiveServices","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.Service","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"terminatedAt","type":"uint64","internalType":"uint64"},{"name":"lastPaymentAt","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"pricing","type":"uint8","internalType":"enum Types.PricingModel"},{"name":"status","type":"uint8","internalType":"enum Types.ServiceStatus"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PaymentLib.ServiceEscrow","components":[{"name":"token","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"totalDeposited","type":"uint256","internalType":"uint256"},{"name":"totalReleased","type":"uint256","internalType":"uint256"},{"name":"__reserved0","type":"uint256","internalType":"uint256"},{"name":"subscriptionBaselineStake","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceOperator","components":[{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"joinedAt","type":"uint64","internalType":"uint64"},{"name":"leftAt","type":"uint64","internalType":"uint64"},{"name":"active","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getServiceRequest","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.ServiceRequest","components":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requester","type":"address","internalType":"address"},{"name":"createdAt","type":"uint64","internalType":"uint64"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"operatorCount","type":"uint32","internalType":"uint32"},{"name":"approvalCount","type":"uint32","internalType":"uint32"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"membership","type":"uint8","internalType":"enum Types.MembershipModel"},{"name":"minOperators","type":"uint32","internalType":"uint32"},{"name":"maxOperators","type":"uint32","internalType":"uint32"},{"name":"rejected","type":"bool","internalType":"bool"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"},{"name":"activated","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestResourceRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityCommitments","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceRequestSecurityRequirements","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceResourceCommitmentHash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceSecurityRequirements","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashConfig","components":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashProposal","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashProposal","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"proposer","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"},{"name":"proposedAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum SlashingLib.SlashStatus"},{"name":"disputeReason","type":"string","internalType":"string"},{"name":"disputer","type":"address","internalType":"address"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"disputedAt","type":"uint64","internalType":"uint64"},{"name":"disputeDeadline","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getTeeCommitmentRoot","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isOperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceActive","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isServiceOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinServiceWithCommitments","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"exposureBps","type":"uint16","internalType":"uint16"},{"name":"commitments","type":"tuple[]","internalType":"struct Types.AssetSecurityCommitment[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"exposureBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leaveService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxBlueprintsPerOperator","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"mbsmRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metricsRecorder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorStatusRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paymentSplit","inputs":[],"outputs":[{"name":"developerBps","type":"uint16","internalType":"uint16"},{"name":"protocolBps","type":"uint16","internalType":"uint16"},{"name":"operatorBps","type":"uint16","internalType":"uint16"},{"name":"stakerBps","type":"uint16","internalType":"uint16"},{"name":"keeperBps","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"pendingDisputeBondRefund","inputs":[{"name":"disputer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingRewards","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"preRegister","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"priceOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposeSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"},{"name":"registrationInputs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rejectService","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePermittedCaller","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"caller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestService","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithExposure","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"exposureBps","type":"uint16[]","internalType":"uint16[]"},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"requestServiceWithSecurity","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"securityRequirements","type":"tuple[]","internalType":"struct Types.AssetSecurityRequirement[]","components":[{"name":"asset","type":"tuple","internalType":"struct Types.Asset","components":[{"name":"kind","type":"uint8","internalType":"enum Types.AssetKind"},{"name":"token","type":"address","internalType":"address"}]},{"name":"minExposureBps","type":"uint16","internalType":"uint16"},{"name":"maxExposureBps","type":"uint16","internalType":"uint16"}]},{"name":"config","type":"bytes","internalType":"bytes"},{"name":"permittedCallers","type":"address[]","internalType":"address[]"},{"name":"ttl","type":"uint64","internalType":"uint64"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"paymentAmount","type":"uint256","internalType":"uint256"},{"name":"confidentiality","type":"uint8","internalType":"enum Types.ConfidentialityPolicy"}],"outputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"rewardTokens","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"rewardVaults","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"scheduleExit","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"serviceFeeDistributor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setBlueprintResourceRequirements","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"requirements","type":"tuple[]","internalType":"struct Types.ResourceCommitment[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"count","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultTntMinExposureBps","inputs":[{"name":"minExposureBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setJobEventRates","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"jobIndexes","type":"uint8[]","internalType":"uint8[]"},{"name":"rates","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMBSMRegistry","inputs":[{"name":"registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxBlueprintsPerOperator","inputs":[{"name":"newMax","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMetricsRecorder","inputs":[{"name":"recorder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatusRegistry","inputs":[{"name":"registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaymentSplit","inputs":[{"name":"split","type":"tuple","internalType":"struct Types.PaymentSplit","components":[{"name":"developerBps","type":"uint16","internalType":"uint16"},{"name":"protocolBps","type":"uint16","internalType":"uint16"},{"name":"operatorBps","type":"uint16","internalType":"uint16"},{"name":"stakerBps","type":"uint16","internalType":"uint16"},{"name":"keeperBps","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceOracle","inputs":[{"name":"oracle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRewardVaults","inputs":[{"name":"vaults","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setServiceFeeDistributor","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashConfig","inputs":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaking","inputs":[{"name":"staking","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTntPaymentDiscountBps","inputs":[{"name":"discountBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTntToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitAggregatedResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"output","type":"bytes","internalType":"bytes"},{"name":"signerBitmap","type":"uint256","internalType":"uint256"},{"name":"aggregatedSignature","type":"uint256[2]","internalType":"uint256[2]"},{"name":"aggregatedPubkey","type":"uint256[4]","internalType":"uint256[4]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitJob","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitJobFromQuote","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"inputs","type":"bytes","internalType":"bytes"},{"name":"quotes","type":"tuple[]","internalType":"struct Types.SignedJobQuote[]","components":[{"name":"details","type":"tuple","internalType":"struct Types.JobQuoteDetails","components":[{"name":"requester","type":"address","internalType":"address"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"jobIndex","type":"uint8","internalType":"uint8"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"expiry","type":"uint64","internalType":"uint64"},{"name":"confidentiality","type":"uint8","internalType":"uint8"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"operator","type":"address","internalType":"address"}]}],"outputs":[{"name":"callId","type":"uint64","internalType":"uint64"}],"stateMutability":"payable"},{"type":"function","name":"submitResult","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callId","type":"uint64","internalType":"uint64"},{"name":"result","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitResults","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"callIds","type":"uint64[]","internalType":"uint64[]"},{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"teeNonceFor","inputs":[{"name":"requestId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"terminateService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"terminateServiceForNonPayment","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tntPaymentDiscountBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"tntToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"metadataUri","type":"string","internalType":"string"},{"name":"metadataHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorPreferences","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"ecdsaPublicKey","type":"bytes","internalType":"bytes"},{"name":"rpcAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrow","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawRemainingEscrowTo","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"to","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BlueprintCreated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"manager","type":"address","indexed":false,"internalType":"address"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BlueprintDeactivated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintResourceRequirementsSet","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BlueprintTransferred","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlueprintUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"metadataUri","type":"string","indexed":false,"internalType":"string"},{"name":"metadataHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"JobCompleted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"JobResultSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"result","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmitted","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"JobSubmittedFromQuote","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"callId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"jobIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"quotedOperators","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"totalPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"inputs","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OperatorJoinedService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"exposureBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"OperatorLeftService","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorPreferencesUpdated","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"ecdsaPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"rpcAddress","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorRewardAccrued","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnregistered","inputs":[{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaymentDistributed","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"grossAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"developerRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"developerAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"operatorPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"stakerPoolAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RewardsClaimed","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceActivated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceApproved","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRejected","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ServiceRequested","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceRequestedWithSecurity","inputs":[{"name":"requestId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"requester","type":"address","indexed":true,"internalType":"address"},{"name":"confidentiality","type":"uint8","indexed":false,"internalType":"enum Types.ConfidentialityPolicy"}],"anonymous":false},{"type":"event","name":"ServiceTerminated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"ServiceTerminatedForNonPayment","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"triggeredBy","type":"address","indexed":true,"internalType":"address"},{"name":"dueAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"graceEndsAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"requiredAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"escrowBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashCancelled","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"canceller","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashConfigUpdated","inputs":[{"name":"disputeWindow","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","indexed":false,"internalType":"bool"},{"name":"maxSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"disputeBond","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SlashDisputed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"disputer","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashExecuted","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"actualSlashed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashProposed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"proposer","type":"address","indexed":false,"internalType":"address"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"evidence","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"executeAfter","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"SubscriptionBilled","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"period","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPermittedCaller(uint64,address)":"815d6a26","approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":"6a46006b","billSubscription(uint64)":"cf3806c6","billSubscriptionBatch(uint64[])":"da232ded","blsPopMessage(address,uint256[4])":"433615a2","blueprintCount()":"c602d4fa","blueprintMasterRevision(uint64)":"ff14a940","blueprintMetadata(uint64)":"430ce118","blueprintOperatorCount(uint64)":"8d3f65be","blueprintSources(uint64)":"335ea071","blueprintSupportedMemberships(uint64)":"df57f527","canScheduleExit(uint64,address)":"27b37565","cancelExit(uint64)":"cbd8da63","cancelSlash(uint64,string)":"06079dc5","claimDisputeBond()":"ead1df17","claimRewards()":"372500ab","claimRewards(address)":"ef5cfb8c","claimRewardsAll()":"62b83dda","claimRewardsBatch(address[])":"8602bba0","createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":"3022f66c","createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":"458a69a0","deactivateBlueprint(uint64)":"449bb849","defaultTntMinExposureBps()":"8eb435a5","disputeSlash(uint64,string)":"77380c74","executeExit(uint64)":"b7c18207","executeSlash(uint64)":"a5bfbae4","executeSlashBatch(uint64[])":"b055449b","expireServiceRequest(uint64)":"e07a86bd","extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":"ebb7d84b","forceExit(uint64,address)":"aea65925","forceRemoveOperator(uint64,address)":"684d89f5","fundService(uint64,uint256)":"970e08fe","getBillableServices(uint64[])":"93f3ddaf","getBlueprint(uint64)":"b7696dbb","getBlueprintConfig(uint64)":"563a89f9","getBlueprintDefinition(uint64)":"6171fea8","getBlueprintResourceRequirements(uint64)":"349e961a","getExecutableSlashes(uint64,uint64)":"110f829b","getExitConfig(uint64)":"d2672ed4","getExitRequest(uint64,address)":"9dcc5a93","getExitStatus(uint64,address)":"427ffde9","getJobCall(uint64,uint64)":"a672bc0a","getJobEventRate(uint64,uint8)":"f9333bb1","getJobQuotedOperators(uint64,uint64)":"038dda6c","getJobQuotedPrice(uint64,uint64,address)":"fca78d2d","getOperatorBlsPubkey(uint64,address)":"6ee5bcff","getOperatorPreferences(uint64,address)":"f32f9673","getOperatorPublicKey(uint64,address)":"180cae67","getOperatorRegistration(uint64,address)":"6bda42f3","getOperatorTotalActiveServices(address)":"0ded8bf9","getService(uint64)":"3dc0d5fe","getServiceEscrow(uint64)":"eb8c3bcd","getServiceOperator(uint64,address)":"842524bb","getServiceOperators(uint64)":"bb207f1f","getServiceRequest(uint64)":"5f9b4dfa","getServiceRequestResourceRequirements(uint64)":"a305fb44","getServiceRequestSecurityCommitments(uint64,address)":"05bb3aa3","getServiceRequestSecurityRequirements(uint64)":"e5f797f2","getServiceResourceCommitmentHash(uint64,address)":"e4c0b756","getServiceSecurityCommitments(uint64,address)":"a0b0c62a","getServiceSecurityRequirements(uint64)":"d8644e52","getSlashConfig()":"8fc3b8b3","getSlashProposal(uint64)":"ef1b42a2","getTeeCommitmentRoot(uint64,address)":"a7d282f4","isOperatorRegistered(uint64,address)":"64462595","isPermittedCaller(uint64,address)":"2ec2bd03","isServiceActive(uint64)":"2f46279f","isServiceOperator(uint64,address)":"a595b21e","joinService(uint64,uint16)":"2b9da71a","joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":"d563701f","leaveService(uint64)":"6778afbc","maxBlueprintsPerOperator()":"5ece2405","mbsmRegistry()":"26c9887b","metricsRecorder()":"2dae1885","operatorStatusRegistry()":"d390bbbb","pause()":"8456cb59","paymentSplit()":"aac7416b","pendingDisputeBondRefund(address)":"8c2f4ee4","pendingRewards(address)":"31d7a262","pendingRewards(address,address)":"80ac8228","preRegister(uint64)":"18c68017","priceOracle()":"2630c12f","proposeSlash(uint64,address,uint16,bytes32)":"0472d2ff","registerOperator(uint64,bytes,string)":"d4e1ab7c","registerOperator(uint64,bytes,string,bytes)":"7324e916","rejectService(uint64)":"6d8b88c3","removePermittedCaller(uint64,address)":"5f359924","requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":"c841e26e","requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":"327d6898","requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":"4c540ec1","rewardTokens(address)":"f5ab16cc","rewardVaults()":"9ebd65ad","scheduleExit(uint64)":"b607ba59","serviceCount()":"06237526","serviceFeeDistributor()":"2e40f7fb","setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":"e830bff6","setDefaultTntMinExposureBps(uint16)":"78d66be3","setJobEventRates(uint64,uint8[],uint256[])":"c1d71304","setMBSMRegistry(address)":"5f807d0a","setMaxBlueprintsPerOperator(uint32)":"1d77351b","setMetricsRecorder(address)":"20812956","setOperatorStatusRegistry(address)":"6a64a27e","setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":"45d8a0b3","setPriceOracle(address)":"530e784f","setRewardVaults(address)":"43a6307d","setServiceFeeDistributor(address)":"fbcc7b3d","setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":"72155d50","setStaking(address)":"8ff39099","setTntPaymentDiscountBps(uint16)":"893a88cd","setTntToken(address)":"9fb43d4c","setTreasury(address)":"f0f44260","submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":"c325ae12","submitJob(uint64,uint8,bytes)":"3413e8ee","submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":"52ada2be","submitResult(uint64,uint64,bytes)":"2d07e655","submitResults(uint64,uint64[],bytes[])":"aacdba9f","teeNonceFor(uint64)":"365e1439","terminateService(uint64)":"5b71c934","terminateServiceForNonPayment(uint64)":"13d36a66","tntPaymentDiscountBps()":"cdd3d5ba","tntToken()":"e3969617","transferBlueprint(uint64,address)":"8a4cf763","treasury()":"61d027b3","unpause()":"3f4ba83a","unregisterOperator(uint64)":"0afd3738","updateBlueprint(uint64,string,bytes32)":"c77f959b","updateOperatorPreferences(uint64,bytes,string)":"909eac24","withdrawRemainingEscrow(uint64)":"9dfb6100","withdrawRemainingEscrowTo(uint64,address)":"25d80f7d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"BlueprintResourceRequirementsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"BlueprintTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"BlueprintUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"JobCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"JobResultSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"quotedOperators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"JobSubmittedFromQuote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"OperatorJoinedService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeftService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorPreferencesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorRewardAccrued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"grossAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"developerRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"developerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorPoolAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakerPoolAmount\",\"type\":\"uint256\"}],\"name\":\"PaymentDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ServiceRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"ServiceRequestedWithSecurity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"ServiceTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"dueAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"graceEndsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"escrowBalance\",\"type\":\"uint256\"}],\"name\":\"ServiceTerminatedForNonPayment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"canceller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"SlashConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"name\":\"SlashExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"SlashProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"}],\"name\":\"SubscriptionBilled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"addPermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"},{\"internalType\":\"uint256[2]\",\"name\":\"blsPopSignature\",\"type\":\"uint256[2]\"},{\"components\":[{\"internalType\":\"enum Types.TeeBackend\",\"name\":\"backend\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"expectedMeasurement\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"nonceBinding\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expiresAt\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.TeeAttestationCommitment[]\",\"name\":\"teeCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.ApprovalParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"approveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"billSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"billSubscriptionBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBilled\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"billedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"blsPopMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blueprintCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMasterRevision\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSources\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"blueprintSupportedMemberships\",\"outputs\":[{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"memberships\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"canScheduleExit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canExit\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"cancelExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"cancelSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDisputeBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardsAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"claimRewardsBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"name\":\"createBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"createServiceFromQuotes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"deactivateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultTntMinExposureBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"disputeSlash\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"executeExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"slashIds\",\"type\":\"uint64[]\"}],\"name\":\"executeSlashBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"expireServiceRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttlBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"totalCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"securityCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"resourceCommitments\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.QuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"extensionDuration\",\"type\":\"uint64\"}],\"name\":\"extendServiceFromQuotes\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"forceRemoveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundService\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"serviceIds\",\"type\":\"uint64[]\"}],\"name\":\"getBillableServices\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"billable\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprint\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.Blueprint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintDefinition\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"masterManagerRevision\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"hasConfig\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionRate\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionInterval\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"eventRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.BlueprintConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"author\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"codeRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"website\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"license\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profilingData\",\"type\":\"string\"}],\"internalType\":\"struct Types.BlueprintMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"paramsSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resultSchema\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.JobDefinition[]\",\"name\":\"jobs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"registrationSchema\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"requestSchema\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintSourceKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"registry\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"internalType\":\"struct Types.ImageRegistrySource\",\"name\":\"container\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.WasmRuntime\",\"name\":\"runtime\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.WasmSource\",\"name\":\"wasm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintFetcherKind\",\"name\":\"fetcher\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"artifactUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"entrypoint\",\"type\":\"string\"}],\"internalType\":\"struct Types.NativeSource\",\"name\":\"native\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"cargoPackage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cargoBin\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"basePath\",\"type\":\"string\"}],\"internalType\":\"struct Types.TestingSource\",\"name\":\"testing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Types.BlueprintArchitecture\",\"name\":\"arch\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.BlueprintOperatingSystem\",\"name\":\"os\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"sha256\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.BlueprintBinary[]\",\"name\":\"binaries\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Types.BlueprintSource[]\",\"name\":\"sources\",\"type\":\"tuple[]\"},{\"internalType\":\"enum Types.MembershipModel[]\",\"name\":\"supportedMemberships\",\"type\":\"uint8[]\"}],\"internalType\":\"struct Types.BlueprintDefinition\",\"name\":\"definition\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"getBlueprintResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"toId\",\"type\":\"uint64\"}],\"name\":\"getExecutableSlashes\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getExitConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minCommitmentDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitQueueDuration\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"forceExitAllowed\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"scheduledAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ExitRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getExitStatus\",\"outputs\":[{\"internalType\":\"enum Types.ExitStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobCall\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultCount\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRFQ\",\"type\":\"bool\"}],\"internalType\":\"struct Types.JobCall\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"}],\"name\":\"getJobEventRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"name\":\"getJobQuotedOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getJobQuotedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorBlsPubkey\",\"outputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"blsPubkey\",\"type\":\"uint256[4]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPreferences\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"internalType\":\"struct Types.OperatorPreferences\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRegistration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"registeredAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"updatedAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"online\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorRegistration\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorTotalActiveServices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getService\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"terminatedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastPaymentAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.PricingModel\",\"name\":\"pricing\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ServiceStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.Service\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceEscrow\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDeposited\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__reserved0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"subscriptionBaselineStake\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentLib.ServiceEscrow\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"joinedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"leftAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"operatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"approvalCount\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.MembershipModel\",\"name\":\"membership\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minOperators\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxOperators\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"rejected\",\"type\":\"bool\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"activated\",\"type\":\"bool\"}],\"internalType\":\"struct Types.ServiceRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestResourceRequirements\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceRequestSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getServiceRequestSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceResourceCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getServiceSecurityCommitments\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getServiceSecurityRequirements\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSlashConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"internalType\":\"struct SlashingLib.SlashConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"enum SlashingLib.SlashStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"disputeReason\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"disputedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"disputeDeadline\",\"type\":\"uint64\"}],\"internalType\":\"struct SlashingLib.SlashProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getTeeCommitmentRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"isPermittedCaller\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"isServiceActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isServiceOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"name\":\"joinService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"exposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityCommitment[]\",\"name\":\"commitments\",\"type\":\"tuple[]\"}],\"name\":\"joinServiceWithCommitments\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"leaveService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBlueprintsPerOperator\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mbsmRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metricsRecorder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorStatusRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentSplit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"developerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"protocolBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operatorBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stakerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"keeperBps\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"name\":\"pendingDisputeBondRefund\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"preRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"proposeSlash\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"registrationInputs\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"rejectService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"removePermittedCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"exposureBps\",\"type\":\"uint16[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithExposure\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum Types.AssetKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Types.Asset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"maxExposureBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.AssetSecurityRequirement[]\",\"name\":\"securityRequirements\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"permittedCallers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum Types.ConfidentialityPolicy\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"name\":\"requestServiceWithSecurity\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardVaults\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"scheduleExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceFeeDistributor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"internalType\":\"struct Types.ResourceCommitment[]\",\"name\":\"requirements\",\"type\":\"tuple[]\"}],\"name\":\"setBlueprintResourceRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"minExposureBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultTntMinExposureBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8[]\",\"name\":\"jobIndexes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rates\",\"type\":\"uint256[]\"}],\"name\":\"setJobEventRates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"setMBSMRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"newMax\",\"type\":\"uint32\"}],\"name\":\"setMaxBlueprintsPerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"}],\"name\":\"setMetricsRecorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"setOperatorStatusRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"developerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"protocolBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operatorBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stakerBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"keeperBps\",\"type\":\"uint16\"}],\"internalType\":\"struct Types.PaymentSplit\",\"name\":\"split\",\"type\":\"tuple\"}],\"name\":\"setPaymentSplit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setPriceOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaults\",\"type\":\"address\"}],\"name\":\"setRewardVaults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"setServiceFeeDistributor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"setSlashConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staking\",\"type\":\"address\"}],\"name\":\"setStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"discountBps\",\"type\":\"uint16\"}],\"name\":\"setTntPaymentDiscountBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"setTntToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"signerBitmap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[2]\",\"name\":\"aggregatedSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4]\",\"name\":\"aggregatedPubkey\",\"type\":\"uint256[4]\"}],\"name\":\"submitAggregatedResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"}],\"name\":\"submitJob\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"inputs\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"jobIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expiry\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"confidentiality\",\"type\":\"uint8\"}],\"internalType\":\"struct Types.JobQuoteDetails\",\"name\":\"details\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Types.SignedJobQuote[]\",\"name\":\"quotes\",\"type\":\"tuple[]\"}],\"name\":\"submitJobFromQuote\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"callId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"submitResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64[]\",\"name\":\"callIds\",\"type\":\"uint64[]\"},{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"name\":\"submitResults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"teeNonceFor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"terminateServiceForNonPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tntPaymentDiscountBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tntToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"metadataUri\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"metadataHash\",\"type\":\"bytes32\"}],\"name\":\"updateBlueprint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"ecdsaPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"rpcAddress\",\"type\":\"string\"}],\"name\":\"updateOperatorPreferences\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"withdrawRemainingEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawRemainingEscrowTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"details\":\"Derive resultCount from getJobCall(serviceId, callId).resultCount\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The updated ECDSA public key (may be empty if unchanged)\",\"operator\":\"The operator address\",\"rpcAddress\":\"The updated RPC endpoint (may be empty if unchanged)\"}},\"OperatorRegistered(uint64,address,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity\",\"operator\":\"The operator address (wallet)\",\"rpcAddress\":\"The operator's RPC endpoint\"}}},\"kind\":\"dev\",\"methods\":{\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"details\":\"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in \\u2014 protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile.\"},\"claimDisputeBond()\":{\"details\":\"Pull-pattern. The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block.\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"params\":{\"definition\":\"Fully populated blueprint definition struct\"},\"returns\":{\"blueprintId\":\"The new blueprint ID\"}},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"details\":\"No approval flow needed - operators have pre-committed via signatures\",\"params\":{\"blueprintId\":\"The blueprint to use\",\"config\":\"Service configuration\",\"permittedCallers\":\"Addresses allowed to call jobs\",\"quotes\":\"Array of signed quotes from operators\",\"ttl\":\"Service time-to-live (must match quotes)\"}},\"disputeSlash(uint64,string)\":{\"details\":\"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles.\"},\"expireServiceRequest(uint64)\":{\"details\":\"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window.\"},\"forceRemoveOperator(uint64,address)\":{\"params\":{\"operator\":\"The operator to remove\",\"serviceId\":\"The service ID\"}},\"getOperatorBlsPubkey(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"blsPubkey\":\"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered\"}},\"getOperatorPublicKey(uint64,address)\":{\"details\":\"Returns the key used for signing/verifying gossip messages\"},\"getOperatorTotalActiveServices(address)\":{\"params\":{\"operator\":\"The operator address\"},\"returns\":{\"count\":\"Total number of active services the operator is part of\"}},\"getServiceResourceCommitmentHash(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)\"}},\"getTeeCommitmentRoot(uint64,address)\":{\"details\":\"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"params\":{\"evidence\":\"Evidence hash\",\"operator\":\"The operator to slash\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"},\"returns\":{\"slashId\":\"The ID of the created slash proposal\"}},\"registerOperator(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to register for\",\"ecdsaPublicKey\":\"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)\",\"rpcAddress\":\"The operator's RPC endpoint URL\"}},\"registerOperator(uint64,bytes,string,bytes)\":{\"params\":{\"registrationInputs\":\"Encoded payload validated by blueprint's schema\"}},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"details\":\"Each operator must provide security commitments matching these requirements when approving\"},\"rewardTokens(address)\":{\"details\":\"Convenience view; mappings are not enumerable.\"},\"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))\":{\"params\":{\"split\":\"The new split configuration\"}},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"params\":{\"disputeBond\":\"Native asset bond required to dispute (0 = disabled)\",\"disputeResolutionDeadline\":\"How long SLASH_ADMIN has to resolve a dispute\",\"maxPendingSlashesPerOperator\":\"Cap on concurrent pending slashes per operator\"}},\"setStaking(address)\":{\"params\":{\"staking\":\"The IStaking implementation\"}},\"setTreasury(address)\":{\"params\":{\"treasury\":\"The treasury address\"}},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"details\":\"Only valid for jobs where requiresAggregation returns true\",\"params\":{\"aggregatedPubkey\":\"The aggregated public key [x0, x1, y0, y1]\",\"aggregatedSignature\":\"The aggregated BLS signature [x, y]\",\"callId\":\"The job call ID\",\"output\":\"The aggregated output data\",\"serviceId\":\"The service ID\",\"signerBitmap\":\"Bitmap indicating which operators signed (bit i = operator i in service)\"}},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"params\":{\"inputs\":\"Encoded job parameters\",\"jobIndex\":\"The job type index\",\"quotes\":\"Array of signed quotes from operators\",\"serviceId\":\"The service ID\"}},\"updateOperatorPreferences(uint64,bytes,string)\":{\"params\":{\"blueprintId\":\"The blueprint to update preferences for\",\"ecdsaPublicKey\":\"New ECDSA public key (pass empty bytes to keep unchanged)\",\"rpcAddress\":\"New RPC endpoint (pass empty string to keep unchanged)\"}},\"withdrawRemainingEscrowTo(uint64,address)\":{\"details\":\"Service owner can route around blocklisting tokens / smart-account receive constraints. Caller must equal the service owner; recipient is arbitrary but must be non-zero.\"}},\"title\":\"ITangleFull\",\"version\":1},\"userdoc\":{\"events\":{\"JobCompleted(uint64,uint64)\":{\"notice\":\"Emitted when a job reaches its required result threshold\"},\"JobSubmittedFromQuote(uint64,uint64,uint8,address,address[],uint256,bytes)\":{\"notice\":\"Emitted when a job is submitted via RFQ with signed operator quotes\"},\"OperatorPreferencesUpdated(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator updates their preferences\"},\"OperatorRegistered(uint64,address,bytes,string)\":{\"notice\":\"Emitted when an operator registers for a blueprint\"}},\"kind\":\"user\",\"methods\":{\"addPermittedCaller(uint64,address)\":{\"notice\":\"Add a permitted caller to a service\"},\"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))\":{\"notice\":\"Approve a service request as one of its operators.\"},\"billSubscription(uint64)\":{\"notice\":\"Bill a subscription service for the current period\"},\"billSubscriptionBatch(uint64[])\":{\"notice\":\"Bill multiple subscription services in one call\"},\"blsPopMessage(address,uint256[4])\":{\"notice\":\"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator.\"},\"blueprintCount()\":{\"notice\":\"Get current blueprint count\"},\"blueprintMasterRevision(uint64)\":{\"notice\":\"Get master blueprint revision\"},\"blueprintMetadata(uint64)\":{\"notice\":\"Get blueprint metadata and URI\"},\"blueprintOperatorCount(uint64)\":{\"notice\":\"Get number of operators for a blueprint\"},\"blueprintSources(uint64)\":{\"notice\":\"Get blueprint sources\"},\"blueprintSupportedMemberships(uint64)\":{\"notice\":\"Get blueprint supported membership models\"},\"canScheduleExit(uint64,address)\":{\"notice\":\"Check if operator can schedule exit now\"},\"cancelExit(uint64)\":{\"notice\":\"Cancel a scheduled exit before execution\"},\"cancelSlash(uint64,string)\":{\"notice\":\"Cancel a slash proposal\"},\"claimDisputeBond()\":{\"notice\":\"Claim a dispute bond previously refunded via `cancelSlash`.\"},\"claimRewards()\":{\"notice\":\"Claim accumulated rewards (native token)\"},\"claimRewards(address)\":{\"notice\":\"Claim accumulated rewards for a specific token\"},\"claimRewardsAll()\":{\"notice\":\"Claim accumulated rewards for all pending tokens\"},\"claimRewardsBatch(address[])\":{\"notice\":\"Claim accumulated rewards for multiple tokens\"},\"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))\":{\"notice\":\"Create a blueprint from an encoded definition that includes schemas and job metadata\"},\"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)\":{\"notice\":\"Create a service instantly using pre-signed operator quotes\"},\"deactivateBlueprint(uint64)\":{\"notice\":\"Deactivate a blueprint\"},\"defaultTntMinExposureBps()\":{\"notice\":\"Get default TNT min exposure bps\"},\"disputeSlash(uint64,string)\":{\"notice\":\"Dispute a slash proposal\"},\"executeExit(uint64)\":{\"notice\":\"Execute a scheduled exit after the queue delay\"},\"executeSlash(uint64)\":{\"notice\":\"Execute a slash proposal\"},\"executeSlashBatch(uint64[])\":{\"notice\":\"Execute a batch of slashes\"},\"expireServiceRequest(uint64)\":{\"notice\":\"Permissionlessly expire a stale service request and refund the requester.\"},\"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)\":{\"notice\":\"Extend a service using pre-signed operator quotes\"},\"forceExit(uint64,address)\":{\"notice\":\"Force exit an operator from a service (if permitted by config)\"},\"forceRemoveOperator(uint64,address)\":{\"notice\":\"Force remove an operator from a service (blueprint manager only)\"},\"fundService(uint64,uint256)\":{\"notice\":\"Fund a service escrow balance\"},\"getBillableServices(uint64[])\":{\"notice\":\"Get billable services from a list of candidates\"},\"getBlueprint(uint64)\":{\"notice\":\"Get blueprint info\"},\"getBlueprintConfig(uint64)\":{\"notice\":\"Get blueprint configuration\"},\"getBlueprintDefinition(uint64)\":{\"notice\":\"Get the original blueprint definition\"},\"getBlueprintResourceRequirements(uint64)\":{\"notice\":\"Get default resource requirements for a blueprint\"},\"getExecutableSlashes(uint64,uint64)\":{\"notice\":\"Get list of executable slash IDs in a range\"},\"getExitConfig(uint64)\":{\"notice\":\"Get exit configuration for a service\"},\"getExitRequest(uint64,address)\":{\"notice\":\"Get exit request for an operator\"},\"getExitStatus(uint64,address)\":{\"notice\":\"Get exit status for an operator\"},\"getJobCall(uint64,uint64)\":{\"notice\":\"Get job call info\"},\"getJobEventRate(uint64,uint8)\":{\"notice\":\"Get the effective event rate for a specific job type\"},\"getJobQuotedOperators(uint64,uint64)\":{\"notice\":\"Get the quoted operators for an RFQ job\"},\"getJobQuotedPrice(uint64,uint64,address)\":{\"notice\":\"Get a quoted operator's price for an RFQ job\"},\"getOperatorBlsPubkey(uint64,address)\":{\"notice\":\"Get operator's BLS public key for a service\"},\"getOperatorPreferences(uint64,address)\":{\"notice\":\"Get operator preferences for a blueprint (includes ECDSA public key)\"},\"getOperatorPublicKey(uint64,address)\":{\"notice\":\"Get operator's ECDSA public key for gossip network identity\"},\"getOperatorRegistration(uint64,address)\":{\"notice\":\"Get operator registration for a blueprint\"},\"getOperatorTotalActiveServices(address)\":{\"notice\":\"Get total count of active services for an operator across all blueprints\"},\"getService(uint64)\":{\"notice\":\"Get service info\"},\"getServiceEscrow(uint64)\":{\"notice\":\"Get service escrow details\"},\"getServiceOperator(uint64,address)\":{\"notice\":\"Get operator info for a service\"},\"getServiceOperators(uint64)\":{\"notice\":\"Get the list of operators for a service\"},\"getServiceRequest(uint64)\":{\"notice\":\"Get service request\"},\"getServiceRequestResourceRequirements(uint64)\":{\"notice\":\"Get resource requirements for a service request\"},\"getServiceRequestSecurityCommitments(uint64,address)\":{\"notice\":\"Get security commitments for a service request by operator\"},\"getServiceRequestSecurityRequirements(uint64)\":{\"notice\":\"Get security requirements for a service request\"},\"getServiceResourceCommitmentHash(uint64,address)\":{\"notice\":\"Get the resource commitment hash for an operator in a service\"},\"getServiceSecurityCommitments(uint64,address)\":{\"notice\":\"Get persisted security commitments for an active service by operator\"},\"getServiceSecurityRequirements(uint64)\":{\"notice\":\"Get persisted security requirements for an active service\"},\"getSlashConfig()\":{\"notice\":\"Get current slashing configuration\"},\"getSlashProposal(uint64)\":{\"notice\":\"Get slash proposal details\"},\"getTeeCommitmentRoot(uint64,address)\":{\"notice\":\"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service.\"},\"isOperatorRegistered(uint64,address)\":{\"notice\":\"Check if operator is registered for a blueprint\"},\"isPermittedCaller(uint64,address)\":{\"notice\":\"Check if address can call jobs on service\"},\"isServiceActive(uint64)\":{\"notice\":\"Check if service is active\"},\"isServiceOperator(uint64,address)\":{\"notice\":\"Check if address is operator in service\"},\"joinService(uint64,uint16)\":{\"notice\":\"Join an active service (Dynamic membership only)\"},\"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])\":{\"notice\":\"Join an active service with per-asset security commitments (Dynamic membership only)\"},\"leaveService(uint64)\":{\"notice\":\"Leave an active service (Dynamic membership only)\"},\"maxBlueprintsPerOperator()\":{\"notice\":\"Get max blueprints per operator\"},\"mbsmRegistry()\":{\"notice\":\"Get Master Blueprint Service Manager registry\"},\"metricsRecorder()\":{\"notice\":\"Get the metrics recorder address\"},\"operatorStatusRegistry()\":{\"notice\":\"Get operator status registry\"},\"pause()\":{\"notice\":\"Pause the protocol\"},\"paymentSplit()\":{\"notice\":\"Get the current payment split\"},\"pendingDisputeBondRefund(address)\":{\"notice\":\"Read pending dispute-bond refund balance for a disputer.\"},\"pendingRewards(address)\":{\"notice\":\"Get pending rewards for an account (native token)\"},\"pendingRewards(address,address)\":{\"notice\":\"Get pending rewards for an account and token\"},\"preRegister(uint64)\":{\"notice\":\"Signal intent to register for a blueprint\"},\"priceOracle()\":{\"notice\":\"Get price oracle\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"notice\":\"Propose a slash against an operator\"},\"registerOperator(uint64,bytes,string)\":{\"notice\":\"Register as operator for a blueprint\"},\"registerOperator(uint64,bytes,string,bytes)\":{\"notice\":\"Register as operator providing blueprint-specific registration inputs\"},\"rejectService(uint64)\":{\"notice\":\"Reject a service request (as operator)\"},\"removePermittedCaller(uint64,address)\":{\"notice\":\"Remove a permitted caller from a service\"},\"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a new service\"},\"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with explicit exposure commitments\"},\"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)\":{\"notice\":\"Request a service with multi-asset security requirements\"},\"rewardTokens(address)\":{\"notice\":\"List tokens with non-zero pending rewards for an account\"},\"rewardVaults()\":{\"notice\":\"Get reward vaults address\"},\"scheduleExit(uint64)\":{\"notice\":\"Schedule exit from an active service when exit queues are enabled\"},\"serviceCount()\":{\"notice\":\"Get current service count\"},\"serviceFeeDistributor()\":{\"notice\":\"Get service fee distributor\"},\"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])\":{\"notice\":\"Set default resource requirements for a blueprint (owner only)\"},\"setDefaultTntMinExposureBps(uint16)\":{\"notice\":\"Set default TNT min exposure bps\"},\"setJobEventRates(uint64,uint8[],uint256[])\":{\"notice\":\"Set event rate overrides for one or more job types in a blueprint\"},\"setMBSMRegistry(address)\":{\"notice\":\"Configure Master Blueprint Service Manager registry\"},\"setMaxBlueprintsPerOperator(uint32)\":{\"notice\":\"Set max blueprints per operator\"},\"setMetricsRecorder(address)\":{\"notice\":\"Set the metrics recorder (optional)\"},\"setOperatorStatusRegistry(address)\":{\"notice\":\"Set operator status registry\"},\"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))\":{\"notice\":\"Set the payment split configuration\"},\"setPriceOracle(address)\":{\"notice\":\"Configure price oracle\"},\"setRewardVaults(address)\":{\"notice\":\"Set reward vaults address\"},\"setServiceFeeDistributor(address)\":{\"notice\":\"Configure service fee distributor\"},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"notice\":\"Update slashing configuration\"},\"setStaking(address)\":{\"notice\":\"Set the staking module\"},\"setTntPaymentDiscountBps(uint16)\":{\"notice\":\"Set TNT payment discount bps\"},\"setTntToken(address)\":{\"notice\":\"Set TNT token address\"},\"setTreasury(address)\":{\"notice\":\"Set the protocol treasury\"},\"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])\":{\"notice\":\"Submit an aggregated BLS result for a job\"},\"submitJob(uint64,uint8,bytes)\":{\"notice\":\"Submit a job to a service\"},\"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])\":{\"notice\":\"Submit a job using signed operator price quotes (RFQ)\"},\"submitResult(uint64,uint64,bytes)\":{\"notice\":\"Submit a job result (as operator)\"},\"submitResults(uint64,uint64[],bytes[])\":{\"notice\":\"Submit multiple results in one transaction\"},\"teeNonceFor(uint64)\":{\"notice\":\"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request \\u2014 it eliminates cross-request attestation replay at approval time.\"},\"terminateService(uint64)\":{\"notice\":\"Terminate a service (as owner)\"},\"terminateServiceForNonPayment(uint64)\":{\"notice\":\"Permissionlessly terminate an unpaid subscription after grace period\"},\"tntPaymentDiscountBps()\":{\"notice\":\"Get TNT payment discount bps\"},\"tntToken()\":{\"notice\":\"Get TNT token address\"},\"transferBlueprint(uint64,address)\":{\"notice\":\"Transfer blueprint ownership\"},\"treasury()\":{\"notice\":\"Get the configured treasury\"},\"unpause()\":{\"notice\":\"Unpause the protocol\"},\"unregisterOperator(uint64)\":{\"notice\":\"Unregister from a blueprint\"},\"updateBlueprint(uint64,string,bytes32)\":{\"notice\":\"Update blueprint metadata\"},\"updateOperatorPreferences(uint64,bytes,string)\":{\"notice\":\"Update operator preferences for a blueprint\"},\"withdrawRemainingEscrow(uint64)\":{\"notice\":\"Withdraw remaining escrow after termination to the service owner.\"},\"withdrawRemainingEscrowTo(uint64,address)\":{\"notice\":\"Withdraw remaining escrow after termination to a service-owner-chosen address.\"}},\"notice\":\"Complete Tangle interface including admin and slashing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangle.sol\":\"ITangleFull\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/interfaces/ITangle.sol\":{\"keccak256\":\"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd\",\"dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ\"]},\"src/interfaces/ITangleBlueprints.sol\":{\"keccak256\":\"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798\",\"dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF\"]},\"src/interfaces/ITangleJobs.sol\":{\"keccak256\":\"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47\",\"dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd\"]},\"src/interfaces/ITangleOperators.sol\":{\"keccak256\":\"0xce666d409611f041d08161dbc39f4165da7c0484baa6aacc60815dccf4a2583a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9c0e27ac2429ac4acbea9f203729b10ca4f2548815c9a817485ed8d236e040f\",\"dweb:/ipfs/QmWwkDVeuHc5UaDt8LU3Swr8PXCE5k1mdwH9zFWWbcybsz\"]},\"src/interfaces/ITangleRewards.sol\":{\"keccak256\":\"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5\",\"dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR\"]},\"src/interfaces/ITangleServices.sol\":{\"keccak256\":\"0x7fba18afbe05abb9cbda852a011c5f87c2cd3c72c18bc521620a7199c798c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7273ede38ef52be90c3a14cb38b92e7a0373469364044ca5c379316a829f9a9\",\"dweb:/ipfs/QmVu6ZM95vBk76oN2z2w3ZCtM21dJk53FKLT3EKc9X8KiH\"]},\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74\",\"dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412\",\"dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB\"]},\"src/libraries/PaymentLib.sol\":{\"keccak256\":\"0x818b32fd77219fd4c91bc15bb91f8eb059b363ac9cfe9f601358fef8f8d1a196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c22a401c62563aa9eccf48a40b79083b5116bb67f1c53bc6e9df20ceb15aaeb0\",\"dweb:/ipfs/QmXGyhEpu6JswZPPvPnJE2rVHtSag4hhHmv4L5mFh5TL3H\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"manager","type":"address","indexed":false},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintCreated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"BlueprintDeactivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"BlueprintResourceRequirementsSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"BlueprintTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"string","name":"metadataUri","type":"string","indexed":false},{"internalType":"bytes32","name":"metadataHash","type":"bytes32","indexed":false}],"type":"event","name":"BlueprintUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true}],"type":"event","name":"JobCompleted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"result","type":"bytes","indexed":false}],"type":"event","name":"JobResultSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmitted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"callId","type":"uint64","indexed":true},{"internalType":"uint8","name":"jobIndex","type":"uint8","indexed":false},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"address[]","name":"quotedOperators","type":"address[]","indexed":false},{"internalType":"uint256","name":"totalPrice","type":"uint256","indexed":false},{"internalType":"bytes","name":"inputs","type":"bytes","indexed":false}],"type":"event","name":"JobSubmittedFromQuote","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint16","name":"exposureBps","type":"uint16","indexed":false}],"type":"event","name":"OperatorJoinedService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeftService","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorPreferencesUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes","indexed":false},{"internalType":"string","name":"rpcAddress","type":"string","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorRewardAccrued","anonymous":false},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorUnregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"grossAmount","type":"uint256","indexed":false},{"internalType":"address","name":"developerRecipient","type":"address","indexed":false},{"internalType":"uint256","name":"developerAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"protocolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"operatorPoolAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"stakerPoolAmount","type":"uint256","indexed":false}],"type":"event","name":"PaymentDistributed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardsClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceActivated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceApproved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"ServiceRejected","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"requester","type":"address","indexed":true},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8","indexed":false}],"type":"event","name":"ServiceRequestedWithSecurity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true}],"type":"event","name":"ServiceTerminated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"triggeredBy","type":"address","indexed":true},{"internalType":"uint64","name":"dueAt","type":"uint64","indexed":false},{"internalType":"uint64","name":"graceEndsAt","type":"uint64","indexed":false},{"internalType":"uint256","name":"requiredAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"escrowBalance","type":"uint256","indexed":false}],"type":"event","name":"ServiceTerminatedForNonPayment","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"canceller","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashCancelled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64","indexed":false},{"internalType":"bool","name":"instantSlashEnabled","type":"bool","indexed":false},{"internalType":"uint16","name":"maxSlashBps","type":"uint16","indexed":false},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64","indexed":false},{"internalType":"uint256","name":"disputeBond","type":"uint256","indexed":false},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false}],"type":"event","name":"SlashConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"disputer","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashDisputed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"actualSlashed","type":"uint256","indexed":false}],"type":"event","name":"SlashExecuted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16","indexed":false},{"internalType":"bytes32","name":"evidence","type":"bytes32","indexed":false},{"internalType":"uint64","name":"executeAfter","type":"uint64","indexed":false}],"type":"event","name":"SlashProposed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"period","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionBilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPermittedCaller"},{"inputs":[{"internalType":"struct Types.ApprovalParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"},{"internalType":"uint256[2]","name":"blsPopSignature","type":"uint256[2]"},{"internalType":"struct Types.TeeAttestationCommitment[]","name":"teeCommitments","type":"tuple[]","components":[{"internalType":"enum Types.TeeBackend","name":"backend","type":"uint8"},{"internalType":"bytes32","name":"expectedMeasurement","type":"bytes32"},{"internalType":"bytes32","name":"nonceBinding","type":"bytes32"},{"internalType":"uint64","name":"expiresAt","type":"uint64"}]}]}],"stateMutability":"nonpayable","type":"function","name":"approveService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"billSubscription"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"billSubscriptionBatch","outputs":[{"internalType":"uint256","name":"totalBilled","type":"uint256"},{"internalType":"uint256","name":"billedCount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}],"stateMutability":"view","type":"function","name":"blsPopMessage","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blueprintCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMasterRevision","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintMetadata","outputs":[{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSources","outputs":[{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"blueprintSupportedMemberships","outputs":[{"internalType":"enum Types.MembershipModel[]","name":"memberships","type":"uint8[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"canScheduleExit","outputs":[{"internalType":"bool","name":"canExit","type":"bool"},{"internalType":"string","name":"reason","type":"string"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelExit"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"cancelSlash"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimDisputeBond"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardsAll"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewardsBatch"},{"inputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createBlueprint","outputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"stateMutability":"payable","type":"function","name":"createServiceFromQuotes","outputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deactivateBlueprint"},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultTntMinExposureBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"payable","type":"function","name":"disputeSlash"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeExit"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"uint64[]","name":"slashIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"executeSlashBatch","outputs":[{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"executedCount","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expireServiceRequest"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct Types.SignedQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.QuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint64","name":"ttlBlocks","type":"uint64"},{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"securityCommitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]},{"internalType":"struct Types.ResourceCommitment[]","name":"resourceCommitments","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"uint64","name":"extensionDuration","type":"uint64"}],"stateMutability":"payable","type":"function","name":"extendServiceFromQuotes"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceExit"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"forceRemoveOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundService"},{"inputs":[{"internalType":"uint64[]","name":"serviceIds","type":"uint64[]"}],"stateMutability":"view","type":"function","name":"getBillableServices","outputs":[{"internalType":"uint64[]","name":"billable","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprint","outputs":[{"internalType":"struct Types.Blueprint","name":"","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintConfig","outputs":[{"internalType":"struct Types.BlueprintConfig","name":"","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintDefinition","outputs":[{"internalType":"struct Types.BlueprintDefinition","name":"definition","type":"tuple","components":[{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"},{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint32","name":"masterManagerRevision","type":"uint32"},{"internalType":"bool","name":"hasConfig","type":"bool"},{"internalType":"struct Types.BlueprintConfig","name":"config","type":"tuple","components":[{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"uint256","name":"subscriptionRate","type":"uint256"},{"internalType":"uint64","name":"subscriptionInterval","type":"uint64"},{"internalType":"uint256","name":"eventRate","type":"uint256"}]},{"internalType":"struct Types.BlueprintMetadata","name":"metadata","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"author","type":"string"},{"internalType":"string","name":"category","type":"string"},{"internalType":"string","name":"codeRepository","type":"string"},{"internalType":"string","name":"logo","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"string","name":"license","type":"string"},{"internalType":"string","name":"profilingData","type":"string"}]},{"internalType":"struct Types.JobDefinition[]","name":"jobs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes","name":"paramsSchema","type":"bytes"},{"internalType":"bytes","name":"resultSchema","type":"bytes"}]},{"internalType":"bytes","name":"registrationSchema","type":"bytes"},{"internalType":"bytes","name":"requestSchema","type":"bytes"},{"internalType":"struct Types.BlueprintSource[]","name":"sources","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintSourceKind","name":"kind","type":"uint8"},{"internalType":"struct Types.ImageRegistrySource","name":"container","type":"tuple","components":[{"internalType":"string","name":"registry","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"tag","type":"string"}]},{"internalType":"struct Types.WasmSource","name":"wasm","type":"tuple","components":[{"internalType":"enum Types.WasmRuntime","name":"runtime","type":"uint8"},{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.NativeSource","name":"native","type":"tuple","components":[{"internalType":"enum Types.BlueprintFetcherKind","name":"fetcher","type":"uint8"},{"internalType":"string","name":"artifactUri","type":"string"},{"internalType":"string","name":"entrypoint","type":"string"}]},{"internalType":"struct Types.TestingSource","name":"testing","type":"tuple","components":[{"internalType":"string","name":"cargoPackage","type":"string"},{"internalType":"string","name":"cargoBin","type":"string"},{"internalType":"string","name":"basePath","type":"string"}]},{"internalType":"struct Types.BlueprintBinary[]","name":"binaries","type":"tuple[]","components":[{"internalType":"enum Types.BlueprintArchitecture","name":"arch","type":"uint8"},{"internalType":"enum Types.BlueprintOperatingSystem","name":"os","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"sha256","type":"bytes32"}]}]},{"internalType":"enum Types.MembershipModel[]","name":"supportedMemberships","type":"uint8[]"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBlueprintResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"fromId","type":"uint64"},{"internalType":"uint64","name":"toId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExecutableSlashes","outputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExitConfig","outputs":[{"internalType":"struct Types.ExitConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"minCommitmentDuration","type":"uint64"},{"internalType":"uint64","name":"exitQueueDuration","type":"uint64"},{"internalType":"bool","name":"forceExitAllowed","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitRequest","outputs":[{"internalType":"struct Types.ExitRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"scheduledAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"bool","name":"pending","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getExitStatus","outputs":[{"internalType":"enum Types.ExitStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobCall","outputs":[{"internalType":"struct Types.JobCall","name":"","type":"tuple","components":[{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint32","name":"resultCount","type":"uint32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"bool","name":"isRFQ","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getJobEventRate","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getJobQuotedOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getJobQuotedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorBlsPubkey","outputs":[{"internalType":"uint256[4]","name":"blsPubkey","type":"uint256[4]"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPreferences","outputs":[{"internalType":"struct Types.OperatorPreferences","name":"","type":"tuple","components":[{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}]}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRegistration","outputs":[{"internalType":"struct Types.OperatorRegistration","name":"","type":"tuple","components":[{"internalType":"uint64","name":"registeredAt","type":"uint64"},{"internalType":"uint64","name":"updatedAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"online","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorTotalActiveServices","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getService","outputs":[{"internalType":"struct Types.Service","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint64","name":"terminatedAt","type":"uint64"},{"internalType":"uint64","name":"lastPaymentAt","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"enum Types.PricingModel","name":"pricing","type":"uint8"},{"internalType":"enum Types.ServiceStatus","name":"status","type":"uint8"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceEscrow","outputs":[{"internalType":"struct PaymentLib.ServiceEscrow","name":"","type":"tuple","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"totalDeposited","type":"uint256"},{"internalType":"uint256","name":"totalReleased","type":"uint256"},{"internalType":"uint256","name":"__reserved0","type":"uint256"},{"internalType":"uint256","name":"subscriptionBaselineStake","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceOperator","outputs":[{"internalType":"struct Types.ServiceOperator","name":"","type":"tuple","components":[{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"uint64","name":"joinedAt","type":"uint64"},{"internalType":"uint64","name":"leftAt","type":"uint64"},{"internalType":"bool","name":"active","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequest","outputs":[{"internalType":"struct Types.ServiceRequest","name":"","type":"tuple","components":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"createdAt","type":"uint64"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"uint32","name":"operatorCount","type":"uint32"},{"internalType":"uint32","name":"approvalCount","type":"uint32"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.MembershipModel","name":"membership","type":"uint8"},{"internalType":"uint32","name":"minOperators","type":"uint32"},{"internalType":"uint32","name":"maxOperators","type":"uint32"},{"internalType":"bool","name":"rejected","type":"bool"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"},{"internalType":"bool","name":"activated","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestResourceRequirements","outputs":[{"internalType":"struct Types.ResourceCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceRequestSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceResourceCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getServiceSecurityCommitments","outputs":[{"internalType":"struct Types.AssetSecurityCommitment[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getServiceSecurityRequirements","outputs":[{"internalType":"struct Types.AssetSecurityRequirement[]","name":"","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSlashConfig","outputs":[{"internalType":"struct SlashingLib.SlashConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashProposal","outputs":[{"internalType":"struct SlashingLib.SlashProposal","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"},{"internalType":"uint64","name":"proposedAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"enum SlashingLib.SlashStatus","name":"status","type":"uint8"},{"internalType":"string","name":"disputeReason","type":"string"},{"internalType":"address","name":"disputer","type":"address"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint64","name":"disputedAt","type":"uint64"},{"internalType":"uint64","name":"disputeDeadline","type":"uint64"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getTeeCommitmentRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperatorRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"view","type":"function","name":"isPermittedCaller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"isServiceActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isServiceOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"joinService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint16","name":"exposureBps","type":"uint16"},{"internalType":"struct Types.AssetSecurityCommitment[]","name":"commitments","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"exposureBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"joinServiceWithCommitments"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"leaveService"},{"inputs":[],"stateMutability":"view","type":"function","name":"maxBlueprintsPerOperator","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mbsmRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metricsRecorder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorStatusRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paymentSplit","outputs":[{"internalType":"uint16","name":"developerBps","type":"uint16"},{"internalType":"uint16","name":"protocolBps","type":"uint16"},{"internalType":"uint16","name":"operatorBps","type":"uint16"},{"internalType":"uint16","name":"stakerBps","type":"uint16"},{"internalType":"uint16","name":"keeperBps","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"disputer","type":"address"}],"stateMutability":"view","type":"function","name":"pendingDisputeBondRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"preRegister"},{"inputs":[],"stateMutability":"view","type":"function","name":"priceOracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"proposeSlash","outputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"},{"internalType":"bytes","name":"registrationInputs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"rejectService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"caller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePermittedCaller"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestService","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint16[]","name":"exposureBps","type":"uint16[]"},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithExposure","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"struct Types.AssetSecurityRequirement[]","name":"securityRequirements","type":"tuple[]","components":[{"internalType":"struct Types.Asset","name":"asset","type":"tuple","components":[{"internalType":"enum Types.AssetKind","name":"kind","type":"uint8"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint16","name":"minExposureBps","type":"uint16"},{"internalType":"uint16","name":"maxExposureBps","type":"uint16"}]},{"internalType":"bytes","name":"config","type":"bytes"},{"internalType":"address[]","name":"permittedCallers","type":"address[]"},{"internalType":"uint64","name":"ttl","type":"uint64"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"enum Types.ConfidentialityPolicy","name":"confidentiality","type":"uint8"}],"stateMutability":"payable","type":"function","name":"requestServiceWithSecurity","outputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"rewardTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardVaults","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"scheduleExit"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceFeeDistributor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"struct Types.ResourceCommitment[]","name":"requirements","type":"tuple[]","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"uint64","name":"count","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"setBlueprintResourceRequirements"},{"inputs":[{"internalType":"uint16","name":"minExposureBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultTntMinExposureBps"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8[]","name":"jobIndexes","type":"uint8[]"},{"internalType":"uint256[]","name":"rates","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setJobEventRates"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMBSMRegistry"},{"inputs":[{"internalType":"uint32","name":"newMax","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBlueprintsPerOperator"},{"inputs":[{"internalType":"address","name":"recorder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMetricsRecorder"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatusRegistry"},{"inputs":[{"internalType":"struct Types.PaymentSplit","name":"split","type":"tuple","components":[{"internalType":"uint16","name":"developerBps","type":"uint16"},{"internalType":"uint16","name":"protocolBps","type":"uint16"},{"internalType":"uint16","name":"operatorBps","type":"uint16"},{"internalType":"uint16","name":"stakerBps","type":"uint16"},{"internalType":"uint16","name":"keeperBps","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"setPaymentSplit"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceOracle"},{"inputs":[{"internalType":"address","name":"vaults","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardVaults"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setServiceFeeDistributor"},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setSlashConfig"},{"inputs":[{"internalType":"address","name":"staking","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setStaking"},{"inputs":[{"internalType":"uint16","name":"discountBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setTntPaymentDiscountBps"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTntToken"},{"inputs":[{"internalType":"address","name":"treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"uint256","name":"signerBitmap","type":"uint256"},{"internalType":"uint256[2]","name":"aggregatedSignature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"aggregatedPubkey","type":"uint256[4]"}],"stateMutability":"nonpayable","type":"function","name":"submitAggregatedResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"}],"stateMutability":"payable","type":"function","name":"submitJob","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"bytes","name":"inputs","type":"bytes"},{"internalType":"struct Types.SignedJobQuote[]","name":"quotes","type":"tuple[]","components":[{"internalType":"struct Types.JobQuoteDetails","name":"details","type":"tuple","components":[{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint8","name":"jobIndex","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"expiry","type":"uint64"},{"internalType":"uint8","name":"confidentiality","type":"uint8"}]},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"operator","type":"address"}]}],"stateMutability":"payable","type":"function","name":"submitJobFromQuote","outputs":[{"internalType":"uint64","name":"callId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"callId","type":"uint64"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitResult"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64[]","name":"callIds","type":"uint64[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitResults"},{"inputs":[{"internalType":"uint64","name":"requestId","type":"uint64"}],"stateMutability":"view","type":"function","name":"teeNonceFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateService"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"terminateServiceForNonPayment"},{"inputs":[],"stateMutability":"view","type":"function","name":"tntPaymentDiscountBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tntToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferBlueprint"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"string","name":"metadataUri","type":"string"},{"internalType":"bytes32","name":"metadataHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateBlueprint"},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes","name":"ecdsaPublicKey","type":"bytes"},{"internalType":"string","name":"rpcAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorPreferences"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrow"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address payable","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRemainingEscrowTo"}],"devdoc":{"kind":"dev","methods":{"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"details":"Single entrypoint covering every approval mode. Pass empty/zero fields on `ApprovalParams` to opt out of the corresponding capability: - `securityCommitments == []`: no per-asset commitment supplied (only valid when the request has no security requirements OR the only requirement is the protocol-default TNT requirement, which is auto-filled at min-exposure). - `blsPubkey == [0,0,0,0]`: operator does NOT register a BLS pubkey for aggregated job-result signing. BLS is opt-in — protocol accepts any operator. - `teeCommitments == []`: operator does NOT bind to a TEE attestation profile."},"claimDisputeBond()":{"details":"Pull-pattern. The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block."},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"params":{"definition":"Fully populated blueprint definition struct"},"returns":{"blueprintId":"The new blueprint ID"}},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"details":"No approval flow needed - operators have pre-committed via signatures","params":{"blueprintId":"The blueprint to use","config":"Service configuration","permittedCallers":"Addresses allowed to call jobs","quotes":"Array of signed quotes from operators","ttl":"Service time-to-live (must match quotes)"}},"disputeSlash(uint64,string)":{"details":"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles."},"expireServiceRequest(uint64)":{"details":"Anyone may call once `block.timestamp > req.createdAt + grace` (grace is `_requestExpiryGracePeriod` or `ProtocolConfig.REQUEST_EXPIRY_GRACE_PERIOD`). Reverts if the request was already rejected, already activated, or still within its grace window."},"forceRemoveOperator(uint64,address)":{"params":{"operator":"The operator to remove","serviceId":"The service ID"}},"getOperatorBlsPubkey(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"blsPubkey":"The BLS G2 public key [x0, x1, y0, y1], all zeros if not registered"}},"getOperatorPublicKey(uint64,address)":{"details":"Returns the key used for signing/verifying gossip messages"},"getOperatorTotalActiveServices(address)":{"params":{"operator":"The operator address"},"returns":{"count":"Total number of active services the operator is part of"}},"getServiceResourceCommitmentHash(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"The keccak256 of EIP-712-hashed ResourceCommitment[] (bytes32(0) if none)"}},"getTeeCommitmentRoot(uint64,address)":{"details":"Returns `bytes32(0)` if the operator approved without TEE commitments. The full array was emitted at approval time in `TeeCommitmentsRecorded`; slashing / provisioning oracles supply the array as a witness and verify `keccak256(abi.encode(witness)) == getTeeCommitmentRoot(serviceId, operator)`."},"proposeSlash(uint64,address,uint16,bytes32)":{"params":{"evidence":"Evidence hash","operator":"The operator to slash","serviceId":"The service where violation occurred","slashBps":"Slash percentage in basis points"},"returns":{"slashId":"The ID of the created slash proposal"}},"registerOperator(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to register for","ecdsaPublicKey":"The ECDSA public key for gossip network identity This key is used for signing/verifying messages in the P2P gossip network and may differ from the wallet key (msg.sender)","rpcAddress":"The operator's RPC endpoint URL"}},"registerOperator(uint64,bytes,string,bytes)":{"params":{"registrationInputs":"Encoded payload validated by blueprint's schema"}},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"details":"Each operator must provide security commitments matching these requirements when approving"},"rewardTokens(address)":{"details":"Convenience view; mappings are not enumerable."},"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":{"params":{"split":"The new split configuration"}},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"params":{"disputeBond":"Native asset bond required to dispute (0 = disabled)","disputeResolutionDeadline":"How long SLASH_ADMIN has to resolve a dispute","maxPendingSlashesPerOperator":"Cap on concurrent pending slashes per operator"}},"setStaking(address)":{"params":{"staking":"The IStaking implementation"}},"setTreasury(address)":{"params":{"treasury":"The treasury address"}},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"details":"Only valid for jobs where requiresAggregation returns true","params":{"aggregatedPubkey":"The aggregated public key [x0, x1, y0, y1]","aggregatedSignature":"The aggregated BLS signature [x, y]","callId":"The job call ID","output":"The aggregated output data","serviceId":"The service ID","signerBitmap":"Bitmap indicating which operators signed (bit i = operator i in service)"}},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"params":{"inputs":"Encoded job parameters","jobIndex":"The job type index","quotes":"Array of signed quotes from operators","serviceId":"The service ID"}},"updateOperatorPreferences(uint64,bytes,string)":{"params":{"blueprintId":"The blueprint to update preferences for","ecdsaPublicKey":"New ECDSA public key (pass empty bytes to keep unchanged)","rpcAddress":"New RPC endpoint (pass empty string to keep unchanged)"}},"withdrawRemainingEscrowTo(uint64,address)":{"details":"Service owner can route around blocklisting tokens / smart-account receive constraints. Caller must equal the service owner; recipient is arbitrary but must be non-zero."}},"version":1},"userdoc":{"kind":"user","methods":{"addPermittedCaller(uint64,address)":{"notice":"Add a permitted caller to a service"},"approveService((uint64,((uint8,address),uint16)[],uint256[4],uint256[2],(uint8,bytes32,bytes32,uint64)[]))":{"notice":"Approve a service request as one of its operators."},"billSubscription(uint64)":{"notice":"Bill a subscription service for the current period"},"billSubscriptionBatch(uint64[])":{"notice":"Bill multiple subscription services in one call"},"blsPopMessage(address,uint256[4])":{"notice":"Build the canonical message an operator must sign with their BLS secret key to register a public key. Bound to chainId + verifying contract + operator."},"blueprintCount()":{"notice":"Get current blueprint count"},"blueprintMasterRevision(uint64)":{"notice":"Get master blueprint revision"},"blueprintMetadata(uint64)":{"notice":"Get blueprint metadata and URI"},"blueprintOperatorCount(uint64)":{"notice":"Get number of operators for a blueprint"},"blueprintSources(uint64)":{"notice":"Get blueprint sources"},"blueprintSupportedMemberships(uint64)":{"notice":"Get blueprint supported membership models"},"canScheduleExit(uint64,address)":{"notice":"Check if operator can schedule exit now"},"cancelExit(uint64)":{"notice":"Cancel a scheduled exit before execution"},"cancelSlash(uint64,string)":{"notice":"Cancel a slash proposal"},"claimDisputeBond()":{"notice":"Claim a dispute bond previously refunded via `cancelSlash`."},"claimRewards()":{"notice":"Claim accumulated rewards (native token)"},"claimRewards(address)":{"notice":"Claim accumulated rewards for a specific token"},"claimRewardsAll()":{"notice":"Claim accumulated rewards for all pending tokens"},"claimRewardsBatch(address[])":{"notice":"Claim accumulated rewards for multiple tokens"},"createBlueprint((string,bytes32,address,uint32,bool,(uint8,uint8,uint32,uint32,uint256,uint64,uint256),(string,string,string,string,string,string,string,string,string),(string,string,string,bytes,bytes)[],bytes,bytes,(uint8,(string,string,string),(uint8,uint8,string,string),(uint8,string,string),(string,string,string),(uint8,uint8,string,bytes32)[])[],uint8[]))":{"notice":"Create a blueprint from an encoded definition that includes schemas and job metadata"},"createServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],bytes,address[],uint64)":{"notice":"Create a service instantly using pre-signed operator quotes"},"deactivateBlueprint(uint64)":{"notice":"Deactivate a blueprint"},"defaultTntMinExposureBps()":{"notice":"Get default TNT min exposure bps"},"disputeSlash(uint64,string)":{"notice":"Dispute a slash proposal"},"executeExit(uint64)":{"notice":"Execute a scheduled exit after the queue delay"},"executeSlash(uint64)":{"notice":"Execute a slash proposal"},"executeSlashBatch(uint64[])":{"notice":"Execute a batch of slashes"},"expireServiceRequest(uint64)":{"notice":"Permissionlessly expire a stale service request and refund the requester."},"extendServiceFromQuotes(uint64,((address,uint64,uint64,uint256,uint64,uint64,uint8,((uint8,address),uint16)[],(uint8,uint64)[]),bytes,address)[],uint64)":{"notice":"Extend a service using pre-signed operator quotes"},"forceExit(uint64,address)":{"notice":"Force exit an operator from a service (if permitted by config)"},"forceRemoveOperator(uint64,address)":{"notice":"Force remove an operator from a service (blueprint manager only)"},"fundService(uint64,uint256)":{"notice":"Fund a service escrow balance"},"getBillableServices(uint64[])":{"notice":"Get billable services from a list of candidates"},"getBlueprint(uint64)":{"notice":"Get blueprint info"},"getBlueprintConfig(uint64)":{"notice":"Get blueprint configuration"},"getBlueprintDefinition(uint64)":{"notice":"Get the original blueprint definition"},"getBlueprintResourceRequirements(uint64)":{"notice":"Get default resource requirements for a blueprint"},"getExecutableSlashes(uint64,uint64)":{"notice":"Get list of executable slash IDs in a range"},"getExitConfig(uint64)":{"notice":"Get exit configuration for a service"},"getExitRequest(uint64,address)":{"notice":"Get exit request for an operator"},"getExitStatus(uint64,address)":{"notice":"Get exit status for an operator"},"getJobCall(uint64,uint64)":{"notice":"Get job call info"},"getJobEventRate(uint64,uint8)":{"notice":"Get the effective event rate for a specific job type"},"getJobQuotedOperators(uint64,uint64)":{"notice":"Get the quoted operators for an RFQ job"},"getJobQuotedPrice(uint64,uint64,address)":{"notice":"Get a quoted operator's price for an RFQ job"},"getOperatorBlsPubkey(uint64,address)":{"notice":"Get operator's BLS public key for a service"},"getOperatorPreferences(uint64,address)":{"notice":"Get operator preferences for a blueprint (includes ECDSA public key)"},"getOperatorPublicKey(uint64,address)":{"notice":"Get operator's ECDSA public key for gossip network identity"},"getOperatorRegistration(uint64,address)":{"notice":"Get operator registration for a blueprint"},"getOperatorTotalActiveServices(address)":{"notice":"Get total count of active services for an operator across all blueprints"},"getService(uint64)":{"notice":"Get service info"},"getServiceEscrow(uint64)":{"notice":"Get service escrow details"},"getServiceOperator(uint64,address)":{"notice":"Get operator info for a service"},"getServiceOperators(uint64)":{"notice":"Get the list of operators for a service"},"getServiceRequest(uint64)":{"notice":"Get service request"},"getServiceRequestResourceRequirements(uint64)":{"notice":"Get resource requirements for a service request"},"getServiceRequestSecurityCommitments(uint64,address)":{"notice":"Get security commitments for a service request by operator"},"getServiceRequestSecurityRequirements(uint64)":{"notice":"Get security requirements for a service request"},"getServiceResourceCommitmentHash(uint64,address)":{"notice":"Get the resource commitment hash for an operator in a service"},"getServiceSecurityCommitments(uint64,address)":{"notice":"Get persisted security commitments for an active service by operator"},"getServiceSecurityRequirements(uint64)":{"notice":"Get persisted security requirements for an active service"},"getSlashConfig()":{"notice":"Get current slashing configuration"},"getSlashProposal(uint64)":{"notice":"Get slash proposal details"},"getTeeCommitmentRoot(uint64,address)":{"notice":"keccak256 root over an operator's `TeeAttestationCommitment[]` for a service."},"isOperatorRegistered(uint64,address)":{"notice":"Check if operator is registered for a blueprint"},"isPermittedCaller(uint64,address)":{"notice":"Check if address can call jobs on service"},"isServiceActive(uint64)":{"notice":"Check if service is active"},"isServiceOperator(uint64,address)":{"notice":"Check if address is operator in service"},"joinService(uint64,uint16)":{"notice":"Join an active service (Dynamic membership only)"},"joinServiceWithCommitments(uint64,uint16,((uint8,address),uint16)[])":{"notice":"Join an active service with per-asset security commitments (Dynamic membership only)"},"leaveService(uint64)":{"notice":"Leave an active service (Dynamic membership only)"},"maxBlueprintsPerOperator()":{"notice":"Get max blueprints per operator"},"mbsmRegistry()":{"notice":"Get Master Blueprint Service Manager registry"},"metricsRecorder()":{"notice":"Get the metrics recorder address"},"operatorStatusRegistry()":{"notice":"Get operator status registry"},"pause()":{"notice":"Pause the protocol"},"paymentSplit()":{"notice":"Get the current payment split"},"pendingDisputeBondRefund(address)":{"notice":"Read pending dispute-bond refund balance for a disputer."},"pendingRewards(address)":{"notice":"Get pending rewards for an account (native token)"},"pendingRewards(address,address)":{"notice":"Get pending rewards for an account and token"},"preRegister(uint64)":{"notice":"Signal intent to register for a blueprint"},"priceOracle()":{"notice":"Get price oracle"},"proposeSlash(uint64,address,uint16,bytes32)":{"notice":"Propose a slash against an operator"},"registerOperator(uint64,bytes,string)":{"notice":"Register as operator for a blueprint"},"registerOperator(uint64,bytes,string,bytes)":{"notice":"Register as operator providing blueprint-specific registration inputs"},"rejectService(uint64)":{"notice":"Reject a service request (as operator)"},"removePermittedCaller(uint64,address)":{"notice":"Remove a permitted caller from a service"},"requestService(uint64,address[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a new service"},"requestServiceWithExposure(uint64,address[],uint16[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with explicit exposure commitments"},"requestServiceWithSecurity(uint64,address[],((uint8,address),uint16,uint16)[],bytes,address[],uint64,address,uint256,uint8)":{"notice":"Request a service with multi-asset security requirements"},"rewardTokens(address)":{"notice":"List tokens with non-zero pending rewards for an account"},"rewardVaults()":{"notice":"Get reward vaults address"},"scheduleExit(uint64)":{"notice":"Schedule exit from an active service when exit queues are enabled"},"serviceCount()":{"notice":"Get current service count"},"serviceFeeDistributor()":{"notice":"Get service fee distributor"},"setBlueprintResourceRequirements(uint64,(uint8,uint64)[])":{"notice":"Set default resource requirements for a blueprint (owner only)"},"setDefaultTntMinExposureBps(uint16)":{"notice":"Set default TNT min exposure bps"},"setJobEventRates(uint64,uint8[],uint256[])":{"notice":"Set event rate overrides for one or more job types in a blueprint"},"setMBSMRegistry(address)":{"notice":"Configure Master Blueprint Service Manager registry"},"setMaxBlueprintsPerOperator(uint32)":{"notice":"Set max blueprints per operator"},"setMetricsRecorder(address)":{"notice":"Set the metrics recorder (optional)"},"setOperatorStatusRegistry(address)":{"notice":"Set operator status registry"},"setPaymentSplit((uint16,uint16,uint16,uint16,uint16))":{"notice":"Set the payment split configuration"},"setPriceOracle(address)":{"notice":"Configure price oracle"},"setRewardVaults(address)":{"notice":"Set reward vaults address"},"setServiceFeeDistributor(address)":{"notice":"Configure service fee distributor"},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"notice":"Update slashing configuration"},"setStaking(address)":{"notice":"Set the staking module"},"setTntPaymentDiscountBps(uint16)":{"notice":"Set TNT payment discount bps"},"setTntToken(address)":{"notice":"Set TNT token address"},"setTreasury(address)":{"notice":"Set the protocol treasury"},"submitAggregatedResult(uint64,uint64,bytes,uint256,uint256[2],uint256[4])":{"notice":"Submit an aggregated BLS result for a job"},"submitJob(uint64,uint8,bytes)":{"notice":"Submit a job to a service"},"submitJobFromQuote(uint64,uint8,bytes,((address,uint64,uint8,uint256,uint64,uint64,uint8),bytes,address)[])":{"notice":"Submit a job using signed operator price quotes (RFQ)"},"submitResult(uint64,uint64,bytes)":{"notice":"Submit a job result (as operator)"},"submitResults(uint64,uint64[],bytes[])":{"notice":"Submit multiple results in one transaction"},"teeNonceFor(uint64)":{"notice":"Canonical TEE attestation nonce binding for `requestId` on this contract on this chain. Operators MUST submit this exact value as `nonceBinding` in any `TeeAttestationCommitment` for the request — it eliminates cross-request attestation replay at approval time."},"terminateService(uint64)":{"notice":"Terminate a service (as owner)"},"terminateServiceForNonPayment(uint64)":{"notice":"Permissionlessly terminate an unpaid subscription after grace period"},"tntPaymentDiscountBps()":{"notice":"Get TNT payment discount bps"},"tntToken()":{"notice":"Get TNT token address"},"transferBlueprint(uint64,address)":{"notice":"Transfer blueprint ownership"},"treasury()":{"notice":"Get the configured treasury"},"unpause()":{"notice":"Unpause the protocol"},"unregisterOperator(uint64)":{"notice":"Unregister from a blueprint"},"updateBlueprint(uint64,string,bytes32)":{"notice":"Update blueprint metadata"},"updateOperatorPreferences(uint64,bytes,string)":{"notice":"Update operator preferences for a blueprint"},"withdrawRemainingEscrow(uint64)":{"notice":"Withdraw remaining escrow after termination to the service owner."},"withdrawRemainingEscrowTo(uint64,address)":{"notice":"Withdraw remaining escrow after termination to a service-owner-chosen address."}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangle.sol":"ITangleFull"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/interfaces/ITangle.sol":{"keccak256":"0x8f81cdd684dc6355098e6aa8c2503433b40e94335b5164ea2b8e815bd25c310d","urls":["bzz-raw://9b7d593ce7d1404af196bad03a9a204cf039626aa86f85068d909d271c6d8edd","dweb:/ipfs/QmakW7n1aNBErcJJsLhwAf331W3rmSVQonnjGCacNV8DAZ"],"license":"MIT"},"src/interfaces/ITangleBlueprints.sol":{"keccak256":"0xaf9152e0f85700a269ac4683be7f14d604c28adffac9d3f598c4d636e2cd085d","urls":["bzz-raw://9167520c084b608a14718866e42541876b7e15c8f3c68a720087edb170e3e798","dweb:/ipfs/QmVEC2vw2VuNfqMJzpNe39yK6dVAUHRHnLG3dEbULeybqF"],"license":"MIT"},"src/interfaces/ITangleJobs.sol":{"keccak256":"0xc6d64b165aae31a3815a402fef19f6336ed0eafa60d64fc05323bb52ca79a0f0","urls":["bzz-raw://e314d4effb00258fbcaccc9ed3efc69500da729565798be483916c3ef0aabe47","dweb:/ipfs/QmRVUCQs688jmtrpzTWyBpJtHz4GsMvnxkXdiciMqXhPjd"],"license":"MIT"},"src/interfaces/ITangleOperators.sol":{"keccak256":"0xce666d409611f041d08161dbc39f4165da7c0484baa6aacc60815dccf4a2583a","urls":["bzz-raw://d9c0e27ac2429ac4acbea9f203729b10ca4f2548815c9a817485ed8d236e040f","dweb:/ipfs/QmWwkDVeuHc5UaDt8LU3Swr8PXCE5k1mdwH9zFWWbcybsz"],"license":"MIT"},"src/interfaces/ITangleRewards.sol":{"keccak256":"0xc17384e99e1c19c8ce4b05c081ac9d63b6414f1d17c75de58f2e0919e7831741","urls":["bzz-raw://e34cc51ec1bdecf0f0909fa375bc245cd2761e00f0f60e7fff31c40728b48bb5","dweb:/ipfs/QmPPkdfawYRdLoV83G6YkFFCnh5qKqPH1nodaLTmVD5ALR"],"license":"MIT"},"src/interfaces/ITangleServices.sol":{"keccak256":"0x7fba18afbe05abb9cbda852a011c5f87c2cd3c72c18bc521620a7199c798c140","urls":["bzz-raw://b7273ede38ef52be90c3a14cb38b92e7a0373469364044ca5c379316a829f9a9","dweb:/ipfs/QmVu6ZM95vBk76oN2z2w3ZCtM21dJk53FKLT3EKc9X8KiH"],"license":"MIT"},"src/interfaces/ITangleSlashing.sol":{"keccak256":"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5","urls":["bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74","dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58","urls":["bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412","dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB"],"license":"MIT"},"src/libraries/PaymentLib.sol":{"keccak256":"0x818b32fd77219fd4c91bc15bb91f8eb059b363ac9cfe9f601358fef8f8d1a196","urls":["bzz-raw://c22a401c62563aa9eccf48a40b79083b5116bb67f1c53bc6e9df20ceb15aaeb0","dweb:/ipfs/QmXGyhEpu6JswZPPvPnJE2rVHtSag4hhHmv4L5mFh5TL3H"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/bindings/abi/ITangleSlashing.json b/bindings/abi/ITangleSlashing.json index cc29ef91..0acd78ca 100644 --- a/bindings/abi/ITangleSlashing.json +++ b/bindings/abi/ITangleSlashing.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"cancelSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimDisputeBond","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disputeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashBatch","inputs":[{"name":"slashIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"executedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getExecutableSlashes","inputs":[{"name":"fromId","type":"uint64","internalType":"uint64"},{"name":"toId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getSlashConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashConfig","components":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashProposal","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashProposal","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"proposer","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"},{"name":"proposedAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum SlashingLib.SlashStatus"},{"name":"disputeReason","type":"string","internalType":"string"},{"name":"disputer","type":"address","internalType":"address"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"disputedAt","type":"uint64","internalType":"uint64"},{"name":"disputeDeadline","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"pendingDisputeBondRefund","inputs":[{"name":"disputer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposeSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashConfig","inputs":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlashCancelled","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"canceller","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashConfigUpdated","inputs":[{"name":"disputeWindow","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","indexed":false,"internalType":"bool"},{"name":"maxSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"disputeBond","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SlashDisputed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"disputer","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashExecuted","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"actualSlashed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashProposed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"proposer","type":"address","indexed":false,"internalType":"address"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"evidence","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"executeAfter","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"cancelSlash(uint64,string)":"06079dc5","claimDisputeBond()":"ead1df17","disputeSlash(uint64,string)":"77380c74","executeSlash(uint64)":"a5bfbae4","executeSlashBatch(uint64[])":"b055449b","getExecutableSlashes(uint64,uint64)":"110f829b","getSlashConfig()":"8fc3b8b3","getSlashProposal(uint64)":"ef1b42a2","pendingDisputeBondRefund(address)":"8c2f4ee4","proposeSlash(uint64,address,uint16,bytes32)":"0472d2ff","setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":"72155d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"canceller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"SlashConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"name\":\"SlashExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"SlashProposed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"cancelSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDisputeBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"disputeSlash\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"slashIds\",\"type\":\"uint64[]\"}],\"name\":\"executeSlashBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"toId\",\"type\":\"uint64\"}],\"name\":\"getExecutableSlashes\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSlashConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"internalType\":\"struct SlashingLib.SlashConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"enum SlashingLib.SlashStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"disputeReason\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"disputedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"disputeDeadline\",\"type\":\"uint64\"}],\"internalType\":\"struct SlashingLib.SlashProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"name\":\"pendingDisputeBondRefund\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"proposeSlash\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"setSlashConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"claimDisputeBond()\":{\"details\":\"Pull-pattern (Round 3 audit fix for economic F3). The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block.\"},\"disputeSlash(uint64,string)\":{\"details\":\"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"params\":{\"evidence\":\"Evidence hash\",\"operator\":\"The operator to slash\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"},\"returns\":{\"slashId\":\"The ID of the created slash proposal\"}},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"params\":{\"disputeBond\":\"Native asset bond required to dispute (0 = disabled)\",\"disputeResolutionDeadline\":\"How long SLASH_ADMIN has to resolve a dispute\",\"maxPendingSlashesPerOperator\":\"Cap on concurrent pending slashes per operator\"}}},\"title\":\"ITangleSlashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelSlash(uint64,string)\":{\"notice\":\"Cancel a slash proposal\"},\"claimDisputeBond()\":{\"notice\":\"Claim a dispute bond previously refunded via `cancelSlash`.\"},\"disputeSlash(uint64,string)\":{\"notice\":\"Dispute a slash proposal\"},\"executeSlash(uint64)\":{\"notice\":\"Execute a slash proposal\"},\"executeSlashBatch(uint64[])\":{\"notice\":\"Execute a batch of slashes\"},\"getExecutableSlashes(uint64,uint64)\":{\"notice\":\"Get list of executable slash IDs in a range\"},\"getSlashConfig()\":{\"notice\":\"Get current slashing configuration\"},\"getSlashProposal(uint64)\":{\"notice\":\"Get slash proposal details\"},\"pendingDisputeBondRefund(address)\":{\"notice\":\"Read pending dispute-bond refund balance for a disputer.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"notice\":\"Propose a slash against an operator\"},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"notice\":\"Update slashing configuration\"}},\"notice\":\"Slashing interface for Tangle protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangleSlashing.sol\":\"ITangleSlashing\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c\",\"dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622\",\"dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"canceller","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashCancelled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64","indexed":false},{"internalType":"bool","name":"instantSlashEnabled","type":"bool","indexed":false},{"internalType":"uint16","name":"maxSlashBps","type":"uint16","indexed":false},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64","indexed":false},{"internalType":"uint256","name":"disputeBond","type":"uint256","indexed":false},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false}],"type":"event","name":"SlashConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"disputer","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashDisputed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"actualSlashed","type":"uint256","indexed":false}],"type":"event","name":"SlashExecuted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16","indexed":false},{"internalType":"bytes32","name":"evidence","type":"bytes32","indexed":false},{"internalType":"uint64","name":"executeAfter","type":"uint64","indexed":false}],"type":"event","name":"SlashProposed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"cancelSlash"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimDisputeBond"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"payable","type":"function","name":"disputeSlash"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"uint64[]","name":"slashIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"executeSlashBatch","outputs":[{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"executedCount","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"fromId","type":"uint64"},{"internalType":"uint64","name":"toId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExecutableSlashes","outputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSlashConfig","outputs":[{"internalType":"struct SlashingLib.SlashConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashProposal","outputs":[{"internalType":"struct SlashingLib.SlashProposal","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"},{"internalType":"uint64","name":"proposedAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"enum SlashingLib.SlashStatus","name":"status","type":"uint8"},{"internalType":"string","name":"disputeReason","type":"string"},{"internalType":"address","name":"disputer","type":"address"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint64","name":"disputedAt","type":"uint64"},{"internalType":"uint64","name":"disputeDeadline","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"disputer","type":"address"}],"stateMutability":"view","type":"function","name":"pendingDisputeBondRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"proposeSlash","outputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setSlashConfig"}],"devdoc":{"kind":"dev","methods":{"claimDisputeBond()":{"details":"Pull-pattern (Round 3 audit fix for economic F3). The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block."},"disputeSlash(uint64,string)":{"details":"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles."},"proposeSlash(uint64,address,uint16,bytes32)":{"params":{"evidence":"Evidence hash","operator":"The operator to slash","serviceId":"The service where violation occurred","slashBps":"Slash percentage in basis points"},"returns":{"slashId":"The ID of the created slash proposal"}},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"params":{"disputeBond":"Native asset bond required to dispute (0 = disabled)","disputeResolutionDeadline":"How long SLASH_ADMIN has to resolve a dispute","maxPendingSlashesPerOperator":"Cap on concurrent pending slashes per operator"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelSlash(uint64,string)":{"notice":"Cancel a slash proposal"},"claimDisputeBond()":{"notice":"Claim a dispute bond previously refunded via `cancelSlash`."},"disputeSlash(uint64,string)":{"notice":"Dispute a slash proposal"},"executeSlash(uint64)":{"notice":"Execute a slash proposal"},"executeSlashBatch(uint64[])":{"notice":"Execute a batch of slashes"},"getExecutableSlashes(uint64,uint64)":{"notice":"Get list of executable slash IDs in a range"},"getSlashConfig()":{"notice":"Get current slashing configuration"},"getSlashProposal(uint64)":{"notice":"Get slash proposal details"},"pendingDisputeBondRefund(address)":{"notice":"Read pending dispute-bond refund balance for a disputer."},"proposeSlash(uint64,address,uint16,bytes32)":{"notice":"Propose a slash against an operator"},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"notice":"Update slashing configuration"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangleSlashing.sol":"ITangleSlashing"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ITangleSlashing.sol":{"keccak256":"0x3335a5483533d182b5372989f8e19bc19c81ad619217df57f90f5661aeb49280","urls":["bzz-raw://4bd1dca0162f95c61399bb76dea347c94d602eb4bc7395274fa250bef793799c","dweb:/ipfs/QmX23j4h26irZ6vCKzoqz5gm7W9Yk6dqCZGwJqoc972FY7"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0x4ac59a2a6da63d2321a33672cf9845ee8abae5da4d7f5e396fcc48b27cbf6bbd","urls":["bzz-raw://6089bac18ad1d2a7356f3fd030ac63083aa0c4723e59e374a9cd763c77e76622","dweb:/ipfs/QmXX9NBFV1pSiTpsw4ojC74eX47Sd4braXcTRu2W6fwWK8"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file +{"abi":[{"type":"function","name":"cancelSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimDisputeBond","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disputeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"actualSlashed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashBatch","inputs":[{"name":"slashIds","type":"uint64[]","internalType":"uint64[]"}],"outputs":[{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"executedCount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getExecutableSlashes","inputs":[{"name":"fromId","type":"uint64","internalType":"uint64"},{"name":"toId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"ids","type":"uint64[]","internalType":"uint64[]"}],"stateMutability":"view"},{"type":"function","name":"getSlashConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashConfig","components":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getSlashProposal","inputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingLib.SlashProposal","components":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"proposer","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"},{"name":"proposedAt","type":"uint64","internalType":"uint64"},{"name":"executeAfter","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum SlashingLib.SlashStatus"},{"name":"disputeReason","type":"string","internalType":"string"},{"name":"disputer","type":"address","internalType":"address"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"disputedAt","type":"uint64","internalType":"uint64"},{"name":"disputeDeadline","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"pendingDisputeBondRefund","inputs":[{"name":"disputer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposeSlash","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"slashId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashConfig","inputs":[{"name":"disputeWindow","type":"uint64","internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","internalType":"bool"},{"name":"maxSlashBps","type":"uint16","internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","internalType":"uint64"},{"name":"disputeBond","type":"uint256","internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlashCancelled","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"canceller","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashConfigUpdated","inputs":[{"name":"disputeWindow","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"instantSlashEnabled","type":"bool","indexed":false,"internalType":"bool"},{"name":"maxSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"disputeResolutionDeadline","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"disputeBond","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SlashDisputed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"disputer","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SlashExecuted","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"actualSlashed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashProposed","inputs":[{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"proposer","type":"address","indexed":false,"internalType":"address"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"effectiveSlashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"evidence","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"executeAfter","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"cancelSlash(uint64,string)":"06079dc5","claimDisputeBond()":"ead1df17","disputeSlash(uint64,string)":"77380c74","executeSlash(uint64)":"a5bfbae4","executeSlashBatch(uint64[])":"b055449b","getExecutableSlashes(uint64,uint64)":"110f829b","getSlashConfig()":"8fc3b8b3","getSlashProposal(uint64)":"ef1b42a2","pendingDisputeBondRefund(address)":"8c2f4ee4","proposeSlash(uint64,address,uint16,bytes32)":"0472d2ff","setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":"72155d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"canceller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"SlashConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"name\":\"SlashExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"}],\"name\":\"SlashProposed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"cancelSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDisputeBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"disputeSlash\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualSlashed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"slashIds\",\"type\":\"uint64[]\"}],\"name\":\"executeSlashBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedCount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"toId\",\"type\":\"uint64\"}],\"name\":\"getExecutableSlashes\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"ids\",\"type\":\"uint64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSlashConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"internalType\":\"struct SlashingLib.SlashConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"effectiveSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"executeAfter\",\"type\":\"uint64\"},{\"internalType\":\"enum SlashingLib.SlashStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"disputeReason\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"disputedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"disputeDeadline\",\"type\":\"uint64\"}],\"internalType\":\"struct SlashingLib.SlashProposal\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"name\":\"pendingDisputeBondRefund\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"name\":\"proposeSlash\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputeWindow\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"instantSlashEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxSlashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"disputeResolutionDeadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeBond\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxPendingSlashesPerOperator\",\"type\":\"uint16\"}],\"name\":\"setSlashConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"claimDisputeBond()\":{\"details\":\"Pull-pattern. The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block.\"},\"disputeSlash(uint64,string)\":{\"details\":\"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"params\":{\"evidence\":\"Evidence hash\",\"operator\":\"The operator to slash\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"},\"returns\":{\"slashId\":\"The ID of the created slash proposal\"}},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"params\":{\"disputeBond\":\"Native asset bond required to dispute (0 = disabled)\",\"disputeResolutionDeadline\":\"How long SLASH_ADMIN has to resolve a dispute\",\"maxPendingSlashesPerOperator\":\"Cap on concurrent pending slashes per operator\"}}},\"title\":\"ITangleSlashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelSlash(uint64,string)\":{\"notice\":\"Cancel a slash proposal\"},\"claimDisputeBond()\":{\"notice\":\"Claim a dispute bond previously refunded via `cancelSlash`.\"},\"disputeSlash(uint64,string)\":{\"notice\":\"Dispute a slash proposal\"},\"executeSlash(uint64)\":{\"notice\":\"Execute a slash proposal\"},\"executeSlashBatch(uint64[])\":{\"notice\":\"Execute a batch of slashes\"},\"getExecutableSlashes(uint64,uint64)\":{\"notice\":\"Get list of executable slash IDs in a range\"},\"getSlashConfig()\":{\"notice\":\"Get current slashing configuration\"},\"getSlashProposal(uint64)\":{\"notice\":\"Get slash proposal details\"},\"pendingDisputeBondRefund(address)\":{\"notice\":\"Read pending dispute-bond refund balance for a disputer.\"},\"proposeSlash(uint64,address,uint16,bytes32)\":{\"notice\":\"Propose a slash against an operator\"},\"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)\":{\"notice\":\"Update slashing configuration\"}},\"notice\":\"Slashing interface for Tangle protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ITangleSlashing.sol\":\"ITangleSlashing\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ITangleSlashing.sol\":{\"keccak256\":\"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74\",\"dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412\",\"dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB\"]},\"src/libraries/SlashingLib.sol\":{\"keccak256\":\"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f\",\"dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"canceller","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashCancelled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64","indexed":false},{"internalType":"bool","name":"instantSlashEnabled","type":"bool","indexed":false},{"internalType":"uint16","name":"maxSlashBps","type":"uint16","indexed":false},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64","indexed":false},{"internalType":"uint256","name":"disputeBond","type":"uint256","indexed":false},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16","indexed":false}],"type":"event","name":"SlashConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"address","name":"disputer","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashDisputed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"actualSlashed","type":"uint256","indexed":false}],"type":"event","name":"SlashExecuted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16","indexed":false},{"internalType":"bytes32","name":"evidence","type":"bytes32","indexed":false},{"internalType":"uint64","name":"executeAfter","type":"uint64","indexed":false}],"type":"event","name":"SlashProposed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"cancelSlash"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimDisputeBond"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"payable","type":"function","name":"disputeSlash"},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"actualSlashed","type":"uint256"}]},{"inputs":[{"internalType":"uint64[]","name":"slashIds","type":"uint64[]"}],"stateMutability":"nonpayable","type":"function","name":"executeSlashBatch","outputs":[{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"executedCount","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"fromId","type":"uint64"},{"internalType":"uint64","name":"toId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getExecutableSlashes","outputs":[{"internalType":"uint64[]","name":"ids","type":"uint64[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSlashConfig","outputs":[{"internalType":"struct SlashingLib.SlashConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}]}]},{"inputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashProposal","outputs":[{"internalType":"struct SlashingLib.SlashProposal","name":"","type":"tuple","components":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint16","name":"effectiveSlashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"},{"internalType":"uint64","name":"proposedAt","type":"uint64"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"enum SlashingLib.SlashStatus","name":"status","type":"uint8"},{"internalType":"string","name":"disputeReason","type":"string"},{"internalType":"address","name":"disputer","type":"address"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint64","name":"disputedAt","type":"uint64"},{"internalType":"uint64","name":"disputeDeadline","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"disputer","type":"address"}],"stateMutability":"view","type":"function","name":"pendingDisputeBondRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"proposeSlash","outputs":[{"internalType":"uint64","name":"slashId","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"disputeWindow","type":"uint64"},{"internalType":"bool","name":"instantSlashEnabled","type":"bool"},{"internalType":"uint16","name":"maxSlashBps","type":"uint16"},{"internalType":"uint64","name":"disputeResolutionDeadline","type":"uint64"},{"internalType":"uint256","name":"disputeBond","type":"uint256"},{"internalType":"uint16","name":"maxPendingSlashesPerOperator","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setSlashConfig"}],"devdoc":{"kind":"dev","methods":{"claimDisputeBond()":{"details":"Pull-pattern. The bond is credited into a per-disputer mapping at `cancelSlash` time and remains there until the disputer calls this method. Avoids re-entry into the staking module that would otherwise let the disputer's fallback slip past the pending-slash withdrawal block."},"disputeSlash(uint64,string)":{"details":"`payable` because the implementation requires `msg.value == config.disputeBond` when the bond is non-zero (and zero otherwise). Typed callers must use a payable reference so `disputeSlash{value: bond}(...)` compiles."},"proposeSlash(uint64,address,uint16,bytes32)":{"params":{"evidence":"Evidence hash","operator":"The operator to slash","serviceId":"The service where violation occurred","slashBps":"Slash percentage in basis points"},"returns":{"slashId":"The ID of the created slash proposal"}},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"params":{"disputeBond":"Native asset bond required to dispute (0 = disabled)","disputeResolutionDeadline":"How long SLASH_ADMIN has to resolve a dispute","maxPendingSlashesPerOperator":"Cap on concurrent pending slashes per operator"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelSlash(uint64,string)":{"notice":"Cancel a slash proposal"},"claimDisputeBond()":{"notice":"Claim a dispute bond previously refunded via `cancelSlash`."},"disputeSlash(uint64,string)":{"notice":"Dispute a slash proposal"},"executeSlash(uint64)":{"notice":"Execute a slash proposal"},"executeSlashBatch(uint64[])":{"notice":"Execute a batch of slashes"},"getExecutableSlashes(uint64,uint64)":{"notice":"Get list of executable slash IDs in a range"},"getSlashConfig()":{"notice":"Get current slashing configuration"},"getSlashProposal(uint64)":{"notice":"Get slash proposal details"},"pendingDisputeBondRefund(address)":{"notice":"Read pending dispute-bond refund balance for a disputer."},"proposeSlash(uint64,address,uint16,bytes32)":{"notice":"Propose a slash against an operator"},"setSlashConfig(uint64,bool,uint16,uint64,uint256,uint16)":{"notice":"Update slashing configuration"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ITangleSlashing.sol":"ITangleSlashing"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ITangleSlashing.sol":{"keccak256":"0xbaf37178d76650a76e175a43fe0cd62a8656efa75b46dc0bbdaa42cc012a45d5","urls":["bzz-raw://7012c0aa8ee7716f4c28538e927f649e252ec0562e35b3271739c30890838b74","dweb:/ipfs/Qmab6Rha7AFFBJfokHTFrb1N1gnFsuu8tjbw2xSL36t1Ke"],"license":"MIT"},"src/libraries/Errors.sol":{"keccak256":"0xfabde63ff79437c083bdf5023a7453c149003ed2b77f48581fda39370ca8ec58","urls":["bzz-raw://0430282ce5e0bb46605378a47f1013b79142b1ab6a7bad76724d675060381412","dweb:/ipfs/QmRV6DFMg9uHFkfoC6DeyHyLv6BuuDyQ6RFTDCV4ycsPfB"],"license":"MIT"},"src/libraries/SlashingLib.sol":{"keccak256":"0xbe214b1c5e744a8aa9b00c70733803b37cf721c6d86bcde92174dc7cf6b046f8","urls":["bzz-raw://14c5cb004f0f8870ae958fdc719a3adb1f91a4b5b58ff8df0ebcb17b90ca908f","dweb:/ipfs/QmaQG7GPxun3HZjBTvjgErVtdFPKFWHYQGCL5BtDx6Xd9J"],"license":"MIT"}},"version":1},"id":124} \ No newline at end of file diff --git a/bindings/abi/MultiAssetDelegation.json b/bindings/abi/MultiAssetDelegation.json index d0eaa3aa..c819444e 100644 --- a/bindings/abi/MultiAssetDelegation.json +++ b/bindings/abi/MultiAssetDelegation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ASSET_MANAGER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BPS_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COMMISSION_CHANGE_DELAY","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"LOCK_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_LOCK_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_NONE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"PRECISION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TANGLE_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VIRTUAL_ASSETS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"VIRTUAL_SHARES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSlashCount","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"clearFacetSelectors","inputs":[{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentRound","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"delegationBondLessDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"facetForSelector","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAccumulatedDust","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAssetAdapter","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOperatorSlashFactor","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPendingSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashImpact","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"lostAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashRecord","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingManager.SlashRecord","components":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getSnapshot","inputs":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorSnapshot","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"totalDelegated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"nativeMinOperatorStake","type":"uint256","internalType":"uint256"},{"name":"nativeMinDelegation","type":"uint256","internalType":"uint256"},{"name":"_operatorCommissionBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastRoundAdvance","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveDelegatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveOperatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nativeEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nextSlashId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"operatorCommissionBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerFacet","inputs":[{"name":"facet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFacetSelectors","inputs":[{"name":"facet","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requireAdapters","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"resetPendingSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roundDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"serviceSlashCount","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"slashHistory","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"BlueprintAddedToDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintRemovedFromDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Delegated","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"selectionMode","type":"uint8","indexed":false,"internalType":"enum Types.BlueprintSelectionMode"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeExecuted","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"estimatedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lock","type":"uint8","indexed":false,"internalType":"enum Types.LockMultiplier"}],"anonymous":false},{"type":"event","name":"DustAccumulated","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalDust","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DustSwept","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExpiredLocksHarvested","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FacetRegistered","inputs":[{"name":"facet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FacetSelectorCleared","inputs":[{"name":"selector","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"FacetSelectorSet","inputs":[{"name":"selector","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"facet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintAdded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintRemoved","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorDelegationModeSet","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"mode","type":"uint8","indexed":false,"internalType":"enum Types.DelegationMode"}],"anonymous":false},{"type":"event","name":"OperatorLeavingScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeft","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"stake","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorStakeIncreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeExecuted","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorWhitelistUpdated","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PendingSlashCountReset","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PendingSlashDecremented","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PendingSlashIncremented","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SlashRecorded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Slashed","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"operatorSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"delegatorsSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashedForService","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"commitmentCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WithdrawScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotAContract","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SelectorAlreadyRegistered","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"},{"name":"existingFacet","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownSelector","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60a06040523461003e5761001161004d565b610019610043565b6144556103078239608051818181613880015281816138e50152613a94015261445590f35b610049565b60405190565b5f80fd5b61005561005f565b61005d61022a565b565b610067610069565b565b610071610073565b565b61007b61007d565b565b610085610087565b565b61008f610091565b565b61009961009b565b565b6100a36100a5565b565b6100ad6100af565b565b6100b76100b9565b565b6100c16100c3565b565b6100cb6100cd565b565b6100d56100d7565b565b6100df6100e1565b565b6100e961012d565b565b60018060a01b031690565b90565b61010d610108610112926100eb565b6100f6565b6100eb565b90565b61011e906100f9565b90565b61012a90610115565b90565b61013630610121565b608052565b60401c90565b60ff1690565b6101536101589161013b565b610141565b90565b6101659054610147565b90565b5f0190565b5f1c90565b60018060401b031690565b61018961018e9161016d565b610172565b90565b61019b905461017d565b90565b60018060401b031690565b5f1b90565b906101bf60018060401b03916101a9565b9181191691161790565b6101dd6101d86101e29261019e565b6100f6565b61019e565b90565b90565b906101fd6101f8610204926101c9565b6101e5565b82546101ae565b9055565b6102119061019e565b9052565b9190610228905f60208501940190610208565b565b6102326102e2565b61023d5f820161015b565b6102c65761024c5f8201610191565b61026461025e60018060401b0361019e565b9161019e565b0361026d575b50565b610280905f60018060401b0391016101e8565b60018060401b036102bd7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2916102b4610043565b91829182610215565b0390a15f61026a565b5f63f92ee8a960e01b8152806102de60048201610168565b0390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009056fe60806040526004361015610015575b366134ce57005b61001f5f356103ce565b806301ffc9a7146103c957806305d64e38146103c45780630aa8b110146103bf57806312d91c88146103ba57806318056dc2146103b557806319e82e61146103b0578063248a9ca3146103ab5780632f2ff15d146103a657806332273f61146103a157806336568abe1461039c578063453eccea1461039757806346d163aa14610392578063491474111461038d5780634962f88f146103885780634de8addc146103835780634e9c929a1461037e5780634f1ef286146103795780635095af641461037457806352d1902d1461036f57806354de23201461036a5780635c975abb14610365578063602356e31461036057806366c368751461035b57806372b5032d1461035657806375b238fc1461035157806377ab2cf31461034c5780637df92ada1461034757806388c47f68146103425780638a19c8bc1461033d5780638a7fe60f1461033857806390837ff41461033357806391d148541461032e5780639480e4dd146103295780639494f42614610324578063960856731461031f5780639722f4b91461031a5780639e87058514610315578063a217fddf14610310578063a457af3d1461030b578063a4b32de814610306578063a7fa6f9814610301578063aaf5eb68146102fc578063ad3cb1cc146102f7578063b54b2b9e146102f2578063b6608409146102ed578063ba05bbf5146102e8578063c07449e2146102e3578063c550d938146102de578063cbb6d6bd146102d9578063d27a6f06146102d4578063d45ff582146102cf578063d547741f146102ca578063db8a173a146102c5578063dd764abf146102c0578063e07dec29146102bb578063e1a45218146102b6578063e27e05c1146102b1578063f3c9b311146102ac5763f7cb789a0361000e57611fc4565b611f80565b611f13565b611ede565b611e75565b611e0c565b611d9a565b611d57565b611d22565b611cb4565b611c44565b611b82565b611b4c565b611ade565b611a9a565b611a2e565b6119ea565b6118bb565b611848565b6117db565b611776565b611654565b6115e4565b611575565b61151f565b6114d0565b611461565b61142b565b6113f6565b6113c1565b61136a565b611328565b6112b9565b61124b565b6111db565b611176565b611141565b61110c565b6110a8565b611073565b611006565b610fd1565b610f78565b610e1c565b610d6d565b610d28565b610cbb565b610c88565b610c35565b610bc9565b610b94565b610b2a565b610ac8565b610a61565b61099a565b610917565b610872565b61050f565b61045a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b6103fb816103e6565b0361040257565b5f80fd5b90503590610413826103f2565b565b9060208282031261042e5761042b915f01610406565b90565b6103de565b151590565b61044190610433565b9052565b9190610458905f60208501940190610438565b565b3461048a57610486610475610470366004610415565b611ffd565b61047d6103d4565b91829182610445565b0390f35b6103da565b5f91031261049957565b6103de565b1c90565b60018060401b031690565b6104bd9060086104c2930261049e565b6104a2565b90565b906104d091546104ad565b90565b6104df5f6010906104c5565b90565b60018060401b031690565b6104f6906104e2565b9052565b919061050d905f602085019401906104ed565b565b3461053f5761051f36600461048f565b61053b61052a6104d3565b6105326103d4565b918291826104fa565b0390f35b6103da565b60018060a01b031690565b61055890610544565b90565b6105648161054f565b0361056b57565b5f80fd5b9050359061057c8261055b565b565b610587816104e2565b0361058e57565b5f80fd5b9050359061059f8261057e565b565b91906040838203126105c957806105bd6105c6925f860161056f565b93602001610592565b90565b6103de565b90565b6105e56105e06105ea92610544565b6105ce565b610544565b90565b6105f6906105d1565b90565b610602906105ed565b90565b9061060f906105f9565b5f5260205260405f2090565b61062f61062a610634926104e2565b6105ce565b6104e2565b90565b906106419061061b565b5f5260205260405f2090565b5f1c90565b61065e6106639161064d565b6104a2565b90565b6106709054610652565b90565b60401c90565b61068561068a91610673565b6104a2565b90565b6106979054610679565b90565b60801c90565b6106ac6106b19161069a565b6104a2565b90565b6106be90546106a0565b90565b90565b6106d06106d59161064d565b6106c1565b90565b6106e290546106c4565b90565b61ffff1690565b6106f86106fd9161064d565b6106e5565b90565b61070a90546106ec565b90565b90565b61071c6107219161064d565b61070d565b90565b61072e9054610710565b90565b90610740610745926055610605565b610637565b6107505f8201610666565b9161075c5f830161068d565b916107685f82016106b4565b91610775600183016106d8565b9161078260028201610700565b9161078f60038301610724565b9161079c60048201610724565b916107b560066107ae60058501610724565b93016106d8565b90565b90565b6107c4906107b8565b9052565b61ffff1690565b6107d8906107c8565b9052565b90565b6107e8906107dc565b9052565b9694929099989795939161012088019a5f8901610808916104ed565b60208801610815916104ed565b60408701610822916104ed565b6060860161082f916107bb565b6080850161083c916107cf565b60a08401610849916107df565b60c08301610856916107df565b60e08201610863916107df565b61010001610870916107bb565b565b346108ad576108a961088e6108883660046105a1565b90610731565b956108a09997999591959492946103d4565b998a998a6107ec565b0390f35b6103da565b6108bb816107b8565b036108c257565b5f80fd5b905035906108d3826108b2565b565b91906040838203126108fd57806108f16108fa925f860161056f565b936020016108c6565b90565b6103de565b9190610915905f602085019401906107df565b565b346109485761094461093361092d3660046108d5565b90612095565b61093b6103d4565b91829182610902565b0390f35b6103da565b90565b61096461095f6109699261094d565b6105ce565b6107c8565b90565b610977612af8610950565b90565b61098261096c565b90565b9190610998905f602085019401906107cf565b565b346109ca576109aa36600461048f565b6109c66109b561097a565b6109bd6103d4565b91829182610985565b0390f35b6103da565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a135781359160018060401b038311610a0e576020019260208302840111610a0957565b6109d7565b6109d3565b6109cf565b919091604081840312610a5757610a31835f830161056f565b92602082013560018060401b038111610a5257610a4e92016109db565b9091565b6103e2565b6103de565b5f0190565b34610a9057610a7a610a74366004610a18565b91612166565b610a826103d4565b80610a8c81610a5c565b0390f35b6103da565b90602082820312610aae57610aab915f016108c6565b90565b6103de565b9190610ac6905f602085019401906107bb565b565b34610af857610af4610ae3610ade366004610a95565b61219e565b610aeb6103d4565b91829182610ab3565b0390f35b6103da565b9190604083820312610b255780610b19610b22925f86016108c6565b9360200161056f565b90565b6103de565b34610b5957610b43610b3d366004610afd565b906121f2565b610b4b6103d4565b80610b5581610a5c565b0390f35b6103da565b610b6e906008610b73930261049e565b6106e5565b90565b90610b819154610b5e565b90565b610b916001601090610b76565b90565b34610bc457610ba436600461048f565b610bc0610baf610b84565b610bb76103d4565b91829182610985565b0390f35b6103da565b34610bf857610be2610bdc366004610afd565b906121fe565b610bea6103d4565b80610bf481610a5c565b0390f35b6103da565b90565b610c14610c0f610c1992610bfd565b6105ce565b6107c8565b90565b610c27613e80610c00565b90565b610c32610c1c565b90565b34610c6557610c4536600461048f565b610c61610c50610c2a565b610c586103d4565b91829182610985565b0390f35b6103da565b90602082820312610c8357610c80915f0161056f565b90565b6103de565b34610cb657610ca0610c9b366004610c6a565b61233c565b610ca86103d4565b80610cb281610a5c565b0390f35b6103da565b34610ceb57610ce7610cd6610cd1366004610c6a565b61241a565b610cde6103d4565b91829182610902565b0390f35b6103da565b90565b610d07610d02610d0c92610cf0565b6105ce565b6107c8565b90565b610d1a612710610cf3565b90565b610d25610d0f565b90565b34610d5857610d3836600461048f565b610d54610d43610d1d565b610d4b6103d4565b91829182610985565b0390f35b6103da565b610d6a60016008906104c5565b90565b34610d9d57610d7d36600461048f565b610d99610d88610d5d565b610d906103d4565b918291826104fa565b0390f35b6103da565b9190604083820312610dca5780610dbe610dc7925f8601610592565b9360200161056f565b90565b6103de565b90610dd99061061b565b5f5260205260405f2090565b90610def906105f9565b5f5260205260405f2090565b610e14610e1992610e0f6058935f94610dcf565b610de5565b6104c5565b90565b34610e4d57610e49610e38610e32366004610da2565b90610dfb565b610e406103d4565b918291826104fa565b0390f35b6103da565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e7e90610e56565b810190811060018060401b03821117610e9657604052565b610e60565b90610eae610ea76103d4565b9283610e74565b565b60018060401b038111610ecc57610ec8602091610e56565b0190565b610e60565b90825f939282370152565b90929192610ef1610eec82610eb0565b610e9b565b93818552602085019082840111610f0d57610f0b92610ed1565b565b610e52565b9080601f83011215610f3057816020610f2d93359101610edc565b90565b6109cf565b919091604081840312610f7357610f4e835f830161056f565b92602082013560018060401b038111610f6e57610f6b9201610f12565b90565b6103e2565b6103de565b610f8c610f86366004610f35565b90612462565b610f946103d4565b80610f9e81610a5c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fce610fa2565b90565b3461100157610fe136600461048f565b610ffd610fec610fc6565b610ff46103d4565b91829182610ab3565b0390f35b6103da565b346110365761101636600461048f565b6110326110216124d9565b6110296103d4565b91829182610ab3565b0390f35b6103da565b90565b61105261104d6110579261103b565b6105ce565b6107c8565b90565b611065612ee061103e565b90565b61107061105a565b90565b346110a35761108336600461048f565b61109f61108e611068565b6110966103d4565b91829182610985565b0390f35b6103da565b346110d8576110b836600461048f565b6110d46110c361250d565b6110cb6103d4565b91829182610445565b0390f35b6103da565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111096110dd565b90565b3461113c5761111c36600461048f565b611138611127611101565b61112f6103d4565b91829182610ab3565b0390f35b6103da565b346111715761116d61115c611157366004610c6a565b61252f565b6111646103d4565b918291826104fa565b0390f35b6103da565b346111a7576111a361119261118c366004610da2565b9061254e565b61119a6103d4565b918291826104fa565b0390f35b6103da565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111d86111ac565b90565b3461120b576111eb36600461048f565b6112076111f66111d0565b6111fe6103d4565b91829182610ab3565b0390f35b6103da565b60ff1690565b61122690600861122b930261049e565b611210565b90565b906112399154611216565b90565b61124860055f9061122e565b90565b3461127b5761125b36600461048f565b61127761126661123c565b61126e6103d4565b91829182610445565b0390f35b6103da565b90565b61129761129261129c92611280565b6105ce565b6104e2565b90565b6112ab624f1a00611283565b90565b6112b661129f565b90565b346112e9576112c936600461048f565b6112e56112d46112ae565b6112dc6103d4565b918291826104fa565b0390f35b6103da565b90565b61130561130061130a926112ee565b6105ce565b6107dc565b90565b61131a6305f5e1006112f1565b90565b61132561130d565b90565b346113585761133836600461048f565b61135461134361131d565b61134b6103d4565b91829182610902565b0390f35b6103da565b6113675f806104c5565b90565b3461139a5761137a36600461048f565b61139661138561135d565b61138d6103d4565b918291826104fa565b0390f35b6103da565b6113a89061054f565b9052565b91906113bf905f6020850194019061139f565b565b346113f1576113ed6113dc6113d7366004610c6a565b6125bc565b6113e46103d4565b918291826113ac565b0390f35b6103da565b346114265761142261141161140c366004610415565b6125db565b6114196103d4565b918291826113ac565b0390f35b6103da565b3461145c57611458611447611441366004610afd565b90612606565b61144f6103d4565b91829182610445565b0390f35b6103da565b346114915761148d61147c611477366004610c6a565b612638565b6114846103d4565b918291826104fa565b0390f35b6103da565b90916060828403126114cb576114c86114b1845f850161056f565b936114bf8160208601610592565b9360400161056f565b90565b6103de565b34611501576114fd6114ec6114e6366004611496565b91612870565b6114f46103d4565b91829182610902565b0390f35b6103da565b61151c906115176056915f92610de5565b6104c5565b90565b3461154f5761154b61153a611535366004610c6a565b611506565b6115426103d4565b918291826104fa565b0390f35b6103da565b61156d611572926115686057935f94610dcf565b610de5565b6104c5565b90565b346115a6576115a261159161158b366004610da2565b90611554565b6115996103d4565b918291826104fa565b0390f35b6103da565b90565b6115c26115bd6115c7926115ab565b6105ce565b6104e2565b90565b6115d662278d006115ae565b90565b6115e16115ca565b90565b34611614576115f436600461048f565b6116106115ff6115d9565b6116076103d4565b918291826104fa565b0390f35b6103da565b90565b5f1b90565b61163561163061163a92611619565b61161c565b6107b8565b90565b6116465f611621565b90565b61165161163d565b90565b346116845761166436600461048f565b61168061166f611649565b6116776103d4565b91829182610ab3565b0390f35b6103da565b611692906104e2565b9052565b61169f906107b8565b9052565b6116ac906107c8565b9052565b6116b9906107dc565b9052565b906101008061175e936116d65f8201515f860190611689565b6116e860208201516020860190611689565b6116fa60408201516040860190611689565b61170c60608201516060860190611696565b61171e608082015160808601906116a3565b61173060a082015160a08601906116b0565b61174260c082015160c08601906116b0565b61175460e082015160e08601906116b0565b0151910190611696565b565b9190611774905f61012085019401906116bd565b565b346117a7576117a361179261178c3660046105a1565b90612a1e565b61179a6103d4565b91829182611760565b0390f35b6103da565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117d86117ac565b90565b3461180b576117eb36600461048f565b6118076117f66117d0565b6117fe6103d4565b91829182610ab3565b0390f35b6103da565b90565b61182761182261182c92611810565b6105ce565b6107c8565b90565b61183a6132c8611813565b90565b61184561182f565b90565b346118785761185836600461048f565b61187461186361183d565b61186b6103d4565b91829182610985565b0390f35b6103da565b90565b61189461188f6118999261187d565b6105ce565b6107dc565b90565b6118ad670de0b6b3a7640000611880565b90565b6118b861189c565b90565b346118eb576118cb36600461048f565b6118e76118d66118b0565b6118de6103d4565b91829182610902565b0390f35b6103da565b60018060401b03811161190c57611908602091610e56565b0190565b610e60565b9061192361191e836118f0565b610e9b565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119596005611911565b9061196660208301611928565b565b61197061194f565b90565b61197b611968565b90565b611986611973565b90565b5190565b60209181520190565b90825f9392825e0152565b6119c06119c96020936119ce936119b781611989565b9384809361198d565b95869101611996565b610e56565b0190565b6119e79160208201915f8184039101526119a1565b90565b34611a1a576119fa36600461048f565b611a16611a0561197e565b611a0d6103d4565b918291826119d2565b0390f35b6103da565b611a2b60075f9061122e565b90565b34611a5e57611a3e36600461048f565b611a5a611a49611a1f565b611a516103d4565b91829182610445565b0390f35b6103da565b90565b611a7a611a75611a7f92611a63565b6105ce565b6107dc565b90565b611a8c6001611a66565b90565b611a97611a82565b90565b34611aca57611aaa36600461048f565b611ac6611ab5611a8f565b611abd6103d4565b91829182610902565b0390f35b6103da565b611adb5f6018906104c5565b90565b34611b0e57611aee36600461048f565b611b0a611af9611acf565b611b016103d4565b918291826104fa565b0390f35b6103da565b90602080611b3593611b2b5f8201515f8601906116b0565b01519101906116b0565b565b9190611b4a905f60408501940190611b13565b565b34611b7d57611b79611b68611b62366004610da2565b90612af5565b611b706103d4565b91829182611b37565b0390f35b6103da565b34611bb357611baf611b9e611b98366004610da2565b90612b1d565b611ba66103d4565b918291826104fa565b0390f35b6103da565b611bc1816107dc565b03611bc857565b5f80fd5b90503590611bd982611bb8565b565b611be4816107c8565b03611beb57565b5f80fd5b90503590611bfc82611bdb565b565b608081830312611c3f57611c14825f830161056f565b92611c3c611c258460208501611bcc565b93611c338160408601611bcc565b93606001611bef565b90565b6103de565b34611c7657611c60611c57366004611bfe565b929190916132f8565b611c686103d4565b80611c7281610a5c565b0390f35b6103da565b90565b611c92611c8d611c9792611c7b565b6105ce565b6104e2565b90565b611ca66276a700611c7e565b90565b611cb1611c9a565b90565b34611ce457611cc436600461048f565b611ce0611ccf611ca9565b611cd76103d4565b918291826104fa565b0390f35b6103da565b90565b611d00611cfb611d0592611ce9565b6105ce565b6104e2565b90565b611d1462093a80611cec565b90565b611d1f611d08565b90565b34611d5257611d3236600461048f565b611d4e611d3d611d17565b611d456103d4565b918291826104fa565b0390f35b6103da565b34611d8657611d70611d6a366004610afd565b90613330565b611d786103d4565b80611d8281610a5c565b0390f35b6103da565b611d9760015f906104c5565b90565b34611dca57611daa36600461048f565b611dc6611db5611d8b565b611dbd6103d4565b918291826104fa565b0390f35b6103da565b90565b611de6611de1611deb92611dcf565b6105ce565b6107dc565b90565b611dfe662386f26fc10000611dd2565b90565b611e09611dee565b90565b34611e3c57611e1c36600461048f565b611e38611e27611e01565b611e2f6103d4565b91829182610902565b0390f35b6103da565b90602082820312611e70575f82013560018060401b038111611e6b57611e6792016109db565b9091565b6103e2565b6103de565b34611ea457611e8e611e88366004611e41565b90613391565b611e966103d4565b80611ea081610a5c565b0390f35b6103da565b611ebd611eb8611ec292610cf0565b6105ce565b6107dc565b90565b611ed0612710611ea9565b90565b611edb611ec5565b90565b34611f0e57611eee36600461048f565b611f0a611ef9611ed3565b611f016103d4565b91829182610902565b0390f35b6103da565b34611f4257611f2c611f263660046105a1565b906134c2565b611f346103d4565b80611f3e81610a5c565b0390f35b6103da565b90565b611f5e611f59611f6392611f47565b6105ce565b6104e2565b90565b611f7262ed4e00611f4a565b90565b611f7d611f66565b90565b34611fb057611f9036600461048f565b611fac611f9b611f75565b611fa36103d4565b918291826104fa565b0390f35b6103da565b611fc15f6008906104c5565b90565b34611ff457611fd436600461048f565b611ff0611fdf611fb5565b611fe76103d4565b918291826104fa565b0390f35b6103da565b5f90565b612005611ff9565b508061202061201a637965db0b60e01b6103e6565b916103e6565b1490811561202d575b5090565b61203791506134d3565b5f612029565b5f90565b9061204b906105f9565b5f5260205260405f2090565b612060906107b8565b90565b9061206d90612057565b5f5260205260405f2090565b61208d61208861209292611619565b6105ce565b6107dc565b90565b6120ba916120b06120b5926120a861203d565b506011612041565b612063565b610724565b806120cd6120c75f612079565b916107dc565b145f146120e157506120dd61189c565b5b90565b6120de565b60018060401b0381116120fc5760208091020190565b610e60565b90929192612116612111826120e6565b610e9b565b938185526020808601920283019281841161215357915b83831061213a5750505050565b602080916121488486610406565b81520192019161212d565b6109d7565b612163913691612101565b90565b6121829261217c9161217661350b565b92612158565b90613546565b565b5f90565b9061219290612057565b5f5260205260405f2090565b60016121bf6121c5926121af612184565b505f6121b96136ba565b01612188565b016106d8565b90565b906121e3916121de6121d98261219e565b6136de565b6121e5565b565b906121ef916136f2565b50565b906121fc916121c8565b565b908061221961221361220e6137a9565b61054f565b9161054f565b0361222a57612227916137b6565b50565b5f63334bd91960e11b81528061224260048201610a5c565b0390fd5b61224f906105d1565b90565b61225b90612246565b90565b612267906105ed565b90565b60e01b90565b9050519061227d826103f2565b565b9092919261229461228f826120e6565b610e9b565b93818552602080860192028301928184116122d157915b8383106122b85750505050565b602080916122c68486612270565b8152019201916122ab565b6109d7565b9080601f830112156122f4578160206122f19351910161227f565b90565b6109cf565b90602082820312612327575f82015160018060401b0381116123225761231f92016122d6565b90565b6103e2565b6103de565b6123346103d4565b3d5f823e3d90fd5b61234461350b565b61236f5f61235961235484612252565b61225e565b636e25b978906123676103d4565b93849261226a565b8252818061237f60048201610a5c565b03915afa80156123ff5761239b915f916123dd575b5082613546565b6123c57f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d916105f9565b906123ce6103d4565b806123d881610a5c565b0390a2565b6123f991503d805f833e6123f18183610e74565b8101906122f9565b5f612394565b61232c565b9061240e906105f9565b5f5260205260405f2090565b6124316124369161242961203d565b50601b612404565b610724565b90565b9061244b9161244661386f565b61244d565b565b906124609161245b81613929565b613985565b565b9061246c91612439565b565b61247f9061247a613a83565b6124cd565b90565b90565b61249961249461249e92612482565b61161c565b6107b8565b90565b6124ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc612485565b90565b506124d66124a1565b90565b6124e96124e4612184565b61246e565b90565b6124f86124fd9161064d565b611210565b90565b61250a90546124ec565b90565b612515611ff9565b506125285f612522613ae1565b01612500565b90565b5f90565b61254661254b9161253e61252b565b506056610de5565b610666565b90565b6125739161256961256e9261256161252b565b506057610dcf565b610de5565b610666565b90565b5f90565b90612584906105f9565b5f5260205260405f2090565b60018060a01b031690565b6125a76125ac9161064d565b612590565b90565b6125b9905461259b565b90565b6125d36125d8916125cb612576565b50600661257a565b6125af565b90565b6125ed906125e7612576565b50613b1b565b90565b906125fa906105f9565b5f5260205260405f2090565b612635915f61262a6126309361261a611ff9565b50826126246136ba565b01612188565b016125f0565b612500565b90565b61264f6126549161264761252b565b506023610de5565b610666565b90565b90612661906104e2565b9052565b9061266f906107b8565b9052565b9061267d906107c8565b9052565b9061268b906107dc565b9052565b61269a610120610e9b565b90565b9061277b61277160066126ae61268f565b946126c56126bd5f8301610666565b5f8801612657565b6126dc6126d35f830161068d565b60208801612657565b6126f36126ea5f83016106b4565b60408801612657565b61270b612702600183016106d8565b60608801612665565b61272361271a60028301610700565b60808801612673565b61273b61273260038301610724565b60a08801612681565b61275361274a60048301610724565b60c08801612681565b61276b61276260058301610724565b60e08801612681565b016106d8565b6101008401612665565b565b6127869061269d565b90565b61279390516104e2565b90565b6127aa6127a56127af92611619565b6105ce565b6104e2565b90565b6127bc90516107b8565b90565b6127c990516107dc565b90565b634e487b7160e01b5f52601160045260245ffd5b6127ef6127f5919392936107dc565b926107dc565b820391821161280057565b6127cc565b61281461281a919392936107dc565b926107dc565b916128268382026107dc565b92818404149015171561283557565b6127cc565b634e487b7160e01b5f52601260045260245ffd5b61285a612860916107dc565b916107dc565b90811561286b570490565b61283a565b9291909261289961289461288261203d565b9561288f60558590610605565b610637565b61277d565b916128a55f8401612789565b6128b76128b15f612796565b916104e2565b1461297857906128d491906128ce606085016127b2565b91613c4f565b90816128e86128e25f612079565b916107dc565b14612968576128f960c082016127bf565b61291661291061290b60e085016127bf565b6107dc565b916107dc565b11612920575b5050565b6129609293509061294c8261294660e061293f60c061295297016127bf565b92016127bf565b906127e0565b90612805565b61295a61189c565b9061284e565b905f8061291c565b505090506129755f612079565b90565b50505090506129865f612079565b90565b5f90565b5f90565b5f90565b5f90565b6129a161268f565b90602080808080808080808a6129b5612989565b8152016129c0612989565b8152016129cb612989565b8152016129d661298d565b8152016129e1612991565b8152016129ec612995565b8152016129f7612995565b815201612a02612995565b815201612a0d61298d565b81525050565b612a1b612999565b90565b612a4391612a39612a3e92612a31612a13565b506055610605565b610637565b61277d565b90565b612a506040610e9b565b90565b612a5b612a46565b9060208083612a68612995565b815201612a73612995565b81525050565b612a81612a53565b90565b90612a8e9061061b565b5f5260205260405f2090565b90612aa4906105f9565b5f5260205260405f2090565b90612ae7612ade6001612ac1612a46565b94612ad8612ad05f8301610724565b5f8801612681565b01610724565b60208401612681565b565b612af290612ab0565b90565b612b1a91612b10612b1592612b08612a79565b506010612a84565b612a9a565b612ae9565b90565b612b4291612b38612b3d92612b3061252b565b506058610dcf565b610de5565b610666565b90565b612b51612b5691610673565b611210565b90565b612b639054612b45565b90565b612b7a612b75612b7f92611a63565b6105ce565b6104e2565b90565b612b8b906105ed565b90565b90612b9f60018060401b039161161c565b9181191691161790565b90565b90612bc1612bbc612bc89261061b565b612ba9565b8254612b8e565b9055565b60401b90565b90612be160ff60401b91612bcc565b9181191691161790565b612bf490610433565b90565b90565b90612c0f612c0a612c1692612beb565b612bf7565b8254612bd2565b9055565b612c2390612b66565b9052565b9190612c3a905f60208501940190612c1a565b565b909192612c47613d3e565b93612c5c612c565f8701612b59565b15610433565b93612c685f8701610666565b80612c7b612c755f612796565b916104e2565b1480612d95575b90612c96612c906001612b66565b916104e2565b1480612d6d575b612ca8909115610433565b9081612d5c575b50612d4057612cd893612ccd612cc56001612b66565b5f8901612bac565b85612d2e575b61314d565b612ce0575b50565b612ced905f809101612bfa565b6001612d257fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d1c6103d4565b91829182612c27565b0390a15f612cdd565b612d3b60015f8901612bfa565b612cd3565b5f63f92ee8a960e01b815280612d5860048201610a5c565b0390fd5b612d67915015610433565b5f612caf565b50612ca8612d7a30612b82565b3b612d8d612d875f612079565b916107dc565b149050612c9d565b5085612c82565b612db0612dab612db592611619565b6105ce565b610544565b90565b612dc190612d9c565b90565b612dce6040610e9b565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612def57565b612dd1565b90612dfe82612de5565b565b90612e0a90612df4565b9052565b90612e189061054f565b9052565b612e30612e2b612e35926107dc565b6105ce565b6107c8565b90565b612e4260c0610e9b565b90565b90612e4f90610433565b9052565b90612e5d90612057565b5f5260205260405f2090565b612e739051610433565b90565b90612e8260ff9161161c565b9181191691161790565b90612ea1612e9c612ea892612beb565b612bf7565b8254612e76565b9055565b90612eb85f199161161c565b9181191691161790565b612ed6612ed1612edb926107dc565b6105ce565b6107dc565b90565b90565b90612ef6612ef1612efd92612ec2565b612ede565b8254612eac565b9055565b612f0b90516107c8565b90565b90612f1b61ffff9161161c565b9181191691161790565b612f39612f34612f3e926107c8565b6105ce565b6107c8565b90565b90565b90612f59612f54612f6092612f25565b612f41565b8254612f0e565b9055565b90612ff360a06005612ff994612f875f8201612f815f8801612e69565b90612e8c565b612fa060018201612f9a602088016127bf565b90612ee1565b612fb960028201612fb3604088016127bf565b90612ee1565b612fd260038201612fcc606088016127bf565b90612ee1565b612feb60048201612fe5608088016127bf565b90612ee1565b019201612f01565b90612f44565b565b9061300591612f64565b565b60801b90565b9061301d61ffff60801b91613007565b9181191691161790565b9061303c61303761304392612f25565b612f41565b825461300d565b9055565b90565b61305e61305961306392613047565b6105ce565b6104e2565b90565b61307161546061304a565b90565b90613089600160401b600160801b0391612bcc565b9181191691161790565b906130a86130a36130af9261061b565b612ba9565b8254613074565b9055565b90565b6130ca6130c56130cf926130b3565b6105ce565b6104e2565b90565b6130dc601c6130b6565b90565b60c01b90565b906130f760018060c01b0319916130df565b9181191691161790565b9061311661311161311d9261061b565b612ba9565b82546130e5565b9055565b90565b61313861313361313d92613121565b6105ce565b6104e2565b90565b61314a6038613124565b90565b919091613158613d6c565b613160613d80565b613168613da6565b613170613dcc565b61317861163d565b81613182916136f2565b5061318b6111ac565b81613195916136f2565b5061319e6117ac565b906131a8916136f2565b505f806131b490612db8565b6131bc612dc4565b915f8301906131ca91612e00565b60208201906131d891612e0e565b6131e190613e36565b90600192905f80916131f1611ec5565b6131fa90612e1c565b93613203612e38565b965f88019061321191612e45565b602087019061321f91612681565b604086019061322d91612681565b61323690612079565b606085019061324491612681565b61324d90612079565b608084019061325b91612681565b60a083019061326991612673565b60029061327591612e53565b9061327f91612ffb565b600161328c906005612e8c565b613297906001613027565b60016132a290612b66565b6132ac905f612bac565b6132b4613066565b6132be905f613093565b6132c66130d2565b6132d0905f613101565b6132d86130d2565b6132e3906001612bac565b6132eb613140565b6132f6906001613093565b565b90613304939291612c3c565b565b906133219161331c6133178261219e565b6136de565b613323565b565b9061332d916137b6565b50565b9061333a91613306565b565b600161334891016107dc565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b9190811015613373576020020190565b61334f565b35613382816103f2565b90565b61338e906103e6565b90565b91909161339c61350b565b6133a55f612079565b5b806133c36133bd6133b885889061334b565b6107dc565b916107dc565b101561344757613442906133e96133e46133df85888591613363565b613378565b613efd565b6133fd6133f884878491613363565b613378565b6134277fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb91613385565b906134306103d4565b8061343a81610a5c565b0390a261333c565b6133a6565b50509050565b906134679161346261345d6111ac565b6136de565b613469565b565b61347e8261347960238490610de5565b612bac565b6134bd6134ab7f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f35926105f9565b926134b46103d4565b918291826104fa565b0390a2565b906134cc9161344d565b565b613f13565b6134db611ff9565b506134f56134ef6301ffc9a760e01b6103e6565b916103e6565b1490565b6135096135046111ac565b6136de565b565b6135136134f9565b565b5190565b9061352382613515565b811015613534576020809102010190565b61334f565b61354390516103e6565b90565b91908261356361355d6135585f612db8565b61054f565b9161054f565b146136b557823b61357c6135765f612079565b916107dc565b146136af5761358a5f612079565b5b806135a66135a061359b85613515565b6107dc565b916107dc565b10156136a9576135c76135c26135bd848490613519565b613539565b613b1b565b806135e26135dc6135d75f612db8565b61054f565b9161054f565b14158061368e575b613677575061367290613610613609613604858490613519565b613539565b869061401a565b61362361361e848390613519565b613539565b856136576136517f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b3993613385565b916105f9565b916136606103d4565b8061366a81610a5c565b0390a361333c565b61358b565b6136896136848385613519565b613539565b613fc1565b50806136a261369c8761054f565b9161054f565b14156135ea565b50509050565b82613f72565b613f56565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6136f0906136ea6137a9565b90614053565b565b6136fa611ff9565b506137036136ba565b613717613711838590612606565b15610433565b5f146137a2576137419061373c5f61373481600194018690612188565b0185906125f0565b612e8c565b9061374a6137a9565b9061378761378161377b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d95612057565b926105f9565b926105f9565b926137906103d4565b8061379a81610a5c565b0390a4600190565b5050505f90565b6137b1612576565b503390565b6137be611ff9565b506137c76136ba565b6137d2828490612606565b5f1461385c576137fb906137f65f6137ee818094018690612188565b0185906125f0565b612e8c565b906138046137a9565b9061384161383b6138357ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b95612057565b926105f9565b926105f9565b9261384a6103d4565b8061385481610a5c565b0390a4600190565b5050505f90565b61386c906105ed565b90565b61387830613863565b6138aa6138a47f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b1480156138d4575b6138b857565b5f63703e46dd60e11b8152806138d060048201610a5c565b0390fd5b506138dd61408e565b61390f6139097f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b14156138b2565b506139276139226111ac565b6136de565b565b61393290613916565b565b61393d906105d1565b90565b61394990613934565b90565b613955906105ed565b90565b90505190613965826108b2565b565b906020828203126139805761397d915f01613958565b90565b6103de565b91906139b3602061399d61399886613940565b61394c565b6352d1902d906139ab6103d4565b93849261226a565b825281806139c360048201610a5c565b03915afa80915f92613a53575b50155f14613a045750509060016139e557505b565b613a00905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b9283613a1f613a19613a146124a1565b6107b8565b916107b8565b03613a3457613a2f9293506140b4565b6139e3565b613a4f845f918291632a87526960e21b835260048301610ab3565b0390fd5b613a7591925060203d8111613a7c575b613a6d8183610e74565b810190613967565b905f6139d0565b503d613a63565b613a8c30613863565b613abe613ab87f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b03613ac557565b5f63703e46dd60e11b815280613add60048201610a5c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b0f90613385565b5f5260205260405f2090565b613b32613b3791613b2a612576565b506021613b05565b6125af565b90565b90613b44906105f9565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613b6981613b53565b821015613b8357613b7b600491613b57565b910201905f90565b61334f565b90565b60ff1690565b613b9d613ba29161064d565b613b8b565b90565b613baf9054613b91565b90565b60081c90565b613bc4613bc991613bb2565b612590565b90565b613bd69054613bb8565b90565b613be36040610e9b565b90565b90613c1c613c135f613bf6613bd9565b94613c0d613c05838301613ba5565b838801612e00565b01613bcc565b60208401612e0e565b565b613c2790613be6565b90565b613c39613c3f919392936107dc565b926107dc565b8201809211613c4a57565b6127cc565b929192613c6d613c68613c6061203d565b926015613b3a565b613b50565b93613c7785613b53565b93613c815f612079565b5b80613c95613c8f886107dc565b916107dc565b1015613d3557613caf613ca9888390613b60565b50613b88565b613cba5f82016125af565b613ccc613cc68861054f565b9161054f565b1480613d08575b613ce7575b50613ce29061333c565b613c82565b613ce29194613cfb6001613d019301610724565b90613c2a565b9390613cd8565b50613d1d613d1860028301613c1e565b613e36565b613d2f613d29866107b8565b916107b8565b14613cd3565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613d6a61413d565b565b613d74613d62565b565b613d7e61413d565b565b613d88613d76565b565b613d9261413d565b613d9a613d9c565b565b613da4614198565b565b613dae613d8a565b565b613db861413d565b613dc0613dc2565b565b613dca6141de565b565b613dd4613db0565b565b613de09051612df4565b90565b613ded905161054f565b90565b613df990612df4565b90565b613e0590613df0565b9052565b916020613e2a929493613e2360408201965f830190613dfc565b019061139f565b565b60200190565b5190565b613e3e612184565b50613e80613e596020613e525f8501613dd6565b9301613de3565b91613e71613e656103d4565b93849260208401613e09565b60208201810382520382610e74565b613e92613e8c82613e32565b91613e2c565b2090565b1b90565b91906008613eba910291613eb460018060a01b0384613e96565b92613e96565b9181191691161790565b90565b9190613edd613ed8613ee5936105f9565b613ec4565b908354613e9a565b9055565b613efb91613ef5612576565b91613ec7565b565b5f613f0c613f11926021613b05565b613ee9565b565b613f2663ffffffff60e01b5f3516613b1b565b80613f41613f3b613f365f612db8565b61054f565b9161054f565b0361421c5763ffffffff60e01b5f35166141fd565b5f63d92e233d60e01b815280613f6e60048201610a5c565b0390fd5b613f8d905f9182916322a2d07b60e21b8352600483016113ac565b0390fd5b613f9a906103e6565b9052565b916020613fbf929493613fb860408201965f830190613f91565b019061139f565b565b613fdb5f9283926310ae11a960e31b845260048401613f9e565b0390fd5b90613ff060018060a01b039161161c565b9181191691161790565b9061400f61400a614016926105f9565b613ec4565b8254613fdf565b9055565b61402961402e92916021613b05565b613ffa565b565b91602061405192949361404a60408201965f83019061139f565b01906107bb565b565b90614068614062838390612606565b15610433565b614070575050565b61408a5f92839263e2517d3f60e01b845260048401614030565b0390fd5b614096612576565b506140b15f6140ab6140a66124a1565b61423a565b016125af565b90565b906140be8261423d565b816140e97fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b916105f9565b906140f26103d4565b806140fc81610a5c565b0390a261410881613e32565b61411a6141145f612079565b916107dc565b115f1461412e5761412a9161430d565b505b565b5050614138614292565b61412c565b61414e61414861433c565b15610433565b61415457565b5f631afcd79f60e31b81528061416c60048201610a5c565b0390fd5b61417861413d565b614180614182565b565b61419661418d613ae1565b5f809101612e8c565b565b6141a0614170565b565b6141aa61413d565b6141b26141c1565b565b6141be6001611a66565b90565b6141dc6141cc61435a565b5f6141d56141b4565b9101612ee1565b565b6141e66141a2565b565b91906141fb905f60208501940190613f91565b565b614218905f91829163c2a825f560e01b8352600483016141e8565b0390fd5b5f8091368280378136915af43d5f803e5f14614236573d5ff35b3d5ffd5b90565b803b61425161424b5f612079565b916107dc565b1461427357614271905f61426b6142666124a1565b61423a565b01613ffa565b565b61428e905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b346142a561429f5f612079565b916107dc565b116142ac57565b5f63b398979f60e01b8152806142c460048201610a5c565b0390fd5b606090565b906142df6142da83610eb0565b610e9b565b918252565b3d5f146142ff576142f43d6142cd565b903d5f602084013e5b565b6143076142c8565b906142fd565b5f806143399361431b6142c8565b508390602081019051915af4906143306142e4565b9091909161437e565b90565b614344611ff9565b506143575f614351613d3e565b01612b59565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906143929061438b6142c8565b5015610433565b5f1461439e5750614402565b6143a782613e32565b6143b96143b35f612079565b916107dc565b14806143e7575b6143c8575090565b6143e3905f918291639996b31560e01b8352600483016113ac565b0390fd5b50803b6143fc6143f65f612079565b916107dc565b146143c0565b61440b81613e32565b61441d6144175f612079565b916107dc565b115f1461442c57805190602001fd5b5f63d6bda27560e01b81528061444460048201610a5c565b0390fdfea164736f6c634300081a000a","sourceMap":"1033:3847:55:-:0;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;1313:53;;;:::i;:::-;;;:::i;:::-;:::o;390:3323:30:-;;;:::i;:::-;:::o;593:16751:54:-;;;:::i;:::-;:::o;833:35740:59:-;;;:::i;:::-;:::o;807:16171:58:-;;;:::i;:::-;:::o;749:44645:52:-;;;:::i;:::-;:::o;622:21065:56:-;;;:::i;:::-;:::o;427:31223:53:-;;;:::i;:::-;:::o;1094:3411:27:-;;;:::i;:::-;:::o;701:3153:26:-;;;:::i;:::-;:::o;2090:6192:22:-;;;:::i;:::-;:::o;769:414:28:-;;;:::i;:::-;:::o;422:447:18:-;;;:::i;:::-;:::o;226:3116:0:-;;;:::i;:::-;:::o;688:505:25:-;;;:::i;:::-;:::o;1033:3847:55:-;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;986:5611:24:-;1163:13;1171:4;1163:13;:::i;:::-;;;986:5611::o;1033:3847:55:-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;7711:422:23:-;7859:26;;:::i;:::-;7900:15;;:1;:15;;:::i;:::-;7896:76;;7985:14;;:1;:14;;:::i;:::-;:34;;1033:3847:55;;;;;7985:34:23;:::i;:::-;;;:::i;:::-;;7981:146;;7711:422;;:::o;7981:146::-;8035:33;1033:3847:55;8035:14:23;1033:3847:55;;;;;8035:1:23;:14;:33;:::i;:::-;1033:3847:55;;;;;8087:29:23;;;;;:::i;:::-;;;;;;:::i;:::-;;;;7981:146;;;7896:76;7938:23;;;;;;;;;;;;:::i;:::-;;;;8737:170;8837:64;8737:170;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610015575b366134ce57005b61001f5f356103ce565b806301ffc9a7146103c957806305d64e38146103c45780630aa8b110146103bf57806312d91c88146103ba57806318056dc2146103b557806319e82e61146103b0578063248a9ca3146103ab5780632f2ff15d146103a657806332273f61146103a157806336568abe1461039c578063453eccea1461039757806346d163aa14610392578063491474111461038d5780634962f88f146103885780634de8addc146103835780634e9c929a1461037e5780634f1ef286146103795780635095af641461037457806352d1902d1461036f57806354de23201461036a5780635c975abb14610365578063602356e31461036057806366c368751461035b57806372b5032d1461035657806375b238fc1461035157806377ab2cf31461034c5780637df92ada1461034757806388c47f68146103425780638a19c8bc1461033d5780638a7fe60f1461033857806390837ff41461033357806391d148541461032e5780639480e4dd146103295780639494f42614610324578063960856731461031f5780639722f4b91461031a5780639e87058514610315578063a217fddf14610310578063a457af3d1461030b578063a4b32de814610306578063a7fa6f9814610301578063aaf5eb68146102fc578063ad3cb1cc146102f7578063b54b2b9e146102f2578063b6608409146102ed578063ba05bbf5146102e8578063c07449e2146102e3578063c550d938146102de578063cbb6d6bd146102d9578063d27a6f06146102d4578063d45ff582146102cf578063d547741f146102ca578063db8a173a146102c5578063dd764abf146102c0578063e07dec29146102bb578063e1a45218146102b6578063e27e05c1146102b1578063f3c9b311146102ac5763f7cb789a0361000e57611fc4565b611f80565b611f13565b611ede565b611e75565b611e0c565b611d9a565b611d57565b611d22565b611cb4565b611c44565b611b82565b611b4c565b611ade565b611a9a565b611a2e565b6119ea565b6118bb565b611848565b6117db565b611776565b611654565b6115e4565b611575565b61151f565b6114d0565b611461565b61142b565b6113f6565b6113c1565b61136a565b611328565b6112b9565b61124b565b6111db565b611176565b611141565b61110c565b6110a8565b611073565b611006565b610fd1565b610f78565b610e1c565b610d6d565b610d28565b610cbb565b610c88565b610c35565b610bc9565b610b94565b610b2a565b610ac8565b610a61565b61099a565b610917565b610872565b61050f565b61045a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b6103fb816103e6565b0361040257565b5f80fd5b90503590610413826103f2565b565b9060208282031261042e5761042b915f01610406565b90565b6103de565b151590565b61044190610433565b9052565b9190610458905f60208501940190610438565b565b3461048a57610486610475610470366004610415565b611ffd565b61047d6103d4565b91829182610445565b0390f35b6103da565b5f91031261049957565b6103de565b1c90565b60018060401b031690565b6104bd9060086104c2930261049e565b6104a2565b90565b906104d091546104ad565b90565b6104df5f6010906104c5565b90565b60018060401b031690565b6104f6906104e2565b9052565b919061050d905f602085019401906104ed565b565b3461053f5761051f36600461048f565b61053b61052a6104d3565b6105326103d4565b918291826104fa565b0390f35b6103da565b60018060a01b031690565b61055890610544565b90565b6105648161054f565b0361056b57565b5f80fd5b9050359061057c8261055b565b565b610587816104e2565b0361058e57565b5f80fd5b9050359061059f8261057e565b565b91906040838203126105c957806105bd6105c6925f860161056f565b93602001610592565b90565b6103de565b90565b6105e56105e06105ea92610544565b6105ce565b610544565b90565b6105f6906105d1565b90565b610602906105ed565b90565b9061060f906105f9565b5f5260205260405f2090565b61062f61062a610634926104e2565b6105ce565b6104e2565b90565b906106419061061b565b5f5260205260405f2090565b5f1c90565b61065e6106639161064d565b6104a2565b90565b6106709054610652565b90565b60401c90565b61068561068a91610673565b6104a2565b90565b6106979054610679565b90565b60801c90565b6106ac6106b19161069a565b6104a2565b90565b6106be90546106a0565b90565b90565b6106d06106d59161064d565b6106c1565b90565b6106e290546106c4565b90565b61ffff1690565b6106f86106fd9161064d565b6106e5565b90565b61070a90546106ec565b90565b90565b61071c6107219161064d565b61070d565b90565b61072e9054610710565b90565b90610740610745926055610605565b610637565b6107505f8201610666565b9161075c5f830161068d565b916107685f82016106b4565b91610775600183016106d8565b9161078260028201610700565b9161078f60038301610724565b9161079c60048201610724565b916107b560066107ae60058501610724565b93016106d8565b90565b90565b6107c4906107b8565b9052565b61ffff1690565b6107d8906107c8565b9052565b90565b6107e8906107dc565b9052565b9694929099989795939161012088019a5f8901610808916104ed565b60208801610815916104ed565b60408701610822916104ed565b6060860161082f916107bb565b6080850161083c916107cf565b60a08401610849916107df565b60c08301610856916107df565b60e08201610863916107df565b61010001610870916107bb565b565b346108ad576108a961088e6108883660046105a1565b90610731565b956108a09997999591959492946103d4565b998a998a6107ec565b0390f35b6103da565b6108bb816107b8565b036108c257565b5f80fd5b905035906108d3826108b2565b565b91906040838203126108fd57806108f16108fa925f860161056f565b936020016108c6565b90565b6103de565b9190610915905f602085019401906107df565b565b346109485761094461093361092d3660046108d5565b90612095565b61093b6103d4565b91829182610902565b0390f35b6103da565b90565b61096461095f6109699261094d565b6105ce565b6107c8565b90565b610977612af8610950565b90565b61098261096c565b90565b9190610998905f602085019401906107cf565b565b346109ca576109aa36600461048f565b6109c66109b561097a565b6109bd6103d4565b91829182610985565b0390f35b6103da565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a135781359160018060401b038311610a0e576020019260208302840111610a0957565b6109d7565b6109d3565b6109cf565b919091604081840312610a5757610a31835f830161056f565b92602082013560018060401b038111610a5257610a4e92016109db565b9091565b6103e2565b6103de565b5f0190565b34610a9057610a7a610a74366004610a18565b91612166565b610a826103d4565b80610a8c81610a5c565b0390f35b6103da565b90602082820312610aae57610aab915f016108c6565b90565b6103de565b9190610ac6905f602085019401906107bb565b565b34610af857610af4610ae3610ade366004610a95565b61219e565b610aeb6103d4565b91829182610ab3565b0390f35b6103da565b9190604083820312610b255780610b19610b22925f86016108c6565b9360200161056f565b90565b6103de565b34610b5957610b43610b3d366004610afd565b906121f2565b610b4b6103d4565b80610b5581610a5c565b0390f35b6103da565b610b6e906008610b73930261049e565b6106e5565b90565b90610b819154610b5e565b90565b610b916001601090610b76565b90565b34610bc457610ba436600461048f565b610bc0610baf610b84565b610bb76103d4565b91829182610985565b0390f35b6103da565b34610bf857610be2610bdc366004610afd565b906121fe565b610bea6103d4565b80610bf481610a5c565b0390f35b6103da565b90565b610c14610c0f610c1992610bfd565b6105ce565b6107c8565b90565b610c27613e80610c00565b90565b610c32610c1c565b90565b34610c6557610c4536600461048f565b610c61610c50610c2a565b610c586103d4565b91829182610985565b0390f35b6103da565b90602082820312610c8357610c80915f0161056f565b90565b6103de565b34610cb657610ca0610c9b366004610c6a565b61233c565b610ca86103d4565b80610cb281610a5c565b0390f35b6103da565b34610ceb57610ce7610cd6610cd1366004610c6a565b61241a565b610cde6103d4565b91829182610902565b0390f35b6103da565b90565b610d07610d02610d0c92610cf0565b6105ce565b6107c8565b90565b610d1a612710610cf3565b90565b610d25610d0f565b90565b34610d5857610d3836600461048f565b610d54610d43610d1d565b610d4b6103d4565b91829182610985565b0390f35b6103da565b610d6a60016008906104c5565b90565b34610d9d57610d7d36600461048f565b610d99610d88610d5d565b610d906103d4565b918291826104fa565b0390f35b6103da565b9190604083820312610dca5780610dbe610dc7925f8601610592565b9360200161056f565b90565b6103de565b90610dd99061061b565b5f5260205260405f2090565b90610def906105f9565b5f5260205260405f2090565b610e14610e1992610e0f6058935f94610dcf565b610de5565b6104c5565b90565b34610e4d57610e49610e38610e32366004610da2565b90610dfb565b610e406103d4565b918291826104fa565b0390f35b6103da565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e7e90610e56565b810190811060018060401b03821117610e9657604052565b610e60565b90610eae610ea76103d4565b9283610e74565b565b60018060401b038111610ecc57610ec8602091610e56565b0190565b610e60565b90825f939282370152565b90929192610ef1610eec82610eb0565b610e9b565b93818552602085019082840111610f0d57610f0b92610ed1565b565b610e52565b9080601f83011215610f3057816020610f2d93359101610edc565b90565b6109cf565b919091604081840312610f7357610f4e835f830161056f565b92602082013560018060401b038111610f6e57610f6b9201610f12565b90565b6103e2565b6103de565b610f8c610f86366004610f35565b90612462565b610f946103d4565b80610f9e81610a5c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fce610fa2565b90565b3461100157610fe136600461048f565b610ffd610fec610fc6565b610ff46103d4565b91829182610ab3565b0390f35b6103da565b346110365761101636600461048f565b6110326110216124d9565b6110296103d4565b91829182610ab3565b0390f35b6103da565b90565b61105261104d6110579261103b565b6105ce565b6107c8565b90565b611065612ee061103e565b90565b61107061105a565b90565b346110a35761108336600461048f565b61109f61108e611068565b6110966103d4565b91829182610985565b0390f35b6103da565b346110d8576110b836600461048f565b6110d46110c361250d565b6110cb6103d4565b91829182610445565b0390f35b6103da565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111096110dd565b90565b3461113c5761111c36600461048f565b611138611127611101565b61112f6103d4565b91829182610ab3565b0390f35b6103da565b346111715761116d61115c611157366004610c6a565b61252f565b6111646103d4565b918291826104fa565b0390f35b6103da565b346111a7576111a361119261118c366004610da2565b9061254e565b61119a6103d4565b918291826104fa565b0390f35b6103da565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111d86111ac565b90565b3461120b576111eb36600461048f565b6112076111f66111d0565b6111fe6103d4565b91829182610ab3565b0390f35b6103da565b60ff1690565b61122690600861122b930261049e565b611210565b90565b906112399154611216565b90565b61124860055f9061122e565b90565b3461127b5761125b36600461048f565b61127761126661123c565b61126e6103d4565b91829182610445565b0390f35b6103da565b90565b61129761129261129c92611280565b6105ce565b6104e2565b90565b6112ab624f1a00611283565b90565b6112b661129f565b90565b346112e9576112c936600461048f565b6112e56112d46112ae565b6112dc6103d4565b918291826104fa565b0390f35b6103da565b90565b61130561130061130a926112ee565b6105ce565b6107dc565b90565b61131a6305f5e1006112f1565b90565b61132561130d565b90565b346113585761133836600461048f565b61135461134361131d565b61134b6103d4565b91829182610902565b0390f35b6103da565b6113675f806104c5565b90565b3461139a5761137a36600461048f565b61139661138561135d565b61138d6103d4565b918291826104fa565b0390f35b6103da565b6113a89061054f565b9052565b91906113bf905f6020850194019061139f565b565b346113f1576113ed6113dc6113d7366004610c6a565b6125bc565b6113e46103d4565b918291826113ac565b0390f35b6103da565b346114265761142261141161140c366004610415565b6125db565b6114196103d4565b918291826113ac565b0390f35b6103da565b3461145c57611458611447611441366004610afd565b90612606565b61144f6103d4565b91829182610445565b0390f35b6103da565b346114915761148d61147c611477366004610c6a565b612638565b6114846103d4565b918291826104fa565b0390f35b6103da565b90916060828403126114cb576114c86114b1845f850161056f565b936114bf8160208601610592565b9360400161056f565b90565b6103de565b34611501576114fd6114ec6114e6366004611496565b91612870565b6114f46103d4565b91829182610902565b0390f35b6103da565b61151c906115176056915f92610de5565b6104c5565b90565b3461154f5761154b61153a611535366004610c6a565b611506565b6115426103d4565b918291826104fa565b0390f35b6103da565b61156d611572926115686057935f94610dcf565b610de5565b6104c5565b90565b346115a6576115a261159161158b366004610da2565b90611554565b6115996103d4565b918291826104fa565b0390f35b6103da565b90565b6115c26115bd6115c7926115ab565b6105ce565b6104e2565b90565b6115d662278d006115ae565b90565b6115e16115ca565b90565b34611614576115f436600461048f565b6116106115ff6115d9565b6116076103d4565b918291826104fa565b0390f35b6103da565b90565b5f1b90565b61163561163061163a92611619565b61161c565b6107b8565b90565b6116465f611621565b90565b61165161163d565b90565b346116845761166436600461048f565b61168061166f611649565b6116776103d4565b91829182610ab3565b0390f35b6103da565b611692906104e2565b9052565b61169f906107b8565b9052565b6116ac906107c8565b9052565b6116b9906107dc565b9052565b906101008061175e936116d65f8201515f860190611689565b6116e860208201516020860190611689565b6116fa60408201516040860190611689565b61170c60608201516060860190611696565b61171e608082015160808601906116a3565b61173060a082015160a08601906116b0565b61174260c082015160c08601906116b0565b61175460e082015160e08601906116b0565b0151910190611696565b565b9190611774905f61012085019401906116bd565b565b346117a7576117a361179261178c3660046105a1565b90612a1e565b61179a6103d4565b91829182611760565b0390f35b6103da565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117d86117ac565b90565b3461180b576117eb36600461048f565b6118076117f66117d0565b6117fe6103d4565b91829182610ab3565b0390f35b6103da565b90565b61182761182261182c92611810565b6105ce565b6107c8565b90565b61183a6132c8611813565b90565b61184561182f565b90565b346118785761185836600461048f565b61187461186361183d565b61186b6103d4565b91829182610985565b0390f35b6103da565b90565b61189461188f6118999261187d565b6105ce565b6107dc565b90565b6118ad670de0b6b3a7640000611880565b90565b6118b861189c565b90565b346118eb576118cb36600461048f565b6118e76118d66118b0565b6118de6103d4565b91829182610902565b0390f35b6103da565b60018060401b03811161190c57611908602091610e56565b0190565b610e60565b9061192361191e836118f0565b610e9b565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119596005611911565b9061196660208301611928565b565b61197061194f565b90565b61197b611968565b90565b611986611973565b90565b5190565b60209181520190565b90825f9392825e0152565b6119c06119c96020936119ce936119b781611989565b9384809361198d565b95869101611996565b610e56565b0190565b6119e79160208201915f8184039101526119a1565b90565b34611a1a576119fa36600461048f565b611a16611a0561197e565b611a0d6103d4565b918291826119d2565b0390f35b6103da565b611a2b60075f9061122e565b90565b34611a5e57611a3e36600461048f565b611a5a611a49611a1f565b611a516103d4565b91829182610445565b0390f35b6103da565b90565b611a7a611a75611a7f92611a63565b6105ce565b6107dc565b90565b611a8c6001611a66565b90565b611a97611a82565b90565b34611aca57611aaa36600461048f565b611ac6611ab5611a8f565b611abd6103d4565b91829182610902565b0390f35b6103da565b611adb5f6018906104c5565b90565b34611b0e57611aee36600461048f565b611b0a611af9611acf565b611b016103d4565b918291826104fa565b0390f35b6103da565b90602080611b3593611b2b5f8201515f8601906116b0565b01519101906116b0565b565b9190611b4a905f60408501940190611b13565b565b34611b7d57611b79611b68611b62366004610da2565b90612af5565b611b706103d4565b91829182611b37565b0390f35b6103da565b34611bb357611baf611b9e611b98366004610da2565b90612b1d565b611ba66103d4565b918291826104fa565b0390f35b6103da565b611bc1816107dc565b03611bc857565b5f80fd5b90503590611bd982611bb8565b565b611be4816107c8565b03611beb57565b5f80fd5b90503590611bfc82611bdb565b565b608081830312611c3f57611c14825f830161056f565b92611c3c611c258460208501611bcc565b93611c338160408601611bcc565b93606001611bef565b90565b6103de565b34611c7657611c60611c57366004611bfe565b929190916132f8565b611c686103d4565b80611c7281610a5c565b0390f35b6103da565b90565b611c92611c8d611c9792611c7b565b6105ce565b6104e2565b90565b611ca66276a700611c7e565b90565b611cb1611c9a565b90565b34611ce457611cc436600461048f565b611ce0611ccf611ca9565b611cd76103d4565b918291826104fa565b0390f35b6103da565b90565b611d00611cfb611d0592611ce9565b6105ce565b6104e2565b90565b611d1462093a80611cec565b90565b611d1f611d08565b90565b34611d5257611d3236600461048f565b611d4e611d3d611d17565b611d456103d4565b918291826104fa565b0390f35b6103da565b34611d8657611d70611d6a366004610afd565b90613330565b611d786103d4565b80611d8281610a5c565b0390f35b6103da565b611d9760015f906104c5565b90565b34611dca57611daa36600461048f565b611dc6611db5611d8b565b611dbd6103d4565b918291826104fa565b0390f35b6103da565b90565b611de6611de1611deb92611dcf565b6105ce565b6107dc565b90565b611dfe662386f26fc10000611dd2565b90565b611e09611dee565b90565b34611e3c57611e1c36600461048f565b611e38611e27611e01565b611e2f6103d4565b91829182610902565b0390f35b6103da565b90602082820312611e70575f82013560018060401b038111611e6b57611e6792016109db565b9091565b6103e2565b6103de565b34611ea457611e8e611e88366004611e41565b90613391565b611e966103d4565b80611ea081610a5c565b0390f35b6103da565b611ebd611eb8611ec292610cf0565b6105ce565b6107dc565b90565b611ed0612710611ea9565b90565b611edb611ec5565b90565b34611f0e57611eee36600461048f565b611f0a611ef9611ed3565b611f016103d4565b91829182610902565b0390f35b6103da565b34611f4257611f2c611f263660046105a1565b906134c2565b611f346103d4565b80611f3e81610a5c565b0390f35b6103da565b90565b611f5e611f59611f6392611f47565b6105ce565b6104e2565b90565b611f7262ed4e00611f4a565b90565b611f7d611f66565b90565b34611fb057611f9036600461048f565b611fac611f9b611f75565b611fa36103d4565b918291826104fa565b0390f35b6103da565b611fc15f6008906104c5565b90565b34611ff457611fd436600461048f565b611ff0611fdf611fb5565b611fe76103d4565b918291826104fa565b0390f35b6103da565b5f90565b612005611ff9565b508061202061201a637965db0b60e01b6103e6565b916103e6565b1490811561202d575b5090565b61203791506134d3565b5f612029565b5f90565b9061204b906105f9565b5f5260205260405f2090565b612060906107b8565b90565b9061206d90612057565b5f5260205260405f2090565b61208d61208861209292611619565b6105ce565b6107dc565b90565b6120ba916120b06120b5926120a861203d565b506011612041565b612063565b610724565b806120cd6120c75f612079565b916107dc565b145f146120e157506120dd61189c565b5b90565b6120de565b60018060401b0381116120fc5760208091020190565b610e60565b90929192612116612111826120e6565b610e9b565b938185526020808601920283019281841161215357915b83831061213a5750505050565b602080916121488486610406565b81520192019161212d565b6109d7565b612163913691612101565b90565b6121829261217c9161217661350b565b92612158565b90613546565b565b5f90565b9061219290612057565b5f5260205260405f2090565b60016121bf6121c5926121af612184565b505f6121b96136ba565b01612188565b016106d8565b90565b906121e3916121de6121d98261219e565b6136de565b6121e5565b565b906121ef916136f2565b50565b906121fc916121c8565b565b908061221961221361220e6137a9565b61054f565b9161054f565b0361222a57612227916137b6565b50565b5f63334bd91960e11b81528061224260048201610a5c565b0390fd5b61224f906105d1565b90565b61225b90612246565b90565b612267906105ed565b90565b60e01b90565b9050519061227d826103f2565b565b9092919261229461228f826120e6565b610e9b565b93818552602080860192028301928184116122d157915b8383106122b85750505050565b602080916122c68486612270565b8152019201916122ab565b6109d7565b9080601f830112156122f4578160206122f19351910161227f565b90565b6109cf565b90602082820312612327575f82015160018060401b0381116123225761231f92016122d6565b90565b6103e2565b6103de565b6123346103d4565b3d5f823e3d90fd5b61234461350b565b61236f5f61235961235484612252565b61225e565b636e25b978906123676103d4565b93849261226a565b8252818061237f60048201610a5c565b03915afa80156123ff5761239b915f916123dd575b5082613546565b6123c57f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d916105f9565b906123ce6103d4565b806123d881610a5c565b0390a2565b6123f991503d805f833e6123f18183610e74565b8101906122f9565b5f612394565b61232c565b9061240e906105f9565b5f5260205260405f2090565b6124316124369161242961203d565b50601b612404565b610724565b90565b9061244b9161244661386f565b61244d565b565b906124609161245b81613929565b613985565b565b9061246c91612439565b565b61247f9061247a613a83565b6124cd565b90565b90565b61249961249461249e92612482565b61161c565b6107b8565b90565b6124ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc612485565b90565b506124d66124a1565b90565b6124e96124e4612184565b61246e565b90565b6124f86124fd9161064d565b611210565b90565b61250a90546124ec565b90565b612515611ff9565b506125285f612522613ae1565b01612500565b90565b5f90565b61254661254b9161253e61252b565b506056610de5565b610666565b90565b6125739161256961256e9261256161252b565b506057610dcf565b610de5565b610666565b90565b5f90565b90612584906105f9565b5f5260205260405f2090565b60018060a01b031690565b6125a76125ac9161064d565b612590565b90565b6125b9905461259b565b90565b6125d36125d8916125cb612576565b50600661257a565b6125af565b90565b6125ed906125e7612576565b50613b1b565b90565b906125fa906105f9565b5f5260205260405f2090565b612635915f61262a6126309361261a611ff9565b50826126246136ba565b01612188565b016125f0565b612500565b90565b61264f6126549161264761252b565b506023610de5565b610666565b90565b90612661906104e2565b9052565b9061266f906107b8565b9052565b9061267d906107c8565b9052565b9061268b906107dc565b9052565b61269a610120610e9b565b90565b9061277b61277160066126ae61268f565b946126c56126bd5f8301610666565b5f8801612657565b6126dc6126d35f830161068d565b60208801612657565b6126f36126ea5f83016106b4565b60408801612657565b61270b612702600183016106d8565b60608801612665565b61272361271a60028301610700565b60808801612673565b61273b61273260038301610724565b60a08801612681565b61275361274a60048301610724565b60c08801612681565b61276b61276260058301610724565b60e08801612681565b016106d8565b6101008401612665565b565b6127869061269d565b90565b61279390516104e2565b90565b6127aa6127a56127af92611619565b6105ce565b6104e2565b90565b6127bc90516107b8565b90565b6127c990516107dc565b90565b634e487b7160e01b5f52601160045260245ffd5b6127ef6127f5919392936107dc565b926107dc565b820391821161280057565b6127cc565b61281461281a919392936107dc565b926107dc565b916128268382026107dc565b92818404149015171561283557565b6127cc565b634e487b7160e01b5f52601260045260245ffd5b61285a612860916107dc565b916107dc565b90811561286b570490565b61283a565b9291909261289961289461288261203d565b9561288f60558590610605565b610637565b61277d565b916128a55f8401612789565b6128b76128b15f612796565b916104e2565b1461297857906128d491906128ce606085016127b2565b91613c4f565b90816128e86128e25f612079565b916107dc565b14612968576128f960c082016127bf565b61291661291061290b60e085016127bf565b6107dc565b916107dc565b11612920575b5050565b6129609293509061294c8261294660e061293f60c061295297016127bf565b92016127bf565b906127e0565b90612805565b61295a61189c565b9061284e565b905f8061291c565b505090506129755f612079565b90565b50505090506129865f612079565b90565b5f90565b5f90565b5f90565b5f90565b6129a161268f565b90602080808080808080808a6129b5612989565b8152016129c0612989565b8152016129cb612989565b8152016129d661298d565b8152016129e1612991565b8152016129ec612995565b8152016129f7612995565b815201612a02612995565b815201612a0d61298d565b81525050565b612a1b612999565b90565b612a4391612a39612a3e92612a31612a13565b506055610605565b610637565b61277d565b90565b612a506040610e9b565b90565b612a5b612a46565b9060208083612a68612995565b815201612a73612995565b81525050565b612a81612a53565b90565b90612a8e9061061b565b5f5260205260405f2090565b90612aa4906105f9565b5f5260205260405f2090565b90612ae7612ade6001612ac1612a46565b94612ad8612ad05f8301610724565b5f8801612681565b01610724565b60208401612681565b565b612af290612ab0565b90565b612b1a91612b10612b1592612b08612a79565b506010612a84565b612a9a565b612ae9565b90565b612b4291612b38612b3d92612b3061252b565b506058610dcf565b610de5565b610666565b90565b612b51612b5691610673565b611210565b90565b612b639054612b45565b90565b612b7a612b75612b7f92611a63565b6105ce565b6104e2565b90565b612b8b906105ed565b90565b90612b9f60018060401b039161161c565b9181191691161790565b90565b90612bc1612bbc612bc89261061b565b612ba9565b8254612b8e565b9055565b60401b90565b90612be160ff60401b91612bcc565b9181191691161790565b612bf490610433565b90565b90565b90612c0f612c0a612c1692612beb565b612bf7565b8254612bd2565b9055565b612c2390612b66565b9052565b9190612c3a905f60208501940190612c1a565b565b909192612c47613d3e565b93612c5c612c565f8701612b59565b15610433565b93612c685f8701610666565b80612c7b612c755f612796565b916104e2565b1480612d95575b90612c96612c906001612b66565b916104e2565b1480612d6d575b612ca8909115610433565b9081612d5c575b50612d4057612cd893612ccd612cc56001612b66565b5f8901612bac565b85612d2e575b61314d565b612ce0575b50565b612ced905f809101612bfa565b6001612d257fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d1c6103d4565b91829182612c27565b0390a15f612cdd565b612d3b60015f8901612bfa565b612cd3565b5f63f92ee8a960e01b815280612d5860048201610a5c565b0390fd5b612d67915015610433565b5f612caf565b50612ca8612d7a30612b82565b3b612d8d612d875f612079565b916107dc565b149050612c9d565b5085612c82565b612db0612dab612db592611619565b6105ce565b610544565b90565b612dc190612d9c565b90565b612dce6040610e9b565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612def57565b612dd1565b90612dfe82612de5565b565b90612e0a90612df4565b9052565b90612e189061054f565b9052565b612e30612e2b612e35926107dc565b6105ce565b6107c8565b90565b612e4260c0610e9b565b90565b90612e4f90610433565b9052565b90612e5d90612057565b5f5260205260405f2090565b612e739051610433565b90565b90612e8260ff9161161c565b9181191691161790565b90612ea1612e9c612ea892612beb565b612bf7565b8254612e76565b9055565b90612eb85f199161161c565b9181191691161790565b612ed6612ed1612edb926107dc565b6105ce565b6107dc565b90565b90565b90612ef6612ef1612efd92612ec2565b612ede565b8254612eac565b9055565b612f0b90516107c8565b90565b90612f1b61ffff9161161c565b9181191691161790565b612f39612f34612f3e926107c8565b6105ce565b6107c8565b90565b90565b90612f59612f54612f6092612f25565b612f41565b8254612f0e565b9055565b90612ff360a06005612ff994612f875f8201612f815f8801612e69565b90612e8c565b612fa060018201612f9a602088016127bf565b90612ee1565b612fb960028201612fb3604088016127bf565b90612ee1565b612fd260038201612fcc606088016127bf565b90612ee1565b612feb60048201612fe5608088016127bf565b90612ee1565b019201612f01565b90612f44565b565b9061300591612f64565b565b60801b90565b9061301d61ffff60801b91613007565b9181191691161790565b9061303c61303761304392612f25565b612f41565b825461300d565b9055565b90565b61305e61305961306392613047565b6105ce565b6104e2565b90565b61307161546061304a565b90565b90613089600160401b600160801b0391612bcc565b9181191691161790565b906130a86130a36130af9261061b565b612ba9565b8254613074565b9055565b90565b6130ca6130c56130cf926130b3565b6105ce565b6104e2565b90565b6130dc601c6130b6565b90565b60c01b90565b906130f760018060c01b0319916130df565b9181191691161790565b9061311661311161311d9261061b565b612ba9565b82546130e5565b9055565b90565b61313861313361313d92613121565b6105ce565b6104e2565b90565b61314a6038613124565b90565b919091613158613d6c565b613160613d80565b613168613da6565b613170613dcc565b61317861163d565b81613182916136f2565b5061318b6111ac565b81613195916136f2565b5061319e6117ac565b906131a8916136f2565b505f806131b490612db8565b6131bc612dc4565b915f8301906131ca91612e00565b60208201906131d891612e0e565b6131e190613e36565b90600192905f80916131f1611ec5565b6131fa90612e1c565b93613203612e38565b965f88019061321191612e45565b602087019061321f91612681565b604086019061322d91612681565b61323690612079565b606085019061324491612681565b61324d90612079565b608084019061325b91612681565b60a083019061326991612673565b60029061327591612e53565b9061327f91612ffb565b600161328c906005612e8c565b613297906001613027565b60016132a290612b66565b6132ac905f612bac565b6132b4613066565b6132be905f613093565b6132c66130d2565b6132d0905f613101565b6132d86130d2565b6132e3906001612bac565b6132eb613140565b6132f6906001613093565b565b90613304939291612c3c565b565b906133219161331c6133178261219e565b6136de565b613323565b565b9061332d916137b6565b50565b9061333a91613306565b565b600161334891016107dc565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b9190811015613373576020020190565b61334f565b35613382816103f2565b90565b61338e906103e6565b90565b91909161339c61350b565b6133a55f612079565b5b806133c36133bd6133b885889061334b565b6107dc565b916107dc565b101561344757613442906133e96133e46133df85888591613363565b613378565b613efd565b6133fd6133f884878491613363565b613378565b6134277fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb91613385565b906134306103d4565b8061343a81610a5c565b0390a261333c565b6133a6565b50509050565b906134679161346261345d6111ac565b6136de565b613469565b565b61347e8261347960238490610de5565b612bac565b6134bd6134ab7f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f35926105f9565b926134b46103d4565b918291826104fa565b0390a2565b906134cc9161344d565b565b613f13565b6134db611ff9565b506134f56134ef6301ffc9a760e01b6103e6565b916103e6565b1490565b6135096135046111ac565b6136de565b565b6135136134f9565b565b5190565b9061352382613515565b811015613534576020809102010190565b61334f565b61354390516103e6565b90565b91908261356361355d6135585f612db8565b61054f565b9161054f565b146136b557823b61357c6135765f612079565b916107dc565b146136af5761358a5f612079565b5b806135a66135a061359b85613515565b6107dc565b916107dc565b10156136a9576135c76135c26135bd848490613519565b613539565b613b1b565b806135e26135dc6135d75f612db8565b61054f565b9161054f565b14158061368e575b613677575061367290613610613609613604858490613519565b613539565b869061401a565b61362361361e848390613519565b613539565b856136576136517f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b3993613385565b916105f9565b916136606103d4565b8061366a81610a5c565b0390a361333c565b61358b565b6136896136848385613519565b613539565b613fc1565b50806136a261369c8761054f565b9161054f565b14156135ea565b50509050565b82613f72565b613f56565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6136f0906136ea6137a9565b90614053565b565b6136fa611ff9565b506137036136ba565b613717613711838590612606565b15610433565b5f146137a2576137419061373c5f61373481600194018690612188565b0185906125f0565b612e8c565b9061374a6137a9565b9061378761378161377b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d95612057565b926105f9565b926105f9565b926137906103d4565b8061379a81610a5c565b0390a4600190565b5050505f90565b6137b1612576565b503390565b6137be611ff9565b506137c76136ba565b6137d2828490612606565b5f1461385c576137fb906137f65f6137ee818094018690612188565b0185906125f0565b612e8c565b906138046137a9565b9061384161383b6138357ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b95612057565b926105f9565b926105f9565b9261384a6103d4565b8061385481610a5c565b0390a4600190565b5050505f90565b61386c906105ed565b90565b61387830613863565b6138aa6138a47f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b1480156138d4575b6138b857565b5f63703e46dd60e11b8152806138d060048201610a5c565b0390fd5b506138dd61408e565b61390f6139097f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b14156138b2565b506139276139226111ac565b6136de565b565b61393290613916565b565b61393d906105d1565b90565b61394990613934565b90565b613955906105ed565b90565b90505190613965826108b2565b565b906020828203126139805761397d915f01613958565b90565b6103de565b91906139b3602061399d61399886613940565b61394c565b6352d1902d906139ab6103d4565b93849261226a565b825281806139c360048201610a5c565b03915afa80915f92613a53575b50155f14613a045750509060016139e557505b565b613a00905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b9283613a1f613a19613a146124a1565b6107b8565b916107b8565b03613a3457613a2f9293506140b4565b6139e3565b613a4f845f918291632a87526960e21b835260048301610ab3565b0390fd5b613a7591925060203d8111613a7c575b613a6d8183610e74565b810190613967565b905f6139d0565b503d613a63565b613a8c30613863565b613abe613ab87f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b03613ac557565b5f63703e46dd60e11b815280613add60048201610a5c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b0f90613385565b5f5260205260405f2090565b613b32613b3791613b2a612576565b506021613b05565b6125af565b90565b90613b44906105f9565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613b6981613b53565b821015613b8357613b7b600491613b57565b910201905f90565b61334f565b90565b60ff1690565b613b9d613ba29161064d565b613b8b565b90565b613baf9054613b91565b90565b60081c90565b613bc4613bc991613bb2565b612590565b90565b613bd69054613bb8565b90565b613be36040610e9b565b90565b90613c1c613c135f613bf6613bd9565b94613c0d613c05838301613ba5565b838801612e00565b01613bcc565b60208401612e0e565b565b613c2790613be6565b90565b613c39613c3f919392936107dc565b926107dc565b8201809211613c4a57565b6127cc565b929192613c6d613c68613c6061203d565b926015613b3a565b613b50565b93613c7785613b53565b93613c815f612079565b5b80613c95613c8f886107dc565b916107dc565b1015613d3557613caf613ca9888390613b60565b50613b88565b613cba5f82016125af565b613ccc613cc68861054f565b9161054f565b1480613d08575b613ce7575b50613ce29061333c565b613c82565b613ce29194613cfb6001613d019301610724565b90613c2a565b9390613cd8565b50613d1d613d1860028301613c1e565b613e36565b613d2f613d29866107b8565b916107b8565b14613cd3565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613d6a61413d565b565b613d74613d62565b565b613d7e61413d565b565b613d88613d76565b565b613d9261413d565b613d9a613d9c565b565b613da4614198565b565b613dae613d8a565b565b613db861413d565b613dc0613dc2565b565b613dca6141de565b565b613dd4613db0565b565b613de09051612df4565b90565b613ded905161054f565b90565b613df990612df4565b90565b613e0590613df0565b9052565b916020613e2a929493613e2360408201965f830190613dfc565b019061139f565b565b60200190565b5190565b613e3e612184565b50613e80613e596020613e525f8501613dd6565b9301613de3565b91613e71613e656103d4565b93849260208401613e09565b60208201810382520382610e74565b613e92613e8c82613e32565b91613e2c565b2090565b1b90565b91906008613eba910291613eb460018060a01b0384613e96565b92613e96565b9181191691161790565b90565b9190613edd613ed8613ee5936105f9565b613ec4565b908354613e9a565b9055565b613efb91613ef5612576565b91613ec7565b565b5f613f0c613f11926021613b05565b613ee9565b565b613f2663ffffffff60e01b5f3516613b1b565b80613f41613f3b613f365f612db8565b61054f565b9161054f565b0361421c5763ffffffff60e01b5f35166141fd565b5f63d92e233d60e01b815280613f6e60048201610a5c565b0390fd5b613f8d905f9182916322a2d07b60e21b8352600483016113ac565b0390fd5b613f9a906103e6565b9052565b916020613fbf929493613fb860408201965f830190613f91565b019061139f565b565b613fdb5f9283926310ae11a960e31b845260048401613f9e565b0390fd5b90613ff060018060a01b039161161c565b9181191691161790565b9061400f61400a614016926105f9565b613ec4565b8254613fdf565b9055565b61402961402e92916021613b05565b613ffa565b565b91602061405192949361404a60408201965f83019061139f565b01906107bb565b565b90614068614062838390612606565b15610433565b614070575050565b61408a5f92839263e2517d3f60e01b845260048401614030565b0390fd5b614096612576565b506140b15f6140ab6140a66124a1565b61423a565b016125af565b90565b906140be8261423d565b816140e97fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b916105f9565b906140f26103d4565b806140fc81610a5c565b0390a261410881613e32565b61411a6141145f612079565b916107dc565b115f1461412e5761412a9161430d565b505b565b5050614138614292565b61412c565b61414e61414861433c565b15610433565b61415457565b5f631afcd79f60e31b81528061416c60048201610a5c565b0390fd5b61417861413d565b614180614182565b565b61419661418d613ae1565b5f809101612e8c565b565b6141a0614170565b565b6141aa61413d565b6141b26141c1565b565b6141be6001611a66565b90565b6141dc6141cc61435a565b5f6141d56141b4565b9101612ee1565b565b6141e66141a2565b565b91906141fb905f60208501940190613f91565b565b614218905f91829163c2a825f560e01b8352600483016141e8565b0390fd5b5f8091368280378136915af43d5f803e5f14614236573d5ff35b3d5ffd5b90565b803b61425161424b5f612079565b916107dc565b1461427357614271905f61426b6142666124a1565b61423a565b01613ffa565b565b61428e905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b346142a561429f5f612079565b916107dc565b116142ac57565b5f63b398979f60e01b8152806142c460048201610a5c565b0390fd5b606090565b906142df6142da83610eb0565b610e9b565b918252565b3d5f146142ff576142f43d6142cd565b903d5f602084013e5b565b6143076142c8565b906142fd565b5f806143399361431b6142c8565b508390602081019051915af4906143306142e4565b9091909161437e565b90565b614344611ff9565b506143575f614351613d3e565b01612b59565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906143929061438b6142c8565b5015610433565b5f1461439e5750614402565b6143a782613e32565b6143b96143b35f612079565b916107dc565b14806143e7575b6143c8575090565b6143e3905f918291639996b31560e01b8352600483016113ac565b0390fd5b50803b6143fc6143f65f612079565b916107dc565b146143c0565b61440b81613e32565b61441d6144175f612079565b916107dc565b115f1461442c57805190602001fd5b5f63d6bda27560e01b81528061444460048201610a5c565b0390fdfea164736f6c634300081a000a","sourceMap":"1033:3847:55:-:0;;;;;;;;;-1:-1:-1;1033:3847:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;3981:30:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;4797:70:59:-;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;1033:3847:55:-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2014:52:53:-;2060:6;;;:::i;:::-;2014:52;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;5347:35:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2192:53:53:-;2239:6;;;:::i;:::-;2192:53;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1961:47:53:-;2002:6;;;:::i;:::-;1961:47;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4756:33:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;5194:72:59:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;3036:64:53;3075:25;3036:64;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2072:53:53:-;2119:6;;;:::i;:::-;2072:53;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3188:62:53:-;3226:24;3188:62;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;2970:60:53:-;3007:23;2970:60;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;6608:25:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1751:48:53:-;1792:7;;;:::i;:::-;1751:48;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1566:44:53:-;1607:3;;;:::i;:::-;1566:44;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3785:26:53:-;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4917:45:59:-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;5041:70:59:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1698:47:53:-;1738:7;;;:::i;:::-;1698:47;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2317:49:22:-;2362:4;;;:::i;:::-;2317:49;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3106:76:53:-;3151:31;3106:76;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2131:55:53:-;2180:6;;;:::i;:::-;2131:55;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1059:40:53:-;1095:4;;;:::i;:::-;1059:40;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;:::i;:::-;;:::o;1819:58:24:-;1870:7;;:::i;:::-;1819:58;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;7488:27:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1616:42:53:-;1657:1;;;:::i;:::-;1616:42;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4559:37:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1805:50:53:-;1848:7;;;:::i;:::-;1805:50;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;5528:55:53:-;5577:6;;;:::i;:::-;5528:55;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;4663:34:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2437:46:53:-;2479:4;;;:::i;:::-;2437:46;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1105:48:53:-;1147:6;;;:::i;:::-;1105:48;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1861:49:53:-;1902:8;;;:::i;:::-;1861:49;:::o;:::-;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3888:27:53:-;;;;;;:::i;:::-;;:::o;1033:3847:55:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;3443:202:22:-;3528:4;;:::i;:::-;3551:11;;:47;;3566:32;;;3551:47;:::i;:::-;;;:::i;:::-;;:87;;;;;3443:202;3544:94;;:::o;3551:87::-;3602:36;3626:11;;3602:36;:::i;:::-;3551:87;;;1033:3847:55;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;18896:223:53:-;19022:41;18896:223;19022:30;:41;18896:223;18986:7;;:::i;:::-;19022:20;;:30;:::i;:::-;:41;:::i;:::-;;:::i;:::-;19080:6;:11;;19090:1;19080:11;:::i;:::-;;;:::i;:::-;;:32;;;;19094:9;;;:::i;:::-;19080:32;19073:39;:::o;19080:32::-;;;1033:3847:55;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;986:179:30:-;1122:36;986:179;1122:36;986:179;;;:::i;:::-;1148:9;1122:36;:::i;:::-;;;:::i;:::-;986:179::o;1033:3847:55:-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;4759:191:22:-;4919:24;:14;:24;4759:191;4824:7;;:::i;:::-;4876:26;4919:8;4876:26;;:::i;:::-;4919:8;:14;:::i;:::-;:24;;:::i;:::-;4912:31;:::o;3149:76::-;;3217:1;3149:76;3202:4;5320:18;5333:4;5320:18;:::i;:::-;3202:4;:::i;:::-;3217:1;:::i;:::-;3149:76::o;5246:136::-;;5350:25;5246:136;5350:25;:::i;:::-;;5246:136::o;:::-;;;;;:::i;:::-;:::o;6348:245::-;;6441:18;:34;;6463:12;;:::i;:::-;6441:34;:::i;:::-;;;:::i;:::-;;6437:102;;6549:37;6561:4;6549:37;:::i;:::-;;6348:245::o;6437:102::-;6498:30;;;;;;;;;;;;:::i;:::-;;;;1033:3847:55;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;;;668:256:30;;;:::i;:::-;797:34;;:32;:22;813:5;797:22;:::i;:::-;:32;:::i;:::-;;:34;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;867:12;797:34;;;;;668:256;766:65;860:5;867:12;:::i;:::-;895:22;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;668:256::o;797:34::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;1033:3847:55:-;;;;;:::i;:::-;;;;;;;;;:::o;12432:122:58:-;12524:23;;12432:122;12498:7;;:::i;:::-;12524:16;;:23;:::i;:::-;;:::i;:::-;12517:30;:::o;2624:62:24:-;;2678:1;2624:62;;;:::i;:::-;2678:1;:::i;:::-;2624:62::o;4161:214::-;;4363:4;4161:214;4294:17;;;:::i;:::-;4363:4;:::i;:::-;4161:214::o;:::-;;;;;:::i;:::-;:::o;2892:72::-;2956:1;2892:72;;;:::i;:::-;2956:1;:::i;:::-;2892:72;:::o;1033:3847:55:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;763:114:8:-;811:66;;;:::i;:::-;763:114;:::o;3708:134:24:-;3803:32;;;:::i;:::-;3796:39;:::o;3708:134::-;3777:7;;;:::i;:::-;;:::i;:::-;3708:134;:::o;1033:3847:55:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;2692:145:26:-;2739:4;;:::i;:::-;2783:21;2821:9;;2783:21;;:::i;:::-;2821:9;;:::i;:::-;2814:16;:::o;1033:3847:55:-;;;:::o;31210:117:59:-;31299:21;;31210:117;31274:6;;:::i;:::-;31299:11;;:21;:::i;:::-;;:::i;:::-;31292:28;:::o;31766:162::-;31883:38;31766:162;31883:28;:38;31766:162;31858:6;;:::i;:::-;31883:17;;:28;:::i;:::-;:38;:::i;:::-;;:::i;:::-;31876:45;:::o;1033:3847:55:-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;17225:117:54:-;17314:21;;17225:117;17288:7;;:::i;:::-;17314:14;;:21;:::i;:::-;;:::i;:::-;17307:28;:::o;1560:129:30:-;1652:30;1560:129;1626:7;;:::i;:::-;1673:8;1652:30;:::i;:::-;1645:37;:::o;1033:3847:55:-;;;;;:::i;:::-;;;;;;;;;:::o;3732:207:22:-;3901:31;3732:207;3901:22;:14;:31;3732:207;3809:4;;:::i;:::-;3858:26;;;;:::i;:::-;3901:8;:14;:::i;:::-;:22;:31;:::i;:::-;;:::i;:::-;3894:38;:::o;7409:147:59:-;7513:36;;7409:147;7488:6;;:::i;:::-;7513:26;;:36;:::i;:::-;;:::i;:::-;7506:43;:::o;1033:3847:55:-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;29698:783:59:-;;;;;29886:59;29914:31;29852:18;;:::i;:::-;29914:12;:22;:12;29927:8;29914:22;;:::i;:::-;:31;:::i;:::-;29886:59;:::i;:::-;29959:6;:12;;:6;:12;;:::i;:::-;:17;;29975:1;29959:17;:::i;:::-;;;:::i;:::-;;29955:31;;30082:9;30046:74;30082:9;30093:8;30103:16;;:6;:16;;:::i;:::-;30046:74;;:::i;:::-;30134:15;;:20;;30153:1;30134:20;:::i;:::-;;;:::i;:::-;;30130:34;;30258:25;;:6;:25;;:::i;:::-;:52;;30286:24;;:6;:24;;:::i;:::-;30258:52;:::i;:::-;;;:::i;:::-;;30254:221;;29698:783;;;:::o;30254:221::-;30424:40;30345:6;;;;:52;:6;30373:24;;30345:25;;30425:26;30345:6;:25;;:::i;:::-;30373:6;:24;;:::i;:::-;30345:52;;:::i;:::-;30425:26;;:::i;:::-;30455:9;;:::i;:::-;30424:40;;:::i;:::-;30254:221;;;;;30130:34;30163:1;;;;30156:8;30163:1;30156:8;:::i;:::-;;:::o;29955:31::-;29985:1;;;;;29978:8;29985:1;29978:8;:::i;:::-;;:::o;1033:3847:55:-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;31374:156:59:-;31485:38;31374:156;31492:22;:31;31374:156;31455:18;;:::i;:::-;31492:12;;:22;:::i;:::-;:31;:::i;:::-;31485:38;:::i;:::-;;:::o;1033:3847:55:-;;;;:::i;:::-;;:::o;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;34479:154:59:-;34594:32;34479:154;34601:15;:25;34479:154;34553:29;;:::i;:::-;34601:8;;:15;:::i;:::-;:25;:::i;:::-;34594:32;:::i;:::-;;:::o;32184:170::-;32305:42;32184:170;32305:32;:42;32184:170;32280:6;;:::i;:::-;32305:19;;:32;:::i;:::-;:42;:::i;:::-;;:::i;:::-;32298:49;:::o;1033:3847:55:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;4069:1104:23:-;;;;4191:26;;:::i;:::-;4302:1;4301:16;4302:15;;:1;:15;;:::i;:::-;4301:16;;:::i;:::-;4348:1;:14;;:1;:14;;:::i;:::-;4726:11;:16;;4741:1;4726:16;:::i;:::-;;;:::i;:::-;;:34;;;4069:1104;4790:11;:16;;4805:1;4790:16;:::i;:::-;;;:::i;:::-;;:50;;;4069:1104;4855:13;4770:70;4856:12;4855:13;;:::i;:::-;:30;;;;4069:1104;4851:91;;;5055:1;4968;4951:18;;4968:1;4951:18;:::i;:::-;:14;:1;:14;:18;:::i;:::-;4983:14;4979:67;;4069:1104;5055:1;:::i;:::-;5066:101;;4069:1104;;:::o;5066:101::-;5100:23;5118:5;5100:15;5118:5;5100:1;:15;:23;:::i;:::-;5154:1;5142:14;;;;;:::i;:::-;;;;;;:::i;:::-;;;;5066:101;;;4979:67;5013:22;5031:4;5013:15;:1;:15;:22;:::i;:::-;4979:67;;4851:91;4908:23;;;;;;;;;;;;:::i;:::-;;;;4855:30;4872:13;4873:12;;4872:13;;:::i;:::-;4855:30;;;4790:50;4818:4;4855:13;4810;4818:4;4810:13;:::i;:::-;:25;:30;;4839:1;4810:30;:::i;:::-;;;:::i;:::-;;4790:50;;;;4726:34;4746:14;;4726:34;;1033:3847:55;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1033:3847:55;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;826:56:29:-;876:6;;;:::i;:::-;826:56;:::o;876:6::-;;;1033:3847:55;876:6:29;;1033:3847:55;876:6:29;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1071:52::-;1121:2;;;:::i;:::-;1071:52;:::o;1121:2::-;;;;:::o;:::-;;;1033:3847:55;1121:2:29;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1191:51::-;1240:2;;;:::i;:::-;1191:51;:::o;1648:1453:55:-;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2003:18;;:::i;:::-;2023:5;1992:37;;;:::i;:::-;;2050:10;;:::i;:::-;2062:5;2039:29;;;:::i;:::-;;2089:18;;:::i;:::-;2109:5;2078:37;;;:::i;:::-;;2204:22;2236:1;2228:10;;;:::i;:::-;2192:47;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2181:59;;;:::i;:::-;2319:4;;2355:22;2406:19;2451:1;2483;2588:15;;;:::i;:::-;2581:23;;;:::i;:::-;2278:337;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2250:13;2264:10;2250:25;;;:::i;:::-;:365;;;;:::i;:::-;2641:4;2625:20;;;;:::i;:::-;2656:46;;;;:::i;:::-;2727:1;2712:16;;;:::i;:::-;;;;;:::i;:::-;2754:37;;:::i;:::-;2738:53;;;;:::i;:::-;2919:37;;:::i;:::-;2893:63;;;;:::i;:::-;2989:37;;:::i;:::-;2966:60;;;;:::i;:::-;3058:36;;:::i;:::-;3036:58;;;;:::i;:::-;1648:1453::o;:::-;;;;;;;:::i;:::-;:::o;3149:76:22:-;;3217:1;3149:76;3202:4;5737:18;5750:4;5737:18;:::i;:::-;3202:4;:::i;:::-;3217:1;:::i;:::-;3149:76::o;5662:138::-;;5767:26;5662:138;5767:26;:::i;:::-;;5662:138::o;:::-;;;;;:::i;:::-;:::o;1033:3847:55:-;;;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;1220:285:30:-;;;;;;:::i;:::-;1343:13;1355:1;1343:13;:::i;:::-;1380:3;1358:1;:20;;1362:16;:9;;:16;;:::i;:::-;1358:20;:::i;:::-;;;:::i;:::-;;;;;1380:3;1422:9;:12;;;:9;;1432:1;1422:12;;:::i;:::-;;:::i;:::-;;:::i;:::-;1475;;:9;;1485:1;1475:12;;:::i;:::-;;:::i;:::-;1454:34;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;1380:3;:::i;:::-;1343:13;;1358:20;;;;;1220:285::o;3149:76:22:-;;3217:1;3149:76;3202:4;4751:10:55;;:::i;:::-;3202:4:22;:::i;:::-;3217:1;:::i;:::-;3149:76::o;4660:218:55:-;4773:44;4812:5;4773:36;:26;4800:8;4773:36;;:::i;:::-;:44;:::i;:::-;4832:39;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;4660:218::o;:::-;;;;;:::i;:::-;:::o;4056:63::-;;:::i;1035:146:28:-;1111:4;;:::i;:::-;1134:11;:40;;1149:25;;;1134:40;:::i;:::-;;;:::i;:::-;;1127:47;:::o;3149:76:22:-;3202:4;3180:10:55;;:::i;:::-;3202:4:22;:::i;:::-;3149:76::o;3107:88:55:-;;;:::i;:::-;:::o;1033:3847::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;1894:602:30:-;;;1987:5;:19;;1996:10;2004:1;1996:10;:::i;:::-;1987:19;:::i;:::-;;;:::i;:::-;;1983:45;;2042:5;:17;:22;;2063:1;2042:22;:::i;:::-;;;:::i;:::-;;2038:54;;2108:13;2120:1;2108:13;:::i;:::-;2145:3;2123:1;:20;;2127:16;:9;:16;:::i;:::-;2123:20;:::i;:::-;;;:::i;:::-;;;;;2183:34;2204:12;;:9;2214:1;2204:12;;:::i;:::-;;:::i;:::-;2183:34;:::i;:::-;2235:8;:22;;2247:10;2255:1;2247:10;:::i;:::-;2235:22;:::i;:::-;;;:::i;:::-;;;:43;;;2145:3;2231:138;;2403:9;2145:3;2403:9;2417:5;2403:12;;:9;2413:1;2403:12;;:::i;:::-;;:::i;:::-;2417:5;;;:::i;:::-;2459:12;;:9;2469:1;2459:12;;:::i;:::-;;:::i;:::-;2473:5;2442:37;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2145:3;:::i;:::-;2108:13;;2231:138;2331:12;;:9;;:12;:::i;:::-;;:::i;:::-;2345:8;:::i;2235:43::-;2261:8;;:17;;2273:5;2261:17;:::i;:::-;;;:::i;:::-;;;2235:43;;2123:20;;;;;1894:602::o;2038:54::-;2086:5;;:::i;1983:45::-;;:::i;2787:177:22:-;2887:71;2787:177;:::o;4148:103::-;4231:12;4148:103;4231:12;;:::i;:::-;;;:::i;:::-;4148:103::o;7270:387::-;7347:4;;:::i;:::-;7396:26;;;:::i;:::-;7436:23;7437:22;7445:4;7451:7;7437:22;;:::i;:::-;7436:23;;:::i;:::-;7432:219;;;;7475:38;7509:4;7475:31;:22;:14;7509:4;;7475:1;:8;7484:4;7475:14;;:::i;:::-;:22;7498:7;7475:31;;:::i;:::-;:38;:::i;:::-;7550:7;7559:12;;:::i;:::-;7532:40;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;7593:4;7586:11;:::o;7432:219::-;7635:5;;;;7628:12;:::o;887:96:25:-;940:7;;:::i;:::-;966:10;;959:17;:::o;7892:388:22:-;7970:4;;:::i;:::-;8019:26;;;:::i;:::-;8059:22;8067:4;8073:7;8059:22;;:::i;:::-;8055:219;;;;8097:39;8131:5;8097:31;:22;:14;8131:5;;8097:1;:8;8106:4;8097:14;;:::i;:::-;:22;8120:7;8097:31;;:::i;:::-;:39;:::i;:::-;8173:7;8182:12;;:::i;:::-;8155:40;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;8216:4;8209:11;:::o;8055:219::-;8258:5;;;;8251:12;:::o;1033:3847:55:-;;;;:::i;:::-;;:::o;4603:312:24:-;4675:13;4683:4;4675:13;:::i;:::-;:23;;4692:6;4675:23;:::i;:::-;;;:::i;:::-;;:120;;;;4603:312;4658:251;;4603:312::o;4658:251::-;4869:29;;;;;;;;;;;;:::i;:::-;;;;4675:120;4753:32;;;:::i;:::-;:42;;4789:6;4753:42;:::i;:::-;;;:::i;:::-;;;4675:120;;3149:76:22;;3202:4;4368:10:55;;:::i;:::-;3202:4:22;:::i;:::-;3149:76::o;4305:78:55:-;;;;:::i;:::-;:::o;1033:3847::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;6057:538:24:-;;;6156:52;;:50;:36;6174:17;6156:36;:::i;:::-;:50;:::i;:::-;;:52;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;6057:538;6152:437;;;;;;;;;;;;;;6057:538::o;6152:437::-;6518:60;6560:17;6518:60;;;;;;;;;;;;;:::i;:::-;;;;6152:437;6250:4;;:40;;6258:32;;:::i;:::-;6250:40;:::i;:::-;;;:::i;:::-;;6246:120;;6428:4;6409:17;;;6428:4;:::i;:::-;6152:437;;6246:120;6317:34;6346:4;6317:34;;;;;;;;;;;;;:::i;:::-;;;;6156:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5032:213;5098:13;5106:4;5098:13;:::i;:::-;:23;;5115:6;5098:23;:::i;:::-;;;:::i;:::-;;5094:145;;5032:213::o;5094:145::-;5199:29;4869;;;5199;;;;;;;;:::i;:::-;;;;1147:162:26;1237:66;1147:162;:::o;1033:3847:55:-;;;;;:::i;:::-;;;;;;;;;:::o;3201:139::-;3306:27;;3201:139;3280:7;;:::i;:::-;3306:17;;:27;:::i;:::-;;:::i;:::-;3299:34;:::o;1033:3847::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;30487:667:59:-;;;;30700:71;30748:23;30665:19;;:::i;:::-;30748:12;;:23;:::i;:::-;30700:71;:::i;:::-;30809:11;:18;:11;:18;:::i;:::-;30854:1;30842:13;30854:1;30842:13;:::i;:::-;;30857:1;:21;;30861:17;30857:21;:::i;:::-;;;:::i;:::-;;;;;30895:50;30931:14;:11;30943:1;30931:14;;:::i;:::-;;30895:50;:::i;:::-;30963:10;;:1;:10;;:::i;:::-;:22;;30977:8;30963:22;:::i;:::-;;;:::i;:::-;;:58;;;30842:13;30959:120;;30842:13;31120:3;;;;:::i;:::-;30842:13;;30959:120;31120:3;31056:1;;:8;;31041:23;31056:1;:8;;:::i;:::-;31041:23;;:::i;:::-;30959:120;;;;30963:58;31000:1;30989:19;;31000:7;:1;:7;30989:19;:::i;:::-;;:::i;:::-;:32;;31012:9;30989:32;:::i;:::-;;;:::i;:::-;;30963:58;;30857:21;;;;;;;;30487:667::o;8737:170:23:-;8837:64;8737:170;:::o;6893:76::-;;;:::i;:::-;:::o;2970:67:24:-;;;:::i;:::-;:::o;6893:76:23:-;;;:::i;:::-;:::o;3231:65:22:-;;;:::i;:::-;:::o;6893:76:23:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1836:97:26:-;;;:::i;:::-;:::o;:::-;;;:::i;:::-;:::o;6893:76:23:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;2684:111:27:-;;;:::i;:::-;:::o;:::-;;;:::i;:::-;:::o;1033:3847:55:-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;:::o;16492:204:53:-;16561:7;;:::i;:::-;16664:5;16653:35;16676:11;;16664:10;;:5;:10;;:::i;:::-;16676:5;:11;;:::i;:::-;16653:35;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;16643:46;;;;:::i;:::-;;;:::i;:::-;;16636:53;:::o;1033:3847:55:-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;3484:118::-;3561:34;3568:27;3561:34;3484:118;3568:17;:27;:::i;:::-;3561:34;:::i;:::-;3484:118::o;1695:193:30:-;1758:29;1033:3847:55;;;1779:7:30;;;1758:29;:::i;:::-;1801:5;:19;;1810:10;1818:1;1810:10;:::i;:::-;1801:19;:::i;:::-;;;:::i;:::-;;1875:5;1797:56;1033:3847:55;;;1845:7:30;;;;:::i;3608:107:55:-;3678:30;;;;;;;;;;;;:::i;:::-;;;;3721:127;3805:36;3721:127;3805:36;;;;;;;;;;;;;:::i;:::-;;;;1033:3847;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;3854:196::-;3976:67;;;;;;;;;;;;;;:::i;:::-;;;;1033:3847;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;3346:132::-;3436:27;:35;3346:132;3436:17;;:27;:::i;:::-;:35;:::i;:::-;3346:132::o;1033:3847::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;4381:197:22:-;;4468:23;4469:22;4477:4;4483:7;4469:22;;:::i;:::-;4468:23;;:::i;:::-;4464:108;;4381:197;;:::o;4464:108::-;4514:47;;;;;;;;;;;;;;:::i;:::-;;;;1441:138:8;1493:7;;:::i;:::-;1546:19;1519:53;;:47;1546:19;;:::i;:::-;1519:47;:::i;:::-;:53;;:::i;:::-;1512:60;:::o;2264:344::-;;2374:17;;;:::i;:::-;2425;2407:36;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2458:11;:4;:11;:::i;:::-;:15;;2472:1;2458:15;:::i;:::-;;;:::i;:::-;;2454:148;;;;2489:53;2518:17;2489:53;:::i;:::-;;2454:148;2264:344::o;2454:148::-;;;;;:::i;:::-;;;7084:141:23;7150:18;7151:17;;:::i;:::-;7150:18;;:::i;:::-;7146:73;;7084:141::o;7146:73::-;7191:17;;;;;;;;;;;;:::i;:::-;;;;6893:76;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1939:156:26:-;2071:17;2040:21;;:::i;:::-;2071:9;2083:5;2071:1;:9;:17;:::i;:::-;1939:156::o;:::-;;;:::i;:::-;:::o;6893:76:23:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1910:40:27:-;1949:1;;;:::i;:::-;1910:40;:::o;2801:183::-;2954:23;2916:28;;:::i;:::-;2954:9;2966:11;;:::i;:::-;2954:1;:9;:23;:::i;:::-;2801:183::o;:::-;;;:::i;:::-;:::o;1033:3847:55:-;;;;;;;;;;;;;:::i;:::-;:::o;4161:138::-;4250:42;4161:138;4250:42;;;;;;;;;;;;;:::i;:::-;;;;2694:388:30;2750:326;2694:388;;2750:326;;;;;;;;;;;;;;;;;;;;;;;;1899:163:16;;:::o;1671:281:8:-;1748:17;:29;:34;;1781:1;1748:34;:::i;:::-;;;:::i;:::-;;1744:119;;1872:73;1928:17;1872:53;:47;1899:19;;:::i;:::-;1872:47;:::i;:::-;:53;:73;:::i;:::-;1671:281::o;1744:119::-;1805:47;1834:17;1805:47;6518:60:24;;;;;;1805:47:8;;;;;;:::i;:::-;;;;6113:122;6163:9;:13;;6175:1;6163:13;:::i;:::-;;;:::i;:::-;;6159:70;;6113:122::o;6159:70::-;6199:19;;;;;;;;;;;;:::i;:::-;;;;1033:3847:55;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;3900:253:12;4049:25;3900:253;4091:55;3900:253;3983:12;;:::i;:::-;4049:6;;4069:4;4049:25;;;;;;;;;;;:::i;:::-;4118:6;4126:7;4135:10;4091:55;;:::i;:::-;4084:62;:::o;8487:120:23:-;8537:4;;:::i;:::-;8560:26;:40;;:26;;:::i;:::-;:40;;:::i;:::-;8553:47;:::o;2395:183:27:-;2499:73;2395:183;:::o;4421:582:12:-;;4593:8;4421:582;4565:12;;:::i;:::-;4594:7;4593:8;;:::i;:::-;4589:408;;;;4625:10;;:::i;4589:408::-;4841:17;:10;:17;:::i;:::-;:22;;4862:1;4841:22;:::i;:::-;;;:::i;:::-;;:49;;;4589:408;4837:119;;4976:10;4969:17;:::o;4837:119::-;4917:24;4934:6;4917:24;;;;;;;;;;;;;:::i;:::-;;;;4841:49;4867:6;;:18;:23;;4889:1;4867:23;:::i;:::-;;;:::i;:::-;;4841:49;;5543:487;5674:17;:10;:17;:::i;:::-;:21;;5694:1;5674:21;:::i;:::-;;;:::i;:::-;;5670:354;;;;5799:158;;;;;;5670:354;5994:19;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{},"immutableReferences":{"6698":[{"start":14464,"length":32},{"start":14565,"length":32},{"start":14996,"length":32}]}},"methodIdentifiers":{"ADMIN_ROLE()":"75b238fc","ASSET_MANAGER_ROLE()":"a4b32de8","BPS_DENOMINATOR()":"e1a45218","COMMISSION_CHANGE_DELAY()":"d45ff582","DEFAULT_ADMIN_ROLE()":"a217fddf","LOCK_ONE_MONTH()":"9e870585","LOCK_SIX_MONTHS()":"f3c9b311","LOCK_THREE_MONTHS()":"d27a6f06","LOCK_TWO_MONTHS()":"7df92ada","MIN_LOCK_AMOUNT()":"dd764abf","MULTIPLIER_NONE()":"4962f88f","MULTIPLIER_ONE_MONTH()":"18056dc2","MULTIPLIER_SIX_MONTHS()":"453eccea","MULTIPLIER_THREE_MONTHS()":"a7fa6f98","MULTIPLIER_TWO_MONTHS()":"54de2320","PRECISION()":"aaf5eb68","SLASHER_ROLE()":"5095af64","TANGLE_ROLE()":"602356e3","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","VIRTUAL_ASSETS()":"b6608409","VIRTUAL_SHARES()":"88c47f68","blueprintSlashCount(uint64,address)":"4e9c929a","clearFacetSelectors(bytes4[])":"e07dec29","currentRound()":"8a19c8bc","delegationBondLessDelay()":"ba05bbf5","facetForSelector(bytes4)":"90837ff4","getAccumulatedDust(address)":"49147411","getAssetAdapter(address)":"8a7fe60f","getOperatorSlashFactor(address,bytes32)":"12d91c88","getPendingSlashCount(address)":"9480e4dd","getRoleAdmin(bytes32)":"248a9ca3","getSlashCount(address)":"66c36875","getSlashCountForBlueprint(uint64,address)":"c550d938","getSlashCountForService(uint64,address)":"72b5032d","getSlashImpact(address,uint64,address)":"9494f426","getSlashRecord(address,uint64)":"a457af3d","getSnapshot(uint64,address)":"c07449e2","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,uint256,uint256,uint16)":"cbb6d6bd","lastRoundAdvance()":"05d64e38","leaveDelegatorsDelay()":"db8a173a","leaveOperatorsDelay()":"4de8addc","nativeEnabled()":"77ab2cf3","nextSlashId(address)":"96085673","operatorCommissionBps()":"32273f61","paused()":"5c975abb","proxiableUUID()":"52d1902d","registerFacet(address)":"46d163aa","registerFacetSelectors(address,bytes4[])":"19e82e61","renounceRole(bytes32,address)":"36568abe","requireAdapters()":"b54b2b9e","resetPendingSlashCount(address,uint64)":"e27e05c1","revokeRole(bytes32,address)":"d547741f","roundDuration()":"f7cb789a","serviceSlashCount(uint64,address)":"9722f4b9","slashHistory(address,uint64)":"0aa8b110","supportsInterface(bytes4)":"01ffc9a7","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"NotAContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"existingFacet\",\"type\":\"address\"}],\"name\":\"SelectorAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"UnknownSelector\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintAddedToDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintRemovedFromDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DelegatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"estimatedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"DelegatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lock\",\"type\":\"uint8\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDust\",\"type\":\"uint256\"}],\"name\":\"DustAccumulated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DustSwept\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"ExpiredLocksHarvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"FacetRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"FacetSelectorCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"FacetSelectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.DelegationMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"OperatorDelegationModeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorLeavingScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorStakeIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorWhitelistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashCountReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashDecremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashIncremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"SlashRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegatorsSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"commitmentCount\",\"type\":\"uint256\"}],\"name\":\"SlashedForService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"WithdrawScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ASSET_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BPS_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMMISSION_CHANGE_DELAY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_LOCK_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_NONE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TANGLE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VIRTUAL_ASSETS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VIRTUAL_SHARES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blueprintSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"clearFacetSelectors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationBondLessDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"facetForSelector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAccumulatedDust\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAssetAdapter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"}],\"name\":\"getOperatorSlashFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getPendingSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getSlashImpact\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lostAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashRecord\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"internalType\":\"struct SlashingManager.SlashRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSnapshot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDelegated\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.OperatorSnapshot\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeMinOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeMinDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"_operatorCommissionBps\",\"type\":\"uint16\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastRoundAdvance\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveDelegatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveOperatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nextSlashId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCommissionBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"registerFacet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"registerFacetSelectors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requireAdapters\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"resetPendingSlashCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"serviceSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"slashHistory\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ZeroAddress()\":[{\"details\":\"L-18 FIX: Zero address provided - kept parameterless for backward compatibility Context is typically clear from the function that reverts\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SlashRecorded(address,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"details\":\"Individual delegator amounts can be computed: shares * (oldRate - newRate) / PRECISION\"},\"Slashed(address,uint64,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"params\":{\"assetHash\":\"Asset hash for the pool\",\"blueprintId\":\"The blueprint where violation occurred (0 for consensus/native slash)\",\"delegatorsSlashed\":\"Amount slashed from delegator pools (reduces totalAssets)\",\"exchangeRateAfter\":\"Exchange rate after slash (scaled by PRECISION)\",\"operator\":\"The slashed operator\",\"operatorSlashed\":\"Amount slashed from operator's self-stake\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"}},\"SlashedForService(address,uint64,uint64,uint256,uint256)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"commitmentCount\":\"Number of asset commitments that were slashed\",\"operator\":\"The slashed operator\",\"serviceId\":\"The service where violation occurred\",\"totalSlashed\":\"Total amount slashed across all committed assets\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAccumulatedDust(address)\":{\"params\":{\"token\":\"The token address (address(0) for native)\"},\"returns\":{\"_0\":\"The accumulated dust amount\"}},\"getAssetAdapter(address)\":{\"params\":{\"token\":\"Token address\"},\"returns\":{\"_0\":\"adapter Adapter address (or zero if none)\"}},\"getOperatorSlashFactor(address,bytes32)\":{\"details\":\"Returns PRECISION (1e18) if unset\"},\"getPendingSlashCount(address)\":{\"params\":{\"operator\":\"The operator to query\"},\"returns\":{\"_0\":\"count Number of pending slashes\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getSlashCountForBlueprint(uint64,address)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"operator\":\"The operator address\"},\"returns\":{\"_0\":\"count Number of times operator was slashed in services of this blueprint\"}},\"getSlashCountForService(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"count Number of times operator was slashed in this service\"}},\"getSlashImpact(address,uint64,address)\":{\"params\":{\"delegator\":\"The delegator to check\",\"operator\":\"The operator that was slashed\",\"slashId\":\"The slash event ID\"},\"returns\":{\"lostAmount\":\"Approximate amount lost due to this slash\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,uint256,uint256,uint16)\":{\"params\":{\"_operatorCommissionBps\":\"Operator commission in basis points\",\"admin\":\"Admin address\",\"nativeMinDelegation\":\"Minimum delegation amount\",\"nativeMinOperatorStake\":\"Minimum stake for operators\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"resetPendingSlashCount(address,uint64)\":{\"details\":\"Admin-only recovery function for when count becomes inconsistent\",\"params\":{\"count\":\"The correct pending slash count\",\"operator\":\"The operator to reset\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"MultiAssetDelegation\",\"version\":1},\"userdoc\":{\"events\":{\"DustAccumulated(address,uint256,uint256)\":{\"notice\":\"Emitted when dust is accumulated from rounding\"},\"DustSwept(address,address,uint256)\":{\"notice\":\"Emitted when accumulated dust is swept to treasury\"},\"SlashRecorded(address,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"notice\":\"Emitted when slash is recorded (for off-chain indexing of per-delegator impact)\"},\"Slashed(address,uint64,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"notice\":\"Emitted when an operator and their delegators are slashed for an asset\"},\"SlashedForService(address,uint64,uint64,uint256,uint256)\":{\"notice\":\"Emitted when an operator is slashed for a specific service with per-asset commitments\"}},\"kind\":\"user\",\"methods\":{\"COMMISSION_CHANGE_DELAY()\":{\"notice\":\"Timelock delay for commission changes (7 days)\"},\"blueprintSlashCount(uint64,address)\":{\"notice\":\"Slash count per blueprint: blueprintId => operator => count\"},\"clearFacetSelectors(bytes4[])\":{\"notice\":\"Remove selectors from the router\"},\"currentRound()\":{\"notice\":\"Current round number\"},\"delegationBondLessDelay()\":{\"notice\":\"Delay for unstaking delegations (in rounds)\"},\"facetForSelector(bytes4)\":{\"notice\":\"Resolve the facet for a selector\"},\"getAccumulatedDust(address)\":{\"notice\":\"Get accumulated dust for a token\"},\"getAssetAdapter(address)\":{\"notice\":\"Get adapter for a token\"},\"getOperatorSlashFactor(address,bytes32)\":{\"notice\":\"Reserved getter for the historical slash factor (unused with share-based pools)\"},\"getPendingSlashCount(address)\":{\"notice\":\"Get pending slash count for an operator\"},\"getSlashCount(address)\":{\"notice\":\"Get total slashes for an operator\"},\"getSlashCountForBlueprint(uint64,address)\":{\"notice\":\"Get slash count for an operator in a specific blueprint\"},\"getSlashCountForService(uint64,address)\":{\"notice\":\"Get slash count for an operator in a specific service\"},\"getSlashImpact(address,uint64,address)\":{\"notice\":\"Calculate how much a delegator lost from a specific slash\"},\"getSlashRecord(address,uint64)\":{\"notice\":\"Get slash record details\"},\"getSnapshot(uint64,address)\":{\"notice\":\"Get snapshot for an operator at a specific round\"},\"initialize(address,uint256,uint256,uint16)\":{\"notice\":\"Initialize the contract\"},\"lastRoundAdvance()\":{\"notice\":\"Timestamp when the last round was advanced\"},\"leaveDelegatorsDelay()\":{\"notice\":\"Delay for delegator withdrawals (in rounds)\"},\"leaveOperatorsDelay()\":{\"notice\":\"Delay for operator exit (in rounds)\"},\"nativeEnabled()\":{\"notice\":\"Whether native asset is enabled\"},\"nextSlashId(address)\":{\"notice\":\"Next slash ID per operator\"},\"operatorCommissionBps()\":{\"notice\":\"Operator commission rate in basis points\"},\"registerFacet(address)\":{\"notice\":\"Register selectors exposed by a facet\"},\"registerFacetSelectors(address,bytes4[])\":{\"notice\":\"Register specific selectors for a facet\"},\"requireAdapters()\":{\"notice\":\"Whether to require adapters for all ERC20 deposits\"},\"resetPendingSlashCount(address,uint64)\":{\"notice\":\"H-1 FIX: Reset pending slash count when it drifts from actual pending slashes\"},\"roundDuration()\":{\"notice\":\"Seconds per round (used for time-based rate limiting)\"},\"serviceSlashCount(uint64,address)\":{\"notice\":\"Slash count per service: serviceId => operator => count\"},\"slashHistory(address,uint64)\":{\"notice\":\"Slash history per operator: operator => slashId => record\"}},\"notice\":\"Router contract for multi-asset staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/staking/MultiAssetDelegation.sol\":\"MultiAssetDelegation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"dependencies/@openzeppelin-contracts-5.1.0/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"dependencies/@openzeppelin-contracts-5.1.0/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"src/config/ProtocolConfig.sol\":{\"keccak256\":\"0xbb22573a667d0b127b039712f7dd05951a26aa8acb802d698d85bf279ca7c4d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475ba1624807be4fdf0a5b2abe160dc0f9727b32f0f0c528e9a575195ed2d30b\",\"dweb:/ipfs/QmNc5bb2LhTPa7To2F3K9zaqzB2Cj7depcGmgCrXx41wpj\"]},\"src/facets/FacetRouterBase.sol\":{\"keccak256\":\"0x1ee828caa24010fb394785560099b30e3ae8029670541422950e53a0fbe4bc8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60b734f7c8ef31ce27d27cf8d3e2ebdec1a643164231bae6af06cc3b380c6cfa\",\"dweb:/ipfs/Qmddq6SmDvpFghfCWugA67omCbxeAmwKedoxDVbeyRN8DD\"]},\"src/interfaces/IFacetSelectors.sol\":{\"keccak256\":\"0x40f3b342132fb05c532582f892c9770741574faec41902ec64e1d44848cdd3b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc36a0c26902bab2cff79e3a710a99b7cfcaa33879398737a2b21dfef2c0fcf3\",\"dweb:/ipfs/QmTUQNuvgGuRRuXycvtYDB5h2FUYM1u5gtcedeVNokbYBo\"]},\"src/interfaces/IRewardsManager.sol\":{\"keccak256\":\"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5\",\"dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k\"]},\"src/interfaces/IServiceFeeDistributor.sol\":{\"keccak256\":\"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3\",\"dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]},\"src/staking/DelegationErrors.sol\":{\"keccak256\":\"0xdb98e127f1b82a19f5da21f383b485053e0faa12153778512668a349b6758aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dff63a994f9dfa47e6b842186ef10f563d8515d95f95d31a63489432704eab8\",\"dweb:/ipfs/QmVLTrFqpYnELss9FgLdAndNRyWt86TjVMbNyMqXZt3c8S\"]},\"src/staking/DelegationManagerLib.sol\":{\"keccak256\":\"0x7bda528c13a7a4723ecac340af78bf09ea8a66bed150998973a89ca4aa15511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9fb51f571b71edfa652a6837f5b28fe73db26cd98a063b281bd6e19d54c64b\",\"dweb:/ipfs/QmYTiuTbJ2vQKAQ8onQVSudHGUdy6NStwrEtpCNyRCW6dN\"]},\"src/staking/DelegationStorage.sol\":{\"keccak256\":\"0x98bd82d3c86cf7c23efdedf3eecc91d860b963d491b102119759a6ca322ed1a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9345e8e4a44688685107aa1740c7c5e6c1490e884ab0b85f7c3251c2c6ae2093\",\"dweb:/ipfs/Qmev5dQN8EAgtxPHJ55a9UrcD2Y9Y1HW5b6A84iK3hAaWq\"]},\"src/staking/DepositManager.sol\":{\"keccak256\":\"0xc050a1f45a32124590f152fd075e229746806ef1de05479ea32b776ce19a0248\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29de52025eb131ee4d79036779452c89028c30bf6835b628f4851afbea26dfd8\",\"dweb:/ipfs/QmXRSDFnfBfYyKyosV9M9RAeRTviNXox3jYZGDmG4A75i3\"]},\"src/staking/MultiAssetDelegation.sol\":{\"keccak256\":\"0x9b88c3b7fa562b407ac88fbe9e50ceef3994d891b082d58247c4c4a740df6a99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d14af3103732b0070cb3cd10fe5150122f45d28e5ea0003107d0988e2350ea2\",\"dweb:/ipfs/QmfF9srqmECCWgeUGcedmSHSrAnKV4JXxMhT4GQqkyEcnm\"]},\"src/staking/OperatorManager.sol\":{\"keccak256\":\"0x3a1083a9f49ec893bcb4848646f3353d3474b37e1c9ae37fd6661a909dff11a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db06517fcecc9c78f1f2db1f67b73a8b708bdc13c59375ddbf24dc20b41f8c7d\",\"dweb:/ipfs/QmXMSVPiCHcDbpiGcRhQAKCzmXfCPQr4Pt85D6bsifBYKg\"]},\"src/staking/RewardsManager.sol\":{\"keccak256\":\"0x829212768b1ec928efdbc8f7e005db70df22148e780d3e6bdc155816807adf3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a033c783f97767e3398855ac97283841851c9933288c5312e9a7552ebeb21b6d\",\"dweb:/ipfs/QmVw42yYzAY2BLF3ALzM8GG7uUyZKWZGiLfW1RZscSbT6B\"]},\"src/staking/SlashingManager.sol\":{\"keccak256\":\"0xb1847fff32d37fbff52f10a60e15a27e23cbf74c399c0ee2f56c411bd199233c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3569533340596ebd931a02215751c77e8dc7348b72a8c7b56dfa581437b78ea9\",\"dweb:/ipfs/QmWSDvL72TynLUxHRcGBq99bxfwcAmiiJidXX6iaxv8gTw\"]},\"src/staking/adapters/IAssetAdapter.sol\":{\"keccak256\":\"0xd454eaaa529503ea2fffb926279300975ab0a327ece77d150926b0e07aabb061\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41f8e3e4b11c4f1cf9eb1681ffb4cd89beaf180433b0930098f6ea84c049e44\",\"dweb:/ipfs/QmPsguZ8XqaQv7EgYxyMaSHgxA9z2FGSrvamcAPiR95jnW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"NotAContract"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"address","name":"existingFacet","type":"address"}],"type":"error","name":"SelectorAlreadyRegistered"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"type":"error","name":"UnknownSelector"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintAddedToDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintRemovedFromDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8","indexed":false}],"type":"event","name":"Delegated","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DelegatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"estimatedAmount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"DelegatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"enum Types.LockMultiplier","name":"lock","type":"uint8","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalDust","type":"uint256","indexed":false}],"type":"event","name":"DustAccumulated","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DustSwept","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalAmount","type":"uint256","indexed":false}],"type":"event","name":"ExpiredLocksHarvested","anonymous":false},{"inputs":[{"internalType":"address","name":"facet","type":"address","indexed":true}],"type":"event","name":"FacetRegistered","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":true}],"type":"event","name":"FacetSelectorCleared","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":true},{"internalType":"address","name":"facet","type":"address","indexed":true}],"type":"event","name":"FacetSelectorSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum Types.DelegationMode","name":"mode","type":"uint8","indexed":false}],"type":"event","name":"OperatorDelegationModeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorLeavingScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"stake","type":"uint256","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorStakeIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"OperatorWhitelistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashCountReset","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashDecremented","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashIncremented","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"SlashRecorded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"operatorSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"delegatorsSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"Slashed","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"commitmentCount","type":"uint256","indexed":false}],"type":"event","name":"SlashedForService","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"WithdrawScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMISSION_CHANGE_DELAY","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_ONE_MONTH","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_SIX_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_THREE_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_TWO_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_LOCK_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_NONE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_ONE_MONTH","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_SIX_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_THREE_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_TWO_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TANGLE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VIRTUAL_ASSETS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VIRTUAL_SHARES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"blueprintSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"clearFacetSelectors"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentRound","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegationBondLessDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetForSelector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAccumulatedDust","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAssetAdapter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOperatorSlashFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForBlueprint","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForService","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashImpact","outputs":[{"internalType":"uint256","name":"lostAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashRecord","outputs":[{"internalType":"struct SlashingManager.SlashRecord","name":"","type":"tuple","components":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSnapshot","outputs":[{"internalType":"struct Types.OperatorSnapshot","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"totalDelegated","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"nativeMinOperatorStake","type":"uint256"},{"internalType":"uint256","name":"nativeMinDelegation","type":"uint256"},{"internalType":"uint16","name":"_operatorCommissionBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastRoundAdvance","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveDelegatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveOperatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nextSlashId","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCommissionBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"facet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerFacet"},{"inputs":[{"internalType":"address","name":"facet","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"registerFacetSelectors"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"view","type":"function","name":"requireAdapters","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"resetPendingSlashCount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"view","type":"function","name":"roundDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"serviceSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"slashHistory","outputs":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAccumulatedDust(address)":{"params":{"token":"The token address (address(0) for native)"},"returns":{"_0":"The accumulated dust amount"}},"getAssetAdapter(address)":{"params":{"token":"Token address"},"returns":{"_0":"adapter Adapter address (or zero if none)"}},"getOperatorSlashFactor(address,bytes32)":{"details":"Returns PRECISION (1e18) if unset"},"getPendingSlashCount(address)":{"params":{"operator":"The operator to query"},"returns":{"_0":"count Number of pending slashes"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getSlashCountForBlueprint(uint64,address)":{"params":{"blueprintId":"The blueprint ID","operator":"The operator address"},"returns":{"_0":"count Number of times operator was slashed in services of this blueprint"}},"getSlashCountForService(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"count Number of times operator was slashed in this service"}},"getSlashImpact(address,uint64,address)":{"params":{"delegator":"The delegator to check","operator":"The operator that was slashed","slashId":"The slash event ID"},"returns":{"lostAmount":"Approximate amount lost due to this slash"}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,uint256,uint256,uint16)":{"params":{"_operatorCommissionBps":"Operator commission in basis points","admin":"Admin address","nativeMinDelegation":"Minimum delegation amount","nativeMinOperatorStake":"Minimum stake for operators"}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"resetPendingSlashCount(address,uint64)":{"details":"Admin-only recovery function for when count becomes inconsistent","params":{"count":"The correct pending slash count","operator":"The operator to reset"}},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"COMMISSION_CHANGE_DELAY()":{"notice":"Timelock delay for commission changes (7 days)"},"blueprintSlashCount(uint64,address)":{"notice":"Slash count per blueprint: blueprintId => operator => count"},"clearFacetSelectors(bytes4[])":{"notice":"Remove selectors from the router"},"currentRound()":{"notice":"Current round number"},"delegationBondLessDelay()":{"notice":"Delay for unstaking delegations (in rounds)"},"facetForSelector(bytes4)":{"notice":"Resolve the facet for a selector"},"getAccumulatedDust(address)":{"notice":"Get accumulated dust for a token"},"getAssetAdapter(address)":{"notice":"Get adapter for a token"},"getOperatorSlashFactor(address,bytes32)":{"notice":"Reserved getter for the historical slash factor (unused with share-based pools)"},"getPendingSlashCount(address)":{"notice":"Get pending slash count for an operator"},"getSlashCount(address)":{"notice":"Get total slashes for an operator"},"getSlashCountForBlueprint(uint64,address)":{"notice":"Get slash count for an operator in a specific blueprint"},"getSlashCountForService(uint64,address)":{"notice":"Get slash count for an operator in a specific service"},"getSlashImpact(address,uint64,address)":{"notice":"Calculate how much a delegator lost from a specific slash"},"getSlashRecord(address,uint64)":{"notice":"Get slash record details"},"getSnapshot(uint64,address)":{"notice":"Get snapshot for an operator at a specific round"},"initialize(address,uint256,uint256,uint16)":{"notice":"Initialize the contract"},"lastRoundAdvance()":{"notice":"Timestamp when the last round was advanced"},"leaveDelegatorsDelay()":{"notice":"Delay for delegator withdrawals (in rounds)"},"leaveOperatorsDelay()":{"notice":"Delay for operator exit (in rounds)"},"nativeEnabled()":{"notice":"Whether native asset is enabled"},"nextSlashId(address)":{"notice":"Next slash ID per operator"},"operatorCommissionBps()":{"notice":"Operator commission rate in basis points"},"registerFacet(address)":{"notice":"Register selectors exposed by a facet"},"registerFacetSelectors(address,bytes4[])":{"notice":"Register specific selectors for a facet"},"requireAdapters()":{"notice":"Whether to require adapters for all ERC20 deposits"},"resetPendingSlashCount(address,uint64)":{"notice":"H-1 FIX: Reset pending slash count when it drifts from actual pending slashes"},"roundDuration()":{"notice":"Seconds per round (used for time-based rate limiting)"},"serviceSlashCount(uint64,address)":{"notice":"Slash count per service: serviceId => operator => count"},"slashHistory(address,uint64)":{"notice":"Slash history per operator: operator => slashId => record"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/staking/MultiAssetDelegation.sol":"MultiAssetDelegation"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/PausableUpgradeable.sol":{"keccak256":"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97","urls":["bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007","dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"src/config/ProtocolConfig.sol":{"keccak256":"0xbb22573a667d0b127b039712f7dd05951a26aa8acb802d698d85bf279ca7c4d4","urls":["bzz-raw://475ba1624807be4fdf0a5b2abe160dc0f9727b32f0f0c528e9a575195ed2d30b","dweb:/ipfs/QmNc5bb2LhTPa7To2F3K9zaqzB2Cj7depcGmgCrXx41wpj"],"license":"MIT"},"src/facets/FacetRouterBase.sol":{"keccak256":"0x1ee828caa24010fb394785560099b30e3ae8029670541422950e53a0fbe4bc8e","urls":["bzz-raw://60b734f7c8ef31ce27d27cf8d3e2ebdec1a643164231bae6af06cc3b380c6cfa","dweb:/ipfs/Qmddq6SmDvpFghfCWugA67omCbxeAmwKedoxDVbeyRN8DD"],"license":"MIT"},"src/interfaces/IFacetSelectors.sol":{"keccak256":"0x40f3b342132fb05c532582f892c9770741574faec41902ec64e1d44848cdd3b4","urls":["bzz-raw://fc36a0c26902bab2cff79e3a710a99b7cfcaa33879398737a2b21dfef2c0fcf3","dweb:/ipfs/QmTUQNuvgGuRRuXycvtYDB5h2FUYM1u5gtcedeVNokbYBo"],"license":"MIT"},"src/interfaces/IRewardsManager.sol":{"keccak256":"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9","urls":["bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5","dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k"],"license":"MIT"},"src/interfaces/IServiceFeeDistributor.sol":{"keccak256":"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a","urls":["bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3","dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"},"src/staking/DelegationErrors.sol":{"keccak256":"0xdb98e127f1b82a19f5da21f383b485053e0faa12153778512668a349b6758aa8","urls":["bzz-raw://4dff63a994f9dfa47e6b842186ef10f563d8515d95f95d31a63489432704eab8","dweb:/ipfs/QmVLTrFqpYnELss9FgLdAndNRyWt86TjVMbNyMqXZt3c8S"],"license":"MIT"},"src/staking/DelegationManagerLib.sol":{"keccak256":"0x7bda528c13a7a4723ecac340af78bf09ea8a66bed150998973a89ca4aa15511b","urls":["bzz-raw://4c9fb51f571b71edfa652a6837f5b28fe73db26cd98a063b281bd6e19d54c64b","dweb:/ipfs/QmYTiuTbJ2vQKAQ8onQVSudHGUdy6NStwrEtpCNyRCW6dN"],"license":"MIT"},"src/staking/DelegationStorage.sol":{"keccak256":"0x98bd82d3c86cf7c23efdedf3eecc91d860b963d491b102119759a6ca322ed1a3","urls":["bzz-raw://9345e8e4a44688685107aa1740c7c5e6c1490e884ab0b85f7c3251c2c6ae2093","dweb:/ipfs/Qmev5dQN8EAgtxPHJ55a9UrcD2Y9Y1HW5b6A84iK3hAaWq"],"license":"MIT"},"src/staking/DepositManager.sol":{"keccak256":"0xc050a1f45a32124590f152fd075e229746806ef1de05479ea32b776ce19a0248","urls":["bzz-raw://29de52025eb131ee4d79036779452c89028c30bf6835b628f4851afbea26dfd8","dweb:/ipfs/QmXRSDFnfBfYyKyosV9M9RAeRTviNXox3jYZGDmG4A75i3"],"license":"MIT"},"src/staking/MultiAssetDelegation.sol":{"keccak256":"0x9b88c3b7fa562b407ac88fbe9e50ceef3994d891b082d58247c4c4a740df6a99","urls":["bzz-raw://9d14af3103732b0070cb3cd10fe5150122f45d28e5ea0003107d0988e2350ea2","dweb:/ipfs/QmfF9srqmECCWgeUGcedmSHSrAnKV4JXxMhT4GQqkyEcnm"],"license":"MIT"},"src/staking/OperatorManager.sol":{"keccak256":"0x3a1083a9f49ec893bcb4848646f3353d3474b37e1c9ae37fd6661a909dff11a9","urls":["bzz-raw://db06517fcecc9c78f1f2db1f67b73a8b708bdc13c59375ddbf24dc20b41f8c7d","dweb:/ipfs/QmXMSVPiCHcDbpiGcRhQAKCzmXfCPQr4Pt85D6bsifBYKg"],"license":"MIT"},"src/staking/RewardsManager.sol":{"keccak256":"0x829212768b1ec928efdbc8f7e005db70df22148e780d3e6bdc155816807adf3c","urls":["bzz-raw://a033c783f97767e3398855ac97283841851c9933288c5312e9a7552ebeb21b6d","dweb:/ipfs/QmVw42yYzAY2BLF3ALzM8GG7uUyZKWZGiLfW1RZscSbT6B"],"license":"MIT"},"src/staking/SlashingManager.sol":{"keccak256":"0xb1847fff32d37fbff52f10a60e15a27e23cbf74c399c0ee2f56c411bd199233c","urls":["bzz-raw://3569533340596ebd931a02215751c77e8dc7348b72a8c7b56dfa581437b78ea9","dweb:/ipfs/QmWSDvL72TynLUxHRcGBq99bxfwcAmiiJidXX6iaxv8gTw"],"license":"MIT"},"src/staking/adapters/IAssetAdapter.sol":{"keccak256":"0xd454eaaa529503ea2fffb926279300975ab0a327ece77d150926b0e07aabb061","urls":["bzz-raw://c41f8e3e4b11c4f1cf9eb1681ffb4cd89beaf180433b0930098f6ea84c049e44","dweb:/ipfs/QmPsguZ8XqaQv7EgYxyMaSHgxA9z2FGSrvamcAPiR95jnW"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ASSET_MANAGER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BPS_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COMMISSION_CHANGE_DELAY","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"LOCK_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"LOCK_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_LOCK_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_NONE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_ONE_MONTH","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_SIX_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_THREE_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MULTIPLIER_TWO_MONTHS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"PRECISION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TANGLE_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VIRTUAL_ASSETS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"VIRTUAL_SHARES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blueprintSlashCount","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"clearFacetSelectors","inputs":[{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentRound","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"delegationBondLessDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"facetForSelector","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAccumulatedDust","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAssetAdapter","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOperatorSlashFactor","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPendingSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForBlueprint","inputs":[{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashCountForService","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getSlashImpact","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashId","type":"uint64","internalType":"uint64"},{"name":"delegator","type":"address","internalType":"address"}],"outputs":[{"name":"lostAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashRecord","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"slashId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SlashingManager.SlashRecord","components":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getSnapshot","inputs":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Types.OperatorSnapshot","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"totalDelegated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"nativeMinOperatorStake","type":"uint256","internalType":"uint256"},{"name":"nativeMinDelegation","type":"uint256","internalType":"uint256"},{"name":"_operatorCommissionBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastRoundAdvance","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveDelegatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"leaveOperatorsDelay","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nativeEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nextSlashId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"operatorCommissionBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerFacet","inputs":[{"name":"facet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFacetSelectors","inputs":[{"name":"facet","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requireAdapters","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"resetPendingSlashCount","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roundDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"serviceSlashCount","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"slashHistory","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"round","type":"uint64","internalType":"uint64"},{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"assetHash","type":"bytes32","internalType":"bytes32"},{"name":"slashBps","type":"uint16","internalType":"uint16"},{"name":"totalSlashed","type":"uint256","internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","internalType":"uint256"},{"name":"evidence","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"BlueprintAddedToDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlueprintRemovedFromDelegation","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"delegationIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"blueprintId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Delegated","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"selectionMode","type":"uint8","indexed":false,"internalType":"enum Types.BlueprintSelectionMode"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeExecuted","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegatorUnstakeScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"estimatedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lock","type":"uint8","indexed":false,"internalType":"enum Types.LockMultiplier"}],"anonymous":false},{"type":"event","name":"DustAccumulated","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalDust","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DustSwept","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExpiredLocksHarvested","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FacetRegistered","inputs":[{"name":"facet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FacetSelectorCleared","inputs":[{"name":"selector","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"FacetSelectorSet","inputs":[{"name":"selector","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"facet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintAdded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorBlueprintRemoved","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorDelegationModeSet","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"mode","type":"uint8","indexed":false,"internalType":"enum Types.DelegationMode"}],"anonymous":false},{"type":"event","name":"OperatorLeavingScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorLeft","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"stake","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorStakeIncreased","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeExecuted","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorUnstakeScheduled","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorWhitelistUpdated","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PendingSlashCountReset","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PendingSlashDecremented","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PendingSlashIncremented","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newCount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SlashRecorded","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateBefore","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Slashed","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"assetHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slashBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"operatorSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"delegatorsSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"exchangeRateAfter","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlashedForService","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"totalSlashed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"commitmentCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WithdrawScheduled","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"readyRound","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotAContract","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SelectorAlreadyRegistered","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"},{"name":"existingFacet","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownSelector","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60a06040523461003e5761001161004d565b610019610043565b6144dc61030782396080518181816139070152818161396c0152613b1b01526144dc90f35b610049565b60405190565b5f80fd5b61005561005f565b61005d61022a565b565b610067610069565b565b610071610073565b565b61007b61007d565b565b610085610087565b565b61008f610091565b565b61009961009b565b565b6100a36100a5565b565b6100ad6100af565b565b6100b76100b9565b565b6100c16100c3565b565b6100cb6100cd565b565b6100d56100d7565b565b6100df6100e1565b565b6100e961012d565b565b60018060a01b031690565b90565b61010d610108610112926100eb565b6100f6565b6100eb565b90565b61011e906100f9565b90565b61012a90610115565b90565b61013630610121565b608052565b60401c90565b60ff1690565b6101536101589161013b565b610141565b90565b6101659054610147565b90565b5f0190565b5f1c90565b60018060401b031690565b61018961018e9161016d565b610172565b90565b61019b905461017d565b90565b60018060401b031690565b5f1b90565b906101bf60018060401b03916101a9565b9181191691161790565b6101dd6101d86101e29261019e565b6100f6565b61019e565b90565b90565b906101fd6101f8610204926101c9565b6101e5565b82546101ae565b9055565b6102119061019e565b9052565b9190610228905f60208501940190610208565b565b6102326102e2565b61023d5f820161015b565b6102c65761024c5f8201610191565b61026461025e60018060401b0361019e565b9161019e565b0361026d575b50565b610280905f60018060401b0391016101e8565b60018060401b036102bd7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2916102b4610043565b91829182610215565b0390a15f61026a565b5f63f92ee8a960e01b8152806102de60048201610168565b0390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009056fe60806040526004361015610015575b3661355557005b61001f5f356103de565b806301ffc9a7146103d957806305d64e38146103d45780630aa8b110146103cf57806312d91c88146103ca57806318056dc2146103c557806319e82e61146103c0578063248a9ca3146103bb5780632f2ff15d146103b657806332273f61146103b157806336568abe146103ac578063453eccea146103a757806346d163aa146103a2578063491474111461039d5780634962f88f146103985780634de8addc146103935780634e9c929a1461038e5780634f1ef286146103895780635095af641461038457806352d1902d1461037f57806354de23201461037a5780635c975abb14610375578063602356e31461037057806366c368751461036b57806372b5032d1461036657806375b238fc1461036157806377ab2cf31461035c5780637df92ada1461035757806388c47f68146103525780638a19c8bc1461034d5780638a7fe60f1461034857806390837ff41461034357806391d148541461033e5780639480e4dd146103395780639494f42614610334578063960856731461032f5780639722f4b91461032a5780639e87058514610325578063a217fddf14610320578063a457af3d1461031b578063a4b32de814610316578063a7fa6f9814610311578063aaf5eb681461030c578063ad3cb1cc14610307578063b54b2b9e14610302578063b6608409146102fd578063ba05bbf5146102f8578063c07449e2146102f3578063c550d938146102ee578063cbb6d6bd146102e9578063d27a6f06146102e4578063d45ff582146102df578063d547741f146102da578063db8a173a146102d5578063dd764abf146102d0578063e07dec29146102cb578063e1a45218146102c6578063e27e05c1146102c1578063f3c9b311146102bc578063f72c0d8b146102b75763f7cb789a0361000e57612038565b611ff4565b611f90565b611f23565b611eee565b611e85565b611e1c565b611daa565b611d67565b611d32565b611cc4565b611c54565b611b92565b611b5c565b611aee565b611aaa565b611a3e565b6119fa565b6118cb565b611858565b6117eb565b611786565b611664565b6115f4565b611585565b61152f565b6114e0565b611471565b61143b565b611406565b6113d1565b61137a565b611338565b6112c9565b61125b565b6111eb565b611186565b611151565b61111c565b6110b8565b611083565b611016565b610fe1565b610f88565b610e2c565b610d7d565b610d38565b610ccb565b610c98565b610c45565b610bd9565b610ba4565b610b3a565b610ad8565b610a71565b6109aa565b610927565b610882565b61051f565b61046a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b61040b816103f6565b0361041257565b5f80fd5b9050359061042382610402565b565b9060208282031261043e5761043b915f01610416565b90565b6103ee565b151590565b61045190610443565b9052565b9190610468905f60208501940190610448565b565b3461049a57610496610485610480366004610425565b612071565b61048d6103e4565b91829182610455565b0390f35b6103ea565b5f9103126104a957565b6103ee565b1c90565b60018060401b031690565b6104cd9060086104d293026104ae565b6104b2565b90565b906104e091546104bd565b90565b6104ef5f6010906104d5565b90565b60018060401b031690565b610506906104f2565b9052565b919061051d905f602085019401906104fd565b565b3461054f5761052f36600461049f565b61054b61053a6104e3565b6105426103e4565b9182918261050a565b0390f35b6103ea565b60018060a01b031690565b61056890610554565b90565b6105748161055f565b0361057b57565b5f80fd5b9050359061058c8261056b565b565b610597816104f2565b0361059e57565b5f80fd5b905035906105af8261058e565b565b91906040838203126105d957806105cd6105d6925f860161057f565b936020016105a2565b90565b6103ee565b90565b6105f56105f06105fa92610554565b6105de565b610554565b90565b610606906105e1565b90565b610612906105fd565b90565b9061061f90610609565b5f5260205260405f2090565b61063f61063a610644926104f2565b6105de565b6104f2565b90565b906106519061062b565b5f5260205260405f2090565b5f1c90565b61066e6106739161065d565b6104b2565b90565b6106809054610662565b90565b60401c90565b61069561069a91610683565b6104b2565b90565b6106a79054610689565b90565b60801c90565b6106bc6106c1916106aa565b6104b2565b90565b6106ce90546106b0565b90565b90565b6106e06106e59161065d565b6106d1565b90565b6106f290546106d4565b90565b61ffff1690565b61070861070d9161065d565b6106f5565b90565b61071a90546106fc565b90565b90565b61072c6107319161065d565b61071d565b90565b61073e9054610720565b90565b90610750610755926055610615565b610647565b6107605f8201610676565b9161076c5f830161069d565b916107785f82016106c4565b91610785600183016106e8565b9161079260028201610710565b9161079f60038301610734565b916107ac60048201610734565b916107c560066107be60058501610734565b93016106e8565b90565b90565b6107d4906107c8565b9052565b61ffff1690565b6107e8906107d8565b9052565b90565b6107f8906107ec565b9052565b9694929099989795939161012088019a5f8901610818916104fd565b60208801610825916104fd565b60408701610832916104fd565b6060860161083f916107cb565b6080850161084c916107df565b60a08401610859916107ef565b60c08301610866916107ef565b60e08201610873916107ef565b61010001610880916107cb565b565b346108bd576108b961089e6108983660046105b1565b90610741565b956108b09997999591959492946103e4565b998a998a6107fc565b0390f35b6103ea565b6108cb816107c8565b036108d257565b5f80fd5b905035906108e3826108c2565b565b919060408382031261090d578061090161090a925f860161057f565b936020016108d6565b90565b6103ee565b9190610925905f602085019401906107ef565b565b346109585761095461094361093d3660046108e5565b90612109565b61094b6103e4565b91829182610912565b0390f35b6103ea565b90565b61097461096f6109799261095d565b6105de565b6107d8565b90565b610987612af8610960565b90565b61099261097c565b90565b91906109a8905f602085019401906107df565b565b346109da576109ba36600461049f565b6109d66109c561098a565b6109cd6103e4565b91829182610995565b0390f35b6103ea565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a235781359160018060401b038311610a1e576020019260208302840111610a1957565b6109e7565b6109e3565b6109df565b919091604081840312610a6757610a41835f830161057f565b92602082013560018060401b038111610a6257610a5e92016109eb565b9091565b6103f2565b6103ee565b5f0190565b34610aa057610a8a610a84366004610a28565b916121da565b610a926103e4565b80610a9c81610a6c565b0390f35b6103ea565b90602082820312610abe57610abb915f016108d6565b90565b6103ee565b9190610ad6905f602085019401906107cb565b565b34610b0857610b04610af3610aee366004610aa5565b612212565b610afb6103e4565b91829182610ac3565b0390f35b6103ea565b9190604083820312610b355780610b29610b32925f86016108d6565b9360200161057f565b90565b6103ee565b34610b6957610b53610b4d366004610b0d565b90612266565b610b5b6103e4565b80610b6581610a6c565b0390f35b6103ea565b610b7e906008610b8393026104ae565b6106f5565b90565b90610b919154610b6e565b90565b610ba16001601090610b86565b90565b34610bd457610bb436600461049f565b610bd0610bbf610b94565b610bc76103e4565b91829182610995565b0390f35b6103ea565b34610c0857610bf2610bec366004610b0d565b90612272565b610bfa6103e4565b80610c0481610a6c565b0390f35b6103ea565b90565b610c24610c1f610c2992610c0d565b6105de565b6107d8565b90565b610c37613e80610c10565b90565b610c42610c2c565b90565b34610c7557610c5536600461049f565b610c71610c60610c3a565b610c686103e4565b91829182610995565b0390f35b6103ea565b90602082820312610c9357610c90915f0161057f565b90565b6103ee565b34610cc657610cb0610cab366004610c7a565b6123b0565b610cb86103e4565b80610cc281610a6c565b0390f35b6103ea565b34610cfb57610cf7610ce6610ce1366004610c7a565b61248e565b610cee6103e4565b91829182610912565b0390f35b6103ea565b90565b610d17610d12610d1c92610d00565b6105de565b6107d8565b90565b610d2a612710610d03565b90565b610d35610d1f565b90565b34610d6857610d4836600461049f565b610d64610d53610d2d565b610d5b6103e4565b91829182610995565b0390f35b6103ea565b610d7a60016008906104d5565b90565b34610dad57610d8d36600461049f565b610da9610d98610d6d565b610da06103e4565b9182918261050a565b0390f35b6103ea565b9190604083820312610dda5780610dce610dd7925f86016105a2565b9360200161057f565b90565b6103ee565b90610de99061062b565b5f5260205260405f2090565b90610dff90610609565b5f5260205260405f2090565b610e24610e2992610e1f6058935f94610ddf565b610df5565b6104d5565b90565b34610e5d57610e59610e48610e42366004610db2565b90610e0b565b610e506103e4565b9182918261050a565b0390f35b6103ea565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e8e90610e66565b810190811060018060401b03821117610ea657604052565b610e70565b90610ebe610eb76103e4565b9283610e84565b565b60018060401b038111610edc57610ed8602091610e66565b0190565b610e70565b90825f939282370152565b90929192610f01610efc82610ec0565b610eab565b93818552602085019082840111610f1d57610f1b92610ee1565b565b610e62565b9080601f83011215610f4057816020610f3d93359101610eec565b90565b6109df565b919091604081840312610f8357610f5e835f830161057f565b92602082013560018060401b038111610f7e57610f7b9201610f22565b90565b6103f2565b6103ee565b610f9c610f96366004610f45565b906124d6565b610fa46103e4565b80610fae81610a6c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fde610fb2565b90565b3461101157610ff136600461049f565b61100d610ffc610fd6565b6110046103e4565b91829182610ac3565b0390f35b6103ea565b346110465761102636600461049f565b61104261103161254d565b6110396103e4565b91829182610ac3565b0390f35b6103ea565b90565b61106261105d6110679261104b565b6105de565b6107d8565b90565b611075612ee061104e565b90565b61108061106a565b90565b346110b35761109336600461049f565b6110af61109e611078565b6110a66103e4565b91829182610995565b0390f35b6103ea565b346110e8576110c836600461049f565b6110e46110d3612581565b6110db6103e4565b91829182610455565b0390f35b6103ea565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111196110ed565b90565b3461114c5761112c36600461049f565b611148611137611111565b61113f6103e4565b91829182610ac3565b0390f35b6103ea565b346111815761117d61116c611167366004610c7a565b6125a3565b6111746103e4565b9182918261050a565b0390f35b6103ea565b346111b7576111b36111a261119c366004610db2565b906125c2565b6111aa6103e4565b9182918261050a565b0390f35b6103ea565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111e86111bc565b90565b3461121b576111fb36600461049f565b6112176112066111e0565b61120e6103e4565b91829182610ac3565b0390f35b6103ea565b60ff1690565b61123690600861123b93026104ae565b611220565b90565b906112499154611226565b90565b61125860055f9061123e565b90565b3461128b5761126b36600461049f565b61128761127661124c565b61127e6103e4565b91829182610455565b0390f35b6103ea565b90565b6112a76112a26112ac92611290565b6105de565b6104f2565b90565b6112bb624f1a00611293565b90565b6112c66112af565b90565b346112f9576112d936600461049f565b6112f56112e46112be565b6112ec6103e4565b9182918261050a565b0390f35b6103ea565b90565b61131561131061131a926112fe565b6105de565b6107ec565b90565b61132a6305f5e100611301565b90565b61133561131d565b90565b346113685761134836600461049f565b61136461135361132d565b61135b6103e4565b91829182610912565b0390f35b6103ea565b6113775f806104d5565b90565b346113aa5761138a36600461049f565b6113a661139561136d565b61139d6103e4565b9182918261050a565b0390f35b6103ea565b6113b89061055f565b9052565b91906113cf905f602085019401906113af565b565b34611401576113fd6113ec6113e7366004610c7a565b612630565b6113f46103e4565b918291826113bc565b0390f35b6103ea565b346114365761143261142161141c366004610425565b61264f565b6114296103e4565b918291826113bc565b0390f35b6103ea565b3461146c57611468611457611451366004610b0d565b9061267a565b61145f6103e4565b91829182610455565b0390f35b6103ea565b346114a15761149d61148c611487366004610c7a565b6126ac565b6114946103e4565b9182918261050a565b0390f35b6103ea565b90916060828403126114db576114d86114c1845f850161057f565b936114cf81602086016105a2565b9360400161057f565b90565b6103ee565b346115115761150d6114fc6114f63660046114a6565b916128e4565b6115046103e4565b91829182610912565b0390f35b6103ea565b61152c906115276056915f92610df5565b6104d5565b90565b3461155f5761155b61154a611545366004610c7a565b611516565b6115526103e4565b9182918261050a565b0390f35b6103ea565b61157d611582926115786057935f94610ddf565b610df5565b6104d5565b90565b346115b6576115b26115a161159b366004610db2565b90611564565b6115a96103e4565b9182918261050a565b0390f35b6103ea565b90565b6115d26115cd6115d7926115bb565b6105de565b6104f2565b90565b6115e662278d006115be565b90565b6115f16115da565b90565b346116245761160436600461049f565b61162061160f6115e9565b6116176103e4565b9182918261050a565b0390f35b6103ea565b90565b5f1b90565b61164561164061164a92611629565b61162c565b6107c8565b90565b6116565f611631565b90565b61166161164d565b90565b346116945761167436600461049f565b61169061167f611659565b6116876103e4565b91829182610ac3565b0390f35b6103ea565b6116a2906104f2565b9052565b6116af906107c8565b9052565b6116bc906107d8565b9052565b6116c9906107ec565b9052565b906101008061176e936116e65f8201515f860190611699565b6116f860208201516020860190611699565b61170a60408201516040860190611699565b61171c606082015160608601906116a6565b61172e608082015160808601906116b3565b61174060a082015160a08601906116c0565b61175260c082015160c08601906116c0565b61176460e082015160e08601906116c0565b01519101906116a6565b565b9190611784905f61012085019401906116cd565b565b346117b7576117b36117a261179c3660046105b1565b90612a92565b6117aa6103e4565b91829182611770565b0390f35b6103ea565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117e86117bc565b90565b3461181b576117fb36600461049f565b6118176118066117e0565b61180e6103e4565b91829182610ac3565b0390f35b6103ea565b90565b61183761183261183c92611820565b6105de565b6107d8565b90565b61184a6132c8611823565b90565b61185561183f565b90565b346118885761186836600461049f565b61188461187361184d565b61187b6103e4565b91829182610995565b0390f35b6103ea565b90565b6118a461189f6118a99261188d565b6105de565b6107ec565b90565b6118bd670de0b6b3a7640000611890565b90565b6118c86118ac565b90565b346118fb576118db36600461049f565b6118f76118e66118c0565b6118ee6103e4565b91829182610912565b0390f35b6103ea565b60018060401b03811161191c57611918602091610e66565b0190565b610e70565b9061193361192e83611900565b610eab565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119696005611921565b9061197660208301611938565b565b61198061195f565b90565b61198b611978565b90565b611996611983565b90565b5190565b60209181520190565b90825f9392825e0152565b6119d06119d96020936119de936119c781611999565b9384809361199d565b958691016119a6565b610e66565b0190565b6119f79160208201915f8184039101526119b1565b90565b34611a2a57611a0a36600461049f565b611a26611a1561198e565b611a1d6103e4565b918291826119e2565b0390f35b6103ea565b611a3b60075f9061123e565b90565b34611a6e57611a4e36600461049f565b611a6a611a59611a2f565b611a616103e4565b91829182610455565b0390f35b6103ea565b90565b611a8a611a85611a8f92611a73565b6105de565b6107ec565b90565b611a9c6001611a76565b90565b611aa7611a92565b90565b34611ada57611aba36600461049f565b611ad6611ac5611a9f565b611acd6103e4565b91829182610912565b0390f35b6103ea565b611aeb5f6018906104d5565b90565b34611b1e57611afe36600461049f565b611b1a611b09611adf565b611b116103e4565b9182918261050a565b0390f35b6103ea565b90602080611b4593611b3b5f8201515f8601906116c0565b01519101906116c0565b565b9190611b5a905f60408501940190611b23565b565b34611b8d57611b89611b78611b72366004610db2565b90612b69565b611b806103e4565b91829182611b47565b0390f35b6103ea565b34611bc357611bbf611bae611ba8366004610db2565b90612b91565b611bb66103e4565b9182918261050a565b0390f35b6103ea565b611bd1816107ec565b03611bd857565b5f80fd5b90503590611be982611bc8565b565b611bf4816107d8565b03611bfb57565b5f80fd5b90503590611c0c82611beb565b565b608081830312611c4f57611c24825f830161057f565b92611c4c611c358460208501611bdc565b93611c438160408601611bdc565b93606001611bff565b90565b6103ee565b34611c8657611c70611c67366004611c0e565b9291909161337f565b611c786103e4565b80611c8281610a6c565b0390f35b6103ea565b90565b611ca2611c9d611ca792611c8b565b6105de565b6104f2565b90565b611cb66276a700611c8e565b90565b611cc1611caa565b90565b34611cf457611cd436600461049f565b611cf0611cdf611cb9565b611ce76103e4565b9182918261050a565b0390f35b6103ea565b90565b611d10611d0b611d1592611cf9565b6105de565b6104f2565b90565b611d2462093a80611cfc565b90565b611d2f611d18565b90565b34611d6257611d4236600461049f565b611d5e611d4d611d27565b611d556103e4565b9182918261050a565b0390f35b6103ea565b34611d9657611d80611d7a366004610b0d565b906133b7565b611d886103e4565b80611d9281610a6c565b0390f35b6103ea565b611da760015f906104d5565b90565b34611dda57611dba36600461049f565b611dd6611dc5611d9b565b611dcd6103e4565b9182918261050a565b0390f35b6103ea565b90565b611df6611df1611dfb92611ddf565b6105de565b6107ec565b90565b611e0e662386f26fc10000611de2565b90565b611e19611dfe565b90565b34611e4c57611e2c36600461049f565b611e48611e37611e11565b611e3f6103e4565b91829182610912565b0390f35b6103ea565b90602082820312611e80575f82013560018060401b038111611e7b57611e7792016109eb565b9091565b6103f2565b6103ee565b34611eb457611e9e611e98366004611e51565b90613418565b611ea66103e4565b80611eb081610a6c565b0390f35b6103ea565b611ecd611ec8611ed292610d00565b6105de565b6107ec565b90565b611ee0612710611eb9565b90565b611eeb611ed5565b90565b34611f1e57611efe36600461049f565b611f1a611f09611ee3565b611f116103e4565b91829182610912565b0390f35b6103ea565b34611f5257611f3c611f363660046105b1565b90613549565b611f446103e4565b80611f4e81610a6c565b0390f35b6103ea565b90565b611f6e611f69611f7392611f57565b6105de565b6104f2565b90565b611f8262ed4e00611f5a565b90565b611f8d611f76565b90565b34611fc057611fa036600461049f565b611fbc611fab611f85565b611fb36103e4565b9182918261050a565b0390f35b6103ea565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390565b611ff1611fc5565b90565b346120245761200436600461049f565b61202061200f611fe9565b6120176103e4565b91829182610ac3565b0390f35b6103ea565b6120355f6008906104d5565b90565b346120685761204836600461049f565b612064612053612029565b61205b6103e4565b9182918261050a565b0390f35b6103ea565b5f90565b61207961206d565b508061209461208e637965db0b60e01b6103f6565b916103f6565b149081156120a1575b5090565b6120ab915061355a565b5f61209d565b5f90565b906120bf90610609565b5f5260205260405f2090565b6120d4906107c8565b90565b906120e1906120cb565b5f5260205260405f2090565b6121016120fc61210692611629565b6105de565b6107ec565b90565b61212e916121246121299261211c6120b1565b5060116120b5565b6120d7565b610734565b8061214161213b5f6120ed565b916107ec565b145f1461215557506121516118ac565b5b90565b612152565b60018060401b0381116121705760208091020190565b610e70565b9092919261218a6121858261215a565b610eab565b93818552602080860192028301928184116121c757915b8383106121ae5750505050565b602080916121bc8486610416565b8152019201916121a1565b6109e7565b6121d7913691612175565b90565b6121f6926121f0916121ea613592565b926121cc565b906135cd565b565b5f90565b90612206906120cb565b5f5260205260405f2090565b6001612233612239926122236121f8565b505f61222d613741565b016121fc565b016106e8565b90565b906122579161225261224d82612212565b613765565b612259565b565b9061226391613779565b50565b906122709161223c565b565b908061228d612287612282613830565b61055f565b9161055f565b0361229e5761229b9161383d565b50565b5f63334bd91960e11b8152806122b660048201610a6c565b0390fd5b6122c3906105e1565b90565b6122cf906122ba565b90565b6122db906105fd565b90565b60e01b90565b905051906122f182610402565b565b909291926123086123038261215a565b610eab565b938185526020808601920283019281841161234557915b83831061232c5750505050565b6020809161233a84866122e4565b81520192019161231f565b6109e7565b9080601f8301121561236857816020612365935191016122f3565b90565b6109df565b9060208282031261239b575f82015160018060401b03811161239657612393920161234a565b90565b6103f2565b6103ee565b6123a86103e4565b3d5f823e3d90fd5b6123b8613592565b6123e35f6123cd6123c8846122c6565b6122d2565b636e25b978906123db6103e4565b9384926122de565b825281806123f360048201610a6c565b03915afa80156124735761240f915f91612451575b50826135cd565b6124397f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d91610609565b906124426103e4565b8061244c81610a6c565b0390a2565b61246d91503d805f833e6124658183610e84565b81019061236d565b5f612408565b6123a0565b9061248290610609565b5f5260205260405f2090565b6124a56124aa9161249d6120b1565b50601b612478565b610734565b90565b906124bf916124ba6138f6565b6124c1565b565b906124d4916124cf816139b0565b613a0c565b565b906124e0916124ad565b565b6124f3906124ee613b0a565b612541565b90565b90565b61250d612508612512926124f6565b61162c565b6107c8565b90565b61253e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6124f9565b90565b5061254a612515565b90565b61255d6125586121f8565b6124e2565b90565b61256c6125719161065d565b611220565b90565b61257e9054612560565b90565b61258961206d565b5061259c5f612596613b68565b01612574565b90565b5f90565b6125ba6125bf916125b261259f565b506056610df5565b610676565b90565b6125e7916125dd6125e2926125d561259f565b506057610ddf565b610df5565b610676565b90565b5f90565b906125f890610609565b5f5260205260405f2090565b60018060a01b031690565b61261b6126209161065d565b612604565b90565b61262d905461260f565b90565b61264761264c9161263f6125ea565b5060066125ee565b612623565b90565b6126619061265b6125ea565b50613ba2565b90565b9061266e90610609565b5f5260205260405f2090565b6126a9915f61269e6126a49361268e61206d565b5082612698613741565b016121fc565b01612664565b612574565b90565b6126c36126c8916126bb61259f565b506023610df5565b610676565b90565b906126d5906104f2565b9052565b906126e3906107c8565b9052565b906126f1906107d8565b9052565b906126ff906107ec565b9052565b61270e610120610eab565b90565b906127ef6127e56006612722612703565b946127396127315f8301610676565b5f88016126cb565b6127506127475f830161069d565b602088016126cb565b61276761275e5f83016106c4565b604088016126cb565b61277f612776600183016106e8565b606088016126d9565b61279761278e60028301610710565b608088016126e7565b6127af6127a660038301610734565b60a088016126f5565b6127c76127be60048301610734565b60c088016126f5565b6127df6127d660058301610734565b60e088016126f5565b016106e8565b61010084016126d9565b565b6127fa90612711565b90565b61280790516104f2565b90565b61281e61281961282392611629565b6105de565b6104f2565b90565b61283090516107c8565b90565b61283d90516107ec565b90565b634e487b7160e01b5f52601160045260245ffd5b612863612869919392936107ec565b926107ec565b820391821161287457565b612840565b61288861288e919392936107ec565b926107ec565b9161289a8382026107ec565b9281840414901517156128a957565b612840565b634e487b7160e01b5f52601260045260245ffd5b6128ce6128d4916107ec565b916107ec565b9081156128df570490565b6128ae565b9291909261290d6129086128f66120b1565b9561290360558590610615565b610647565b6127f1565b916129195f84016127fd565b61292b6129255f61280a565b916104f2565b146129ec5790612948919061294260608501612826565b91613cd6565b908161295c6129565f6120ed565b916107ec565b146129dc5761296d60c08201612833565b61298a61298461297f60e08501612833565b6107ec565b916107ec565b11612994575b5050565b6129d4929350906129c0826129ba60e06129b360c06129c69701612833565b9201612833565b90612854565b90612879565b6129ce6118ac565b906128c2565b905f80612990565b505090506129e95f6120ed565b90565b50505090506129fa5f6120ed565b90565b5f90565b5f90565b5f90565b5f90565b612a15612703565b90602080808080808080808a612a296129fd565b815201612a346129fd565b815201612a3f6129fd565b815201612a4a612a01565b815201612a55612a05565b815201612a60612a09565b815201612a6b612a09565b815201612a76612a09565b815201612a81612a01565b81525050565b612a8f612a0d565b90565b612ab791612aad612ab292612aa5612a87565b506055610615565b610647565b6127f1565b90565b612ac46040610eab565b90565b612acf612aba565b9060208083612adc612a09565b815201612ae7612a09565b81525050565b612af5612ac7565b90565b90612b029061062b565b5f5260205260405f2090565b90612b1890610609565b5f5260205260405f2090565b90612b5b612b526001612b35612aba565b94612b4c612b445f8301610734565b5f88016126f5565b01610734565b602084016126f5565b565b612b6690612b24565b90565b612b8e91612b84612b8992612b7c612aed565b506010612af8565b612b0e565b612b5d565b90565b612bb691612bac612bb192612ba461259f565b506058610ddf565b610df5565b610676565b90565b612bc5612bca91610683565b611220565b90565b612bd79054612bb9565b90565b612bee612be9612bf392611a73565b6105de565b6104f2565b90565b612bff906105fd565b90565b90612c1360018060401b039161162c565b9181191691161790565b90565b90612c35612c30612c3c9261062b565b612c1d565b8254612c02565b9055565b60401b90565b90612c5560ff60401b91612c40565b9181191691161790565b612c6890610443565b90565b90565b90612c83612c7e612c8a92612c5f565b612c6b565b8254612c46565b9055565b612c9790612bda565b9052565b9190612cae905f60208501940190612c8e565b565b909192612cbb613dc5565b93612cd0612cca5f8701612bcd565b15610443565b93612cdc5f8701610676565b80612cef612ce95f61280a565b916104f2565b1480612e09575b90612d0a612d046001612bda565b916104f2565b1480612de1575b612d1c909115610443565b9081612dd0575b50612db457612d4c93612d41612d396001612bda565b5f8901612c20565b85612da2575b6131c1565b612d54575b50565b612d61905f809101612c6e565b6001612d997fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d906103e4565b91829182612c9b565b0390a15f612d51565b612daf60015f8901612c6e565b612d47565b5f63f92ee8a960e01b815280612dcc60048201610a6c565b0390fd5b612ddb915015610443565b5f612d23565b50612d1c612dee30612bf6565b3b612e01612dfb5f6120ed565b916107ec565b149050612d11565b5085612cf6565b612e24612e1f612e2992611629565b6105de565b610554565b90565b612e3590612e10565b90565b612e426040610eab565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612e6357565b612e45565b90612e7282612e59565b565b90612e7e90612e68565b9052565b90612e8c9061055f565b9052565b612ea4612e9f612ea9926107ec565b6105de565b6107d8565b90565b612eb660c0610eab565b90565b90612ec390610443565b9052565b90612ed1906120cb565b5f5260205260405f2090565b612ee79051610443565b90565b90612ef660ff9161162c565b9181191691161790565b90612f15612f10612f1c92612c5f565b612c6b565b8254612eea565b9055565b90612f2c5f199161162c565b9181191691161790565b612f4a612f45612f4f926107ec565b6105de565b6107ec565b90565b90565b90612f6a612f65612f7192612f36565b612f52565b8254612f20565b9055565b612f7f90516107d8565b90565b90612f8f61ffff9161162c565b9181191691161790565b612fad612fa8612fb2926107d8565b6105de565b6107d8565b90565b90565b90612fcd612fc8612fd492612f99565b612fb5565b8254612f82565b9055565b9061306760a0600561306d94612ffb5f8201612ff55f8801612edd565b90612f00565b6130146001820161300e60208801612833565b90612f55565b61302d6002820161302760408801612833565b90612f55565b6130466003820161304060608801612833565b90612f55565b61305f6004820161305960808801612833565b90612f55565b019201612f75565b90612fb8565b565b9061307991612fd8565b565b60801b90565b9061309161ffff60801b9161307b565b9181191691161790565b906130b06130ab6130b792612f99565b612fb5565b8254613081565b9055565b90565b6130d26130cd6130d7926130bb565b6105de565b6104f2565b90565b6130e56154606130be565b90565b906130fd600160401b600160801b0391612c40565b9181191691161790565b9061311c6131176131239261062b565b612c1d565b82546130e8565b9055565b90565b61313e61313961314392613127565b6105de565b6104f2565b90565b613150601c61312a565b90565b60c01b90565b9061316b60018060c01b031991613153565b9181191691161790565b9061318a6131856131919261062b565b612c1d565b8254613159565b9055565b90565b6131ac6131a76131b192613195565b6105de565b6104f2565b90565b6131be6038613198565b90565b9190916131cc613df3565b6131d4613e07565b6131dc613e2d565b6131e4613e53565b6131ec61164d565b816131f691613779565b506131ff6111bc565b8161320991613779565b506132126117bc565b8161321c91613779565b50613225611fc5565b9061322f91613779565b505f8061323b90612e2c565b613243612e38565b915f83019061325191612e74565b602082019061325f91612e82565b61326890613ebd565b90600192905f8091613278611ed5565b61328190612e90565b9361328a612eac565b965f88019061329891612eb9565b60208701906132a6916126f5565b60408601906132b4916126f5565b6132bd906120ed565b60608501906132cb916126f5565b6132d4906120ed565b60808401906132e2916126f5565b60a08301906132f0916126e7565b6002906132fc91612ec7565b906133069161306f565b6001613313906005612f00565b61331e90600161309b565b600161332990612bda565b613333905f612c20565b61333b6130da565b613345905f613107565b61334d613146565b613357905f613175565b61335f613146565b61336a906001612c20565b6133726131b4565b61337d906001613107565b565b9061338b939291612cb0565b565b906133a8916133a361339e82612212565b613765565b6133aa565b565b906133b49161383d565b50565b906133c19161338d565b565b60016133cf91016107ec565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b91908110156133fa576020020190565b6133d6565b3561340981610402565b90565b613415906103f6565b90565b919091613423613592565b61342c5f6120ed565b5b8061344a61344461343f8588906133d2565b6107ec565b916107ec565b10156134ce576134c99061347061346b613466858885916133ea565b6133ff565b613f84565b61348461347f848784916133ea565b6133ff565b6134ae7fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb9161340c565b906134b76103e4565b806134c181610a6c565b0390a26133c3565b61342d565b50509050565b906134ee916134e96134e46111bc565b613765565b6134f0565b565b6135058261350060238490610df5565b612c20565b6135446135327f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f3592610609565b9261353b6103e4565b9182918261050a565b0390a2565b90613553916134d4565b565b613f9a565b61356261206d565b5061357c6135766301ffc9a760e01b6103f6565b916103f6565b1490565b61359061358b6111bc565b613765565b565b61359a613580565b565b5190565b906135aa8261359c565b8110156135bb576020809102010190565b6133d6565b6135ca90516103f6565b90565b9190826135ea6135e46135df5f612e2c565b61055f565b9161055f565b1461373c57823b6136036135fd5f6120ed565b916107ec565b14613736576136115f6120ed565b5b8061362d6136276136228561359c565b6107ec565b916107ec565b10156137305761364e6136496136448484906135a0565b6135c0565b613ba2565b8061366961366361365e5f612e2c565b61055f565b9161055f565b141580613715575b6136fe57506136f99061369761369061368b8584906135a0565b6135c0565b86906140a1565b6136aa6136a58483906135a0565b6135c0565b856136de6136d87f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b399361340c565b91610609565b916136e76103e4565b806136f181610a6c565b0390a36133c3565b613612565b61371061370b83856135a0565b6135c0565b614048565b50806137296137238761055f565b9161055f565b1415613671565b50509050565b82613ff9565b613fdd565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b61377790613771613830565b906140da565b565b61378161206d565b5061378a613741565b61379e61379883859061267a565b15610443565b5f14613829576137c8906137c35f6137bb816001940186906121fc565b018590612664565b612f00565b906137d1613830565b9061380e6138086138027f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d956120cb565b92610609565b92610609565b926138176103e4565b8061382181610a6c565b0390a4600190565b5050505f90565b6138386125ea565b503390565b61384561206d565b5061384e613741565b61385982849061267a565b5f146138e3576138829061387d5f6138758180940186906121fc565b018590612664565b612f00565b9061388b613830565b906138c86138c26138bc7ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b956120cb565b92610609565b92610609565b926138d16103e4565b806138db81610a6c565b0390a4600190565b5050505f90565b6138f3906105fd565b90565b6138ff306138ea565b61393161392b7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b14801561395b575b61393f57565b5f63703e46dd60e11b81528061395760048201610a6c565b0390fd5b50613964614115565b6139966139907f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b1415613939565b506139ae6139a9611fc5565b613765565b565b6139b99061399d565b565b6139c4906105e1565b90565b6139d0906139bb565b90565b6139dc906105fd565b90565b905051906139ec826108c2565b565b90602082820312613a0757613a04915f016139df565b90565b6103ee565b9190613a3a6020613a24613a1f866139c7565b6139d3565b6352d1902d90613a326103e4565b9384926122de565b82528180613a4a60048201610a6c565b03915afa80915f92613ada575b50155f14613a8b575050906001613a6c57505b565b613a87905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b9283613aa6613aa0613a9b612515565b6107c8565b916107c8565b03613abb57613ab692935061413b565b613a6a565b613ad6845f918291632a87526960e21b835260048301610ac3565b0390fd5b613afc91925060203d8111613b03575b613af48183610e84565b8101906139ee565b905f613a57565b503d613aea565b613b13306138ea565b613b45613b3f7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b03613b4c57565b5f63703e46dd60e11b815280613b6460048201610a6c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b969061340c565b5f5260205260405f2090565b613bb9613bbe91613bb16125ea565b506021613b8c565b612623565b90565b90613bcb90610609565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613bf081613bda565b821015613c0a57613c02600491613bde565b910201905f90565b6133d6565b90565b60ff1690565b613c24613c299161065d565b613c12565b90565b613c369054613c18565b90565b60081c90565b613c4b613c5091613c39565b612604565b90565b613c5d9054613c3f565b90565b613c6a6040610eab565b90565b90613ca3613c9a5f613c7d613c60565b94613c94613c8c838301613c2c565b838801612e74565b01613c53565b60208401612e82565b565b613cae90613c6d565b90565b613cc0613cc6919392936107ec565b926107ec565b8201809211613cd157565b612840565b929192613cf4613cef613ce76120b1565b926015613bc1565b613bd7565b93613cfe85613bda565b93613d085f6120ed565b5b80613d1c613d16886107ec565b916107ec565b1015613dbc57613d36613d30888390613be7565b50613c0f565b613d415f8201612623565b613d53613d4d8861055f565b9161055f565b1480613d8f575b613d6e575b50613d69906133c3565b613d09565b613d699194613d826001613d889301610734565b90613cb1565b9390613d5f565b50613da4613d9f60028301613ca5565b613ebd565b613db6613db0866107c8565b916107c8565b14613d5a565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613df16141c4565b565b613dfb613de9565b565b613e056141c4565b565b613e0f613dfd565b565b613e196141c4565b613e21613e23565b565b613e2b61421f565b565b613e35613e11565b565b613e3f6141c4565b613e47613e49565b565b613e51614265565b565b613e5b613e37565b565b613e679051612e68565b90565b613e74905161055f565b90565b613e8090612e68565b90565b613e8c90613e77565b9052565b916020613eb1929493613eaa60408201965f830190613e83565b01906113af565b565b60200190565b5190565b613ec56121f8565b50613f07613ee06020613ed95f8501613e5d565b9301613e6a565b91613ef8613eec6103e4565b93849260208401613e90565b60208201810382520382610e84565b613f19613f1382613eb9565b91613eb3565b2090565b1b90565b91906008613f41910291613f3b60018060a01b0384613f1d565b92613f1d565b9181191691161790565b90565b9190613f64613f5f613f6c93610609565b613f4b565b908354613f21565b9055565b613f8291613f7c6125ea565b91613f4e565b565b5f613f93613f98926021613b8c565b613f70565b565b613fad63ffffffff60e01b5f3516613ba2565b80613fc8613fc2613fbd5f612e2c565b61055f565b9161055f565b036142a35763ffffffff60e01b5f3516614284565b5f63d92e233d60e01b815280613ff560048201610a6c565b0390fd5b614014905f9182916322a2d07b60e21b8352600483016113bc565b0390fd5b614021906103f6565b9052565b91602061404692949361403f60408201965f830190614018565b01906113af565b565b6140625f9283926310ae11a960e31b845260048401614025565b0390fd5b9061407760018060a01b039161162c565b9181191691161790565b9061409661409161409d92610609565b613f4b565b8254614066565b9055565b6140b06140b592916021613b8c565b614081565b565b9160206140d89294936140d160408201965f8301906113af565b01906107cb565b565b906140ef6140e983839061267a565b15610443565b6140f7575050565b6141115f92839263e2517d3f60e01b8452600484016140b7565b0390fd5b61411d6125ea565b506141385f61413261412d612515565b6142c1565b01612623565b90565b90614145826142c4565b816141707fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91610609565b906141796103e4565b8061418381610a6c565b0390a261418f81613eb9565b6141a161419b5f6120ed565b916107ec565b115f146141b5576141b191614394565b505b565b50506141bf614319565b6141b3565b6141d56141cf6143c3565b15610443565b6141db57565b5f631afcd79f60e31b8152806141f360048201610a6c565b0390fd5b6141ff6141c4565b614207614209565b565b61421d614214613b68565b5f809101612f00565b565b6142276141f7565b565b6142316141c4565b614239614248565b565b6142456001611a76565b90565b6142636142536143e1565b5f61425c61423b565b9101612f55565b565b61426d614229565b565b9190614282905f60208501940190614018565b565b61429f905f91829163c2a825f560e01b83526004830161426f565b0390fd5b5f8091368280378136915af43d5f803e5f146142bd573d5ff35b3d5ffd5b90565b803b6142d86142d25f6120ed565b916107ec565b146142fa576142f8905f6142f26142ed612515565b6142c1565b01614081565b565b614315905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b3461432c6143265f6120ed565b916107ec565b1161433357565b5f63b398979f60e01b81528061434b60048201610a6c565b0390fd5b606090565b9061436661436183610ec0565b610eab565b918252565b3d5f146143865761437b3d614354565b903d5f602084013e5b565b61438e61434f565b90614384565b5f806143c0936143a261434f565b508390602081019051915af4906143b761436b565b90919091614405565b90565b6143cb61206d565b506143de5f6143d8613dc5565b01612bcd565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906144199061441261434f565b5015610443565b5f146144255750614489565b61442e82613eb9565b61444061443a5f6120ed565b916107ec565b148061446e575b61444f575090565b61446a905f918291639996b31560e01b8352600483016113bc565b0390fd5b50803b61448361447d5f6120ed565b916107ec565b14614447565b61449281613eb9565b6144a461449e5f6120ed565b916107ec565b115f146144b357805190602001fd5b5f63d6bda27560e01b8152806144cb60048201610a6c565b0390fdfea164736f6c634300081a000a","sourceMap":"1033:4009:118:-:0;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;1313:53;;;:::i;:::-;;;:::i;:::-;:::o;390:3323:80:-;;;:::i;:::-;:::o;593:16278:115:-;;;:::i;:::-;:::o;833:35518:122:-;;;:::i;:::-;:::o;776:16122:121:-;;;:::i;:::-;:::o;749:44528:113:-;;;:::i;:::-;:::o;622:21031:119:-;;;:::i;:::-;:::o;427:31286:114:-;;;:::i;:::-;:::o;1094:3411:66:-;;;:::i;:::-;:::o;701:3153:65:-;;;:::i;:::-;:::o;2090:6192:45:-;;;:::i;:::-;:::o;769:414:68:-;;;:::i;:::-;:::o;422:447:37:-;;;:::i;:::-;:::o;226:3116:0:-;;;:::i;:::-;:::o;688:505:63:-;;;:::i;:::-;:::o;1033:4009:118:-;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;986:5611:56:-;1163:13;1171:4;1163:13;:::i;:::-;;;986:5611::o;1033:4009:118:-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;7711:422:55:-;7859:26;;:::i;:::-;7900:15;;:1;:15;;:::i;:::-;7896:76;;7985:14;;:1;:14;;:::i;:::-;:34;;1033:4009:118;;;;;7985:34:55;:::i;:::-;;;:::i;:::-;;7981:146;;7711:422;;:::o;7981:146::-;8035:33;1033:4009:118;8035:14:55;1033:4009:118;;;;;8035:1:55;:14;:33;:::i;:::-;1033:4009:118;;;;;8087:29:55;;;;;:::i;:::-;;;;;;:::i;:::-;;;;7981:146;;;7896:76;7938:23;;;;;;;;;;;;:::i;:::-;;;;8737:170;8837:64;8737:170;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610015575b3661355557005b61001f5f356103de565b806301ffc9a7146103d957806305d64e38146103d45780630aa8b110146103cf57806312d91c88146103ca57806318056dc2146103c557806319e82e61146103c0578063248a9ca3146103bb5780632f2ff15d146103b657806332273f61146103b157806336568abe146103ac578063453eccea146103a757806346d163aa146103a2578063491474111461039d5780634962f88f146103985780634de8addc146103935780634e9c929a1461038e5780634f1ef286146103895780635095af641461038457806352d1902d1461037f57806354de23201461037a5780635c975abb14610375578063602356e31461037057806366c368751461036b57806372b5032d1461036657806375b238fc1461036157806377ab2cf31461035c5780637df92ada1461035757806388c47f68146103525780638a19c8bc1461034d5780638a7fe60f1461034857806390837ff41461034357806391d148541461033e5780639480e4dd146103395780639494f42614610334578063960856731461032f5780639722f4b91461032a5780639e87058514610325578063a217fddf14610320578063a457af3d1461031b578063a4b32de814610316578063a7fa6f9814610311578063aaf5eb681461030c578063ad3cb1cc14610307578063b54b2b9e14610302578063b6608409146102fd578063ba05bbf5146102f8578063c07449e2146102f3578063c550d938146102ee578063cbb6d6bd146102e9578063d27a6f06146102e4578063d45ff582146102df578063d547741f146102da578063db8a173a146102d5578063dd764abf146102d0578063e07dec29146102cb578063e1a45218146102c6578063e27e05c1146102c1578063f3c9b311146102bc578063f72c0d8b146102b75763f7cb789a0361000e57612038565b611ff4565b611f90565b611f23565b611eee565b611e85565b611e1c565b611daa565b611d67565b611d32565b611cc4565b611c54565b611b92565b611b5c565b611aee565b611aaa565b611a3e565b6119fa565b6118cb565b611858565b6117eb565b611786565b611664565b6115f4565b611585565b61152f565b6114e0565b611471565b61143b565b611406565b6113d1565b61137a565b611338565b6112c9565b61125b565b6111eb565b611186565b611151565b61111c565b6110b8565b611083565b611016565b610fe1565b610f88565b610e2c565b610d7d565b610d38565b610ccb565b610c98565b610c45565b610bd9565b610ba4565b610b3a565b610ad8565b610a71565b6109aa565b610927565b610882565b61051f565b61046a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b61040b816103f6565b0361041257565b5f80fd5b9050359061042382610402565b565b9060208282031261043e5761043b915f01610416565b90565b6103ee565b151590565b61045190610443565b9052565b9190610468905f60208501940190610448565b565b3461049a57610496610485610480366004610425565b612071565b61048d6103e4565b91829182610455565b0390f35b6103ea565b5f9103126104a957565b6103ee565b1c90565b60018060401b031690565b6104cd9060086104d293026104ae565b6104b2565b90565b906104e091546104bd565b90565b6104ef5f6010906104d5565b90565b60018060401b031690565b610506906104f2565b9052565b919061051d905f602085019401906104fd565b565b3461054f5761052f36600461049f565b61054b61053a6104e3565b6105426103e4565b9182918261050a565b0390f35b6103ea565b60018060a01b031690565b61056890610554565b90565b6105748161055f565b0361057b57565b5f80fd5b9050359061058c8261056b565b565b610597816104f2565b0361059e57565b5f80fd5b905035906105af8261058e565b565b91906040838203126105d957806105cd6105d6925f860161057f565b936020016105a2565b90565b6103ee565b90565b6105f56105f06105fa92610554565b6105de565b610554565b90565b610606906105e1565b90565b610612906105fd565b90565b9061061f90610609565b5f5260205260405f2090565b61063f61063a610644926104f2565b6105de565b6104f2565b90565b906106519061062b565b5f5260205260405f2090565b5f1c90565b61066e6106739161065d565b6104b2565b90565b6106809054610662565b90565b60401c90565b61069561069a91610683565b6104b2565b90565b6106a79054610689565b90565b60801c90565b6106bc6106c1916106aa565b6104b2565b90565b6106ce90546106b0565b90565b90565b6106e06106e59161065d565b6106d1565b90565b6106f290546106d4565b90565b61ffff1690565b61070861070d9161065d565b6106f5565b90565b61071a90546106fc565b90565b90565b61072c6107319161065d565b61071d565b90565b61073e9054610720565b90565b90610750610755926055610615565b610647565b6107605f8201610676565b9161076c5f830161069d565b916107785f82016106c4565b91610785600183016106e8565b9161079260028201610710565b9161079f60038301610734565b916107ac60048201610734565b916107c560066107be60058501610734565b93016106e8565b90565b90565b6107d4906107c8565b9052565b61ffff1690565b6107e8906107d8565b9052565b90565b6107f8906107ec565b9052565b9694929099989795939161012088019a5f8901610818916104fd565b60208801610825916104fd565b60408701610832916104fd565b6060860161083f916107cb565b6080850161084c916107df565b60a08401610859916107ef565b60c08301610866916107ef565b60e08201610873916107ef565b61010001610880916107cb565b565b346108bd576108b961089e6108983660046105b1565b90610741565b956108b09997999591959492946103e4565b998a998a6107fc565b0390f35b6103ea565b6108cb816107c8565b036108d257565b5f80fd5b905035906108e3826108c2565b565b919060408382031261090d578061090161090a925f860161057f565b936020016108d6565b90565b6103ee565b9190610925905f602085019401906107ef565b565b346109585761095461094361093d3660046108e5565b90612109565b61094b6103e4565b91829182610912565b0390f35b6103ea565b90565b61097461096f6109799261095d565b6105de565b6107d8565b90565b610987612af8610960565b90565b61099261097c565b90565b91906109a8905f602085019401906107df565b565b346109da576109ba36600461049f565b6109d66109c561098a565b6109cd6103e4565b91829182610995565b0390f35b6103ea565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a235781359160018060401b038311610a1e576020019260208302840111610a1957565b6109e7565b6109e3565b6109df565b919091604081840312610a6757610a41835f830161057f565b92602082013560018060401b038111610a6257610a5e92016109eb565b9091565b6103f2565b6103ee565b5f0190565b34610aa057610a8a610a84366004610a28565b916121da565b610a926103e4565b80610a9c81610a6c565b0390f35b6103ea565b90602082820312610abe57610abb915f016108d6565b90565b6103ee565b9190610ad6905f602085019401906107cb565b565b34610b0857610b04610af3610aee366004610aa5565b612212565b610afb6103e4565b91829182610ac3565b0390f35b6103ea565b9190604083820312610b355780610b29610b32925f86016108d6565b9360200161057f565b90565b6103ee565b34610b6957610b53610b4d366004610b0d565b90612266565b610b5b6103e4565b80610b6581610a6c565b0390f35b6103ea565b610b7e906008610b8393026104ae565b6106f5565b90565b90610b919154610b6e565b90565b610ba16001601090610b86565b90565b34610bd457610bb436600461049f565b610bd0610bbf610b94565b610bc76103e4565b91829182610995565b0390f35b6103ea565b34610c0857610bf2610bec366004610b0d565b90612272565b610bfa6103e4565b80610c0481610a6c565b0390f35b6103ea565b90565b610c24610c1f610c2992610c0d565b6105de565b6107d8565b90565b610c37613e80610c10565b90565b610c42610c2c565b90565b34610c7557610c5536600461049f565b610c71610c60610c3a565b610c686103e4565b91829182610995565b0390f35b6103ea565b90602082820312610c9357610c90915f0161057f565b90565b6103ee565b34610cc657610cb0610cab366004610c7a565b6123b0565b610cb86103e4565b80610cc281610a6c565b0390f35b6103ea565b34610cfb57610cf7610ce6610ce1366004610c7a565b61248e565b610cee6103e4565b91829182610912565b0390f35b6103ea565b90565b610d17610d12610d1c92610d00565b6105de565b6107d8565b90565b610d2a612710610d03565b90565b610d35610d1f565b90565b34610d6857610d4836600461049f565b610d64610d53610d2d565b610d5b6103e4565b91829182610995565b0390f35b6103ea565b610d7a60016008906104d5565b90565b34610dad57610d8d36600461049f565b610da9610d98610d6d565b610da06103e4565b9182918261050a565b0390f35b6103ea565b9190604083820312610dda5780610dce610dd7925f86016105a2565b9360200161057f565b90565b6103ee565b90610de99061062b565b5f5260205260405f2090565b90610dff90610609565b5f5260205260405f2090565b610e24610e2992610e1f6058935f94610ddf565b610df5565b6104d5565b90565b34610e5d57610e59610e48610e42366004610db2565b90610e0b565b610e506103e4565b9182918261050a565b0390f35b6103ea565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e8e90610e66565b810190811060018060401b03821117610ea657604052565b610e70565b90610ebe610eb76103e4565b9283610e84565b565b60018060401b038111610edc57610ed8602091610e66565b0190565b610e70565b90825f939282370152565b90929192610f01610efc82610ec0565b610eab565b93818552602085019082840111610f1d57610f1b92610ee1565b565b610e62565b9080601f83011215610f4057816020610f3d93359101610eec565b90565b6109df565b919091604081840312610f8357610f5e835f830161057f565b92602082013560018060401b038111610f7e57610f7b9201610f22565b90565b6103f2565b6103ee565b610f9c610f96366004610f45565b906124d6565b610fa46103e4565b80610fae81610a6c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fde610fb2565b90565b3461101157610ff136600461049f565b61100d610ffc610fd6565b6110046103e4565b91829182610ac3565b0390f35b6103ea565b346110465761102636600461049f565b61104261103161254d565b6110396103e4565b91829182610ac3565b0390f35b6103ea565b90565b61106261105d6110679261104b565b6105de565b6107d8565b90565b611075612ee061104e565b90565b61108061106a565b90565b346110b35761109336600461049f565b6110af61109e611078565b6110a66103e4565b91829182610995565b0390f35b6103ea565b346110e8576110c836600461049f565b6110e46110d3612581565b6110db6103e4565b91829182610455565b0390f35b6103ea565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111196110ed565b90565b3461114c5761112c36600461049f565b611148611137611111565b61113f6103e4565b91829182610ac3565b0390f35b6103ea565b346111815761117d61116c611167366004610c7a565b6125a3565b6111746103e4565b9182918261050a565b0390f35b6103ea565b346111b7576111b36111a261119c366004610db2565b906125c2565b6111aa6103e4565b9182918261050a565b0390f35b6103ea565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111e86111bc565b90565b3461121b576111fb36600461049f565b6112176112066111e0565b61120e6103e4565b91829182610ac3565b0390f35b6103ea565b60ff1690565b61123690600861123b93026104ae565b611220565b90565b906112499154611226565b90565b61125860055f9061123e565b90565b3461128b5761126b36600461049f565b61128761127661124c565b61127e6103e4565b91829182610455565b0390f35b6103ea565b90565b6112a76112a26112ac92611290565b6105de565b6104f2565b90565b6112bb624f1a00611293565b90565b6112c66112af565b90565b346112f9576112d936600461049f565b6112f56112e46112be565b6112ec6103e4565b9182918261050a565b0390f35b6103ea565b90565b61131561131061131a926112fe565b6105de565b6107ec565b90565b61132a6305f5e100611301565b90565b61133561131d565b90565b346113685761134836600461049f565b61136461135361132d565b61135b6103e4565b91829182610912565b0390f35b6103ea565b6113775f806104d5565b90565b346113aa5761138a36600461049f565b6113a661139561136d565b61139d6103e4565b9182918261050a565b0390f35b6103ea565b6113b89061055f565b9052565b91906113cf905f602085019401906113af565b565b34611401576113fd6113ec6113e7366004610c7a565b612630565b6113f46103e4565b918291826113bc565b0390f35b6103ea565b346114365761143261142161141c366004610425565b61264f565b6114296103e4565b918291826113bc565b0390f35b6103ea565b3461146c57611468611457611451366004610b0d565b9061267a565b61145f6103e4565b91829182610455565b0390f35b6103ea565b346114a15761149d61148c611487366004610c7a565b6126ac565b6114946103e4565b9182918261050a565b0390f35b6103ea565b90916060828403126114db576114d86114c1845f850161057f565b936114cf81602086016105a2565b9360400161057f565b90565b6103ee565b346115115761150d6114fc6114f63660046114a6565b916128e4565b6115046103e4565b91829182610912565b0390f35b6103ea565b61152c906115276056915f92610df5565b6104d5565b90565b3461155f5761155b61154a611545366004610c7a565b611516565b6115526103e4565b9182918261050a565b0390f35b6103ea565b61157d611582926115786057935f94610ddf565b610df5565b6104d5565b90565b346115b6576115b26115a161159b366004610db2565b90611564565b6115a96103e4565b9182918261050a565b0390f35b6103ea565b90565b6115d26115cd6115d7926115bb565b6105de565b6104f2565b90565b6115e662278d006115be565b90565b6115f16115da565b90565b346116245761160436600461049f565b61162061160f6115e9565b6116176103e4565b9182918261050a565b0390f35b6103ea565b90565b5f1b90565b61164561164061164a92611629565b61162c565b6107c8565b90565b6116565f611631565b90565b61166161164d565b90565b346116945761167436600461049f565b61169061167f611659565b6116876103e4565b91829182610ac3565b0390f35b6103ea565b6116a2906104f2565b9052565b6116af906107c8565b9052565b6116bc906107d8565b9052565b6116c9906107ec565b9052565b906101008061176e936116e65f8201515f860190611699565b6116f860208201516020860190611699565b61170a60408201516040860190611699565b61171c606082015160608601906116a6565b61172e608082015160808601906116b3565b61174060a082015160a08601906116c0565b61175260c082015160c08601906116c0565b61176460e082015160e08601906116c0565b01519101906116a6565b565b9190611784905f61012085019401906116cd565b565b346117b7576117b36117a261179c3660046105b1565b90612a92565b6117aa6103e4565b91829182611770565b0390f35b6103ea565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117e86117bc565b90565b3461181b576117fb36600461049f565b6118176118066117e0565b61180e6103e4565b91829182610ac3565b0390f35b6103ea565b90565b61183761183261183c92611820565b6105de565b6107d8565b90565b61184a6132c8611823565b90565b61185561183f565b90565b346118885761186836600461049f565b61188461187361184d565b61187b6103e4565b91829182610995565b0390f35b6103ea565b90565b6118a461189f6118a99261188d565b6105de565b6107ec565b90565b6118bd670de0b6b3a7640000611890565b90565b6118c86118ac565b90565b346118fb576118db36600461049f565b6118f76118e66118c0565b6118ee6103e4565b91829182610912565b0390f35b6103ea565b60018060401b03811161191c57611918602091610e66565b0190565b610e70565b9061193361192e83611900565b610eab565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119696005611921565b9061197660208301611938565b565b61198061195f565b90565b61198b611978565b90565b611996611983565b90565b5190565b60209181520190565b90825f9392825e0152565b6119d06119d96020936119de936119c781611999565b9384809361199d565b958691016119a6565b610e66565b0190565b6119f79160208201915f8184039101526119b1565b90565b34611a2a57611a0a36600461049f565b611a26611a1561198e565b611a1d6103e4565b918291826119e2565b0390f35b6103ea565b611a3b60075f9061123e565b90565b34611a6e57611a4e36600461049f565b611a6a611a59611a2f565b611a616103e4565b91829182610455565b0390f35b6103ea565b90565b611a8a611a85611a8f92611a73565b6105de565b6107ec565b90565b611a9c6001611a76565b90565b611aa7611a92565b90565b34611ada57611aba36600461049f565b611ad6611ac5611a9f565b611acd6103e4565b91829182610912565b0390f35b6103ea565b611aeb5f6018906104d5565b90565b34611b1e57611afe36600461049f565b611b1a611b09611adf565b611b116103e4565b9182918261050a565b0390f35b6103ea565b90602080611b4593611b3b5f8201515f8601906116c0565b01519101906116c0565b565b9190611b5a905f60408501940190611b23565b565b34611b8d57611b89611b78611b72366004610db2565b90612b69565b611b806103e4565b91829182611b47565b0390f35b6103ea565b34611bc357611bbf611bae611ba8366004610db2565b90612b91565b611bb66103e4565b9182918261050a565b0390f35b6103ea565b611bd1816107ec565b03611bd857565b5f80fd5b90503590611be982611bc8565b565b611bf4816107d8565b03611bfb57565b5f80fd5b90503590611c0c82611beb565b565b608081830312611c4f57611c24825f830161057f565b92611c4c611c358460208501611bdc565b93611c438160408601611bdc565b93606001611bff565b90565b6103ee565b34611c8657611c70611c67366004611c0e565b9291909161337f565b611c786103e4565b80611c8281610a6c565b0390f35b6103ea565b90565b611ca2611c9d611ca792611c8b565b6105de565b6104f2565b90565b611cb66276a700611c8e565b90565b611cc1611caa565b90565b34611cf457611cd436600461049f565b611cf0611cdf611cb9565b611ce76103e4565b9182918261050a565b0390f35b6103ea565b90565b611d10611d0b611d1592611cf9565b6105de565b6104f2565b90565b611d2462093a80611cfc565b90565b611d2f611d18565b90565b34611d6257611d4236600461049f565b611d5e611d4d611d27565b611d556103e4565b9182918261050a565b0390f35b6103ea565b34611d9657611d80611d7a366004610b0d565b906133b7565b611d886103e4565b80611d9281610a6c565b0390f35b6103ea565b611da760015f906104d5565b90565b34611dda57611dba36600461049f565b611dd6611dc5611d9b565b611dcd6103e4565b9182918261050a565b0390f35b6103ea565b90565b611df6611df1611dfb92611ddf565b6105de565b6107ec565b90565b611e0e662386f26fc10000611de2565b90565b611e19611dfe565b90565b34611e4c57611e2c36600461049f565b611e48611e37611e11565b611e3f6103e4565b91829182610912565b0390f35b6103ea565b90602082820312611e80575f82013560018060401b038111611e7b57611e7792016109eb565b9091565b6103f2565b6103ee565b34611eb457611e9e611e98366004611e51565b90613418565b611ea66103e4565b80611eb081610a6c565b0390f35b6103ea565b611ecd611ec8611ed292610d00565b6105de565b6107ec565b90565b611ee0612710611eb9565b90565b611eeb611ed5565b90565b34611f1e57611efe36600461049f565b611f1a611f09611ee3565b611f116103e4565b91829182610912565b0390f35b6103ea565b34611f5257611f3c611f363660046105b1565b90613549565b611f446103e4565b80611f4e81610a6c565b0390f35b6103ea565b90565b611f6e611f69611f7392611f57565b6105de565b6104f2565b90565b611f8262ed4e00611f5a565b90565b611f8d611f76565b90565b34611fc057611fa036600461049f565b611fbc611fab611f85565b611fb36103e4565b9182918261050a565b0390f35b6103ea565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390565b611ff1611fc5565b90565b346120245761200436600461049f565b61202061200f611fe9565b6120176103e4565b91829182610ac3565b0390f35b6103ea565b6120355f6008906104d5565b90565b346120685761204836600461049f565b612064612053612029565b61205b6103e4565b9182918261050a565b0390f35b6103ea565b5f90565b61207961206d565b508061209461208e637965db0b60e01b6103f6565b916103f6565b149081156120a1575b5090565b6120ab915061355a565b5f61209d565b5f90565b906120bf90610609565b5f5260205260405f2090565b6120d4906107c8565b90565b906120e1906120cb565b5f5260205260405f2090565b6121016120fc61210692611629565b6105de565b6107ec565b90565b61212e916121246121299261211c6120b1565b5060116120b5565b6120d7565b610734565b8061214161213b5f6120ed565b916107ec565b145f1461215557506121516118ac565b5b90565b612152565b60018060401b0381116121705760208091020190565b610e70565b9092919261218a6121858261215a565b610eab565b93818552602080860192028301928184116121c757915b8383106121ae5750505050565b602080916121bc8486610416565b8152019201916121a1565b6109e7565b6121d7913691612175565b90565b6121f6926121f0916121ea613592565b926121cc565b906135cd565b565b5f90565b90612206906120cb565b5f5260205260405f2090565b6001612233612239926122236121f8565b505f61222d613741565b016121fc565b016106e8565b90565b906122579161225261224d82612212565b613765565b612259565b565b9061226391613779565b50565b906122709161223c565b565b908061228d612287612282613830565b61055f565b9161055f565b0361229e5761229b9161383d565b50565b5f63334bd91960e11b8152806122b660048201610a6c565b0390fd5b6122c3906105e1565b90565b6122cf906122ba565b90565b6122db906105fd565b90565b60e01b90565b905051906122f182610402565b565b909291926123086123038261215a565b610eab565b938185526020808601920283019281841161234557915b83831061232c5750505050565b6020809161233a84866122e4565b81520192019161231f565b6109e7565b9080601f8301121561236857816020612365935191016122f3565b90565b6109df565b9060208282031261239b575f82015160018060401b03811161239657612393920161234a565b90565b6103f2565b6103ee565b6123a86103e4565b3d5f823e3d90fd5b6123b8613592565b6123e35f6123cd6123c8846122c6565b6122d2565b636e25b978906123db6103e4565b9384926122de565b825281806123f360048201610a6c565b03915afa80156124735761240f915f91612451575b50826135cd565b6124397f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d91610609565b906124426103e4565b8061244c81610a6c565b0390a2565b61246d91503d805f833e6124658183610e84565b81019061236d565b5f612408565b6123a0565b9061248290610609565b5f5260205260405f2090565b6124a56124aa9161249d6120b1565b50601b612478565b610734565b90565b906124bf916124ba6138f6565b6124c1565b565b906124d4916124cf816139b0565b613a0c565b565b906124e0916124ad565b565b6124f3906124ee613b0a565b612541565b90565b90565b61250d612508612512926124f6565b61162c565b6107c8565b90565b61253e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6124f9565b90565b5061254a612515565b90565b61255d6125586121f8565b6124e2565b90565b61256c6125719161065d565b611220565b90565b61257e9054612560565b90565b61258961206d565b5061259c5f612596613b68565b01612574565b90565b5f90565b6125ba6125bf916125b261259f565b506056610df5565b610676565b90565b6125e7916125dd6125e2926125d561259f565b506057610ddf565b610df5565b610676565b90565b5f90565b906125f890610609565b5f5260205260405f2090565b60018060a01b031690565b61261b6126209161065d565b612604565b90565b61262d905461260f565b90565b61264761264c9161263f6125ea565b5060066125ee565b612623565b90565b6126619061265b6125ea565b50613ba2565b90565b9061266e90610609565b5f5260205260405f2090565b6126a9915f61269e6126a49361268e61206d565b5082612698613741565b016121fc565b01612664565b612574565b90565b6126c36126c8916126bb61259f565b506023610df5565b610676565b90565b906126d5906104f2565b9052565b906126e3906107c8565b9052565b906126f1906107d8565b9052565b906126ff906107ec565b9052565b61270e610120610eab565b90565b906127ef6127e56006612722612703565b946127396127315f8301610676565b5f88016126cb565b6127506127475f830161069d565b602088016126cb565b61276761275e5f83016106c4565b604088016126cb565b61277f612776600183016106e8565b606088016126d9565b61279761278e60028301610710565b608088016126e7565b6127af6127a660038301610734565b60a088016126f5565b6127c76127be60048301610734565b60c088016126f5565b6127df6127d660058301610734565b60e088016126f5565b016106e8565b61010084016126d9565b565b6127fa90612711565b90565b61280790516104f2565b90565b61281e61281961282392611629565b6105de565b6104f2565b90565b61283090516107c8565b90565b61283d90516107ec565b90565b634e487b7160e01b5f52601160045260245ffd5b612863612869919392936107ec565b926107ec565b820391821161287457565b612840565b61288861288e919392936107ec565b926107ec565b9161289a8382026107ec565b9281840414901517156128a957565b612840565b634e487b7160e01b5f52601260045260245ffd5b6128ce6128d4916107ec565b916107ec565b9081156128df570490565b6128ae565b9291909261290d6129086128f66120b1565b9561290360558590610615565b610647565b6127f1565b916129195f84016127fd565b61292b6129255f61280a565b916104f2565b146129ec5790612948919061294260608501612826565b91613cd6565b908161295c6129565f6120ed565b916107ec565b146129dc5761296d60c08201612833565b61298a61298461297f60e08501612833565b6107ec565b916107ec565b11612994575b5050565b6129d4929350906129c0826129ba60e06129b360c06129c69701612833565b9201612833565b90612854565b90612879565b6129ce6118ac565b906128c2565b905f80612990565b505090506129e95f6120ed565b90565b50505090506129fa5f6120ed565b90565b5f90565b5f90565b5f90565b5f90565b612a15612703565b90602080808080808080808a612a296129fd565b815201612a346129fd565b815201612a3f6129fd565b815201612a4a612a01565b815201612a55612a05565b815201612a60612a09565b815201612a6b612a09565b815201612a76612a09565b815201612a81612a01565b81525050565b612a8f612a0d565b90565b612ab791612aad612ab292612aa5612a87565b506055610615565b610647565b6127f1565b90565b612ac46040610eab565b90565b612acf612aba565b9060208083612adc612a09565b815201612ae7612a09565b81525050565b612af5612ac7565b90565b90612b029061062b565b5f5260205260405f2090565b90612b1890610609565b5f5260205260405f2090565b90612b5b612b526001612b35612aba565b94612b4c612b445f8301610734565b5f88016126f5565b01610734565b602084016126f5565b565b612b6690612b24565b90565b612b8e91612b84612b8992612b7c612aed565b506010612af8565b612b0e565b612b5d565b90565b612bb691612bac612bb192612ba461259f565b506058610ddf565b610df5565b610676565b90565b612bc5612bca91610683565b611220565b90565b612bd79054612bb9565b90565b612bee612be9612bf392611a73565b6105de565b6104f2565b90565b612bff906105fd565b90565b90612c1360018060401b039161162c565b9181191691161790565b90565b90612c35612c30612c3c9261062b565b612c1d565b8254612c02565b9055565b60401b90565b90612c5560ff60401b91612c40565b9181191691161790565b612c6890610443565b90565b90565b90612c83612c7e612c8a92612c5f565b612c6b565b8254612c46565b9055565b612c9790612bda565b9052565b9190612cae905f60208501940190612c8e565b565b909192612cbb613dc5565b93612cd0612cca5f8701612bcd565b15610443565b93612cdc5f8701610676565b80612cef612ce95f61280a565b916104f2565b1480612e09575b90612d0a612d046001612bda565b916104f2565b1480612de1575b612d1c909115610443565b9081612dd0575b50612db457612d4c93612d41612d396001612bda565b5f8901612c20565b85612da2575b6131c1565b612d54575b50565b612d61905f809101612c6e565b6001612d997fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d906103e4565b91829182612c9b565b0390a15f612d51565b612daf60015f8901612c6e565b612d47565b5f63f92ee8a960e01b815280612dcc60048201610a6c565b0390fd5b612ddb915015610443565b5f612d23565b50612d1c612dee30612bf6565b3b612e01612dfb5f6120ed565b916107ec565b149050612d11565b5085612cf6565b612e24612e1f612e2992611629565b6105de565b610554565b90565b612e3590612e10565b90565b612e426040610eab565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612e6357565b612e45565b90612e7282612e59565b565b90612e7e90612e68565b9052565b90612e8c9061055f565b9052565b612ea4612e9f612ea9926107ec565b6105de565b6107d8565b90565b612eb660c0610eab565b90565b90612ec390610443565b9052565b90612ed1906120cb565b5f5260205260405f2090565b612ee79051610443565b90565b90612ef660ff9161162c565b9181191691161790565b90612f15612f10612f1c92612c5f565b612c6b565b8254612eea565b9055565b90612f2c5f199161162c565b9181191691161790565b612f4a612f45612f4f926107ec565b6105de565b6107ec565b90565b90565b90612f6a612f65612f7192612f36565b612f52565b8254612f20565b9055565b612f7f90516107d8565b90565b90612f8f61ffff9161162c565b9181191691161790565b612fad612fa8612fb2926107d8565b6105de565b6107d8565b90565b90565b90612fcd612fc8612fd492612f99565b612fb5565b8254612f82565b9055565b9061306760a0600561306d94612ffb5f8201612ff55f8801612edd565b90612f00565b6130146001820161300e60208801612833565b90612f55565b61302d6002820161302760408801612833565b90612f55565b6130466003820161304060608801612833565b90612f55565b61305f6004820161305960808801612833565b90612f55565b019201612f75565b90612fb8565b565b9061307991612fd8565b565b60801b90565b9061309161ffff60801b9161307b565b9181191691161790565b906130b06130ab6130b792612f99565b612fb5565b8254613081565b9055565b90565b6130d26130cd6130d7926130bb565b6105de565b6104f2565b90565b6130e56154606130be565b90565b906130fd600160401b600160801b0391612c40565b9181191691161790565b9061311c6131176131239261062b565b612c1d565b82546130e8565b9055565b90565b61313e61313961314392613127565b6105de565b6104f2565b90565b613150601c61312a565b90565b60c01b90565b9061316b60018060c01b031991613153565b9181191691161790565b9061318a6131856131919261062b565b612c1d565b8254613159565b9055565b90565b6131ac6131a76131b192613195565b6105de565b6104f2565b90565b6131be6038613198565b90565b9190916131cc613df3565b6131d4613e07565b6131dc613e2d565b6131e4613e53565b6131ec61164d565b816131f691613779565b506131ff6111bc565b8161320991613779565b506132126117bc565b8161321c91613779565b50613225611fc5565b9061322f91613779565b505f8061323b90612e2c565b613243612e38565b915f83019061325191612e74565b602082019061325f91612e82565b61326890613ebd565b90600192905f8091613278611ed5565b61328190612e90565b9361328a612eac565b965f88019061329891612eb9565b60208701906132a6916126f5565b60408601906132b4916126f5565b6132bd906120ed565b60608501906132cb916126f5565b6132d4906120ed565b60808401906132e2916126f5565b60a08301906132f0916126e7565b6002906132fc91612ec7565b906133069161306f565b6001613313906005612f00565b61331e90600161309b565b600161332990612bda565b613333905f612c20565b61333b6130da565b613345905f613107565b61334d613146565b613357905f613175565b61335f613146565b61336a906001612c20565b6133726131b4565b61337d906001613107565b565b9061338b939291612cb0565b565b906133a8916133a361339e82612212565b613765565b6133aa565b565b906133b49161383d565b50565b906133c19161338d565b565b60016133cf91016107ec565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b91908110156133fa576020020190565b6133d6565b3561340981610402565b90565b613415906103f6565b90565b919091613423613592565b61342c5f6120ed565b5b8061344a61344461343f8588906133d2565b6107ec565b916107ec565b10156134ce576134c99061347061346b613466858885916133ea565b6133ff565b613f84565b61348461347f848784916133ea565b6133ff565b6134ae7fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb9161340c565b906134b76103e4565b806134c181610a6c565b0390a26133c3565b61342d565b50509050565b906134ee916134e96134e46111bc565b613765565b6134f0565b565b6135058261350060238490610df5565b612c20565b6135446135327f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f3592610609565b9261353b6103e4565b9182918261050a565b0390a2565b90613553916134d4565b565b613f9a565b61356261206d565b5061357c6135766301ffc9a760e01b6103f6565b916103f6565b1490565b61359061358b6111bc565b613765565b565b61359a613580565b565b5190565b906135aa8261359c565b8110156135bb576020809102010190565b6133d6565b6135ca90516103f6565b90565b9190826135ea6135e46135df5f612e2c565b61055f565b9161055f565b1461373c57823b6136036135fd5f6120ed565b916107ec565b14613736576136115f6120ed565b5b8061362d6136276136228561359c565b6107ec565b916107ec565b10156137305761364e6136496136448484906135a0565b6135c0565b613ba2565b8061366961366361365e5f612e2c565b61055f565b9161055f565b141580613715575b6136fe57506136f99061369761369061368b8584906135a0565b6135c0565b86906140a1565b6136aa6136a58483906135a0565b6135c0565b856136de6136d87f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b399361340c565b91610609565b916136e76103e4565b806136f181610a6c565b0390a36133c3565b613612565b61371061370b83856135a0565b6135c0565b614048565b50806137296137238761055f565b9161055f565b1415613671565b50509050565b82613ff9565b613fdd565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b61377790613771613830565b906140da565b565b61378161206d565b5061378a613741565b61379e61379883859061267a565b15610443565b5f14613829576137c8906137c35f6137bb816001940186906121fc565b018590612664565b612f00565b906137d1613830565b9061380e6138086138027f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d956120cb565b92610609565b92610609565b926138176103e4565b8061382181610a6c565b0390a4600190565b5050505f90565b6138386125ea565b503390565b61384561206d565b5061384e613741565b61385982849061267a565b5f146138e3576138829061387d5f6138758180940186906121fc565b018590612664565b612f00565b9061388b613830565b906138c86138c26138bc7ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b956120cb565b92610609565b92610609565b926138d16103e4565b806138db81610a6c565b0390a4600190565b5050505f90565b6138f3906105fd565b90565b6138ff306138ea565b61393161392b7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b14801561395b575b61393f57565b5f63703e46dd60e11b81528061395760048201610a6c565b0390fd5b50613964614115565b6139966139907f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b1415613939565b506139ae6139a9611fc5565b613765565b565b6139b99061399d565b565b6139c4906105e1565b90565b6139d0906139bb565b90565b6139dc906105fd565b90565b905051906139ec826108c2565b565b90602082820312613a0757613a04915f016139df565b90565b6103ee565b9190613a3a6020613a24613a1f866139c7565b6139d3565b6352d1902d90613a326103e4565b9384926122de565b82528180613a4a60048201610a6c565b03915afa80915f92613ada575b50155f14613a8b575050906001613a6c57505b565b613a87905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b9283613aa6613aa0613a9b612515565b6107c8565b916107c8565b03613abb57613ab692935061413b565b613a6a565b613ad6845f918291632a87526960e21b835260048301610ac3565b0390fd5b613afc91925060203d8111613b03575b613af48183610e84565b8101906139ee565b905f613a57565b503d613aea565b613b13306138ea565b613b45613b3f7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b03613b4c57565b5f63703e46dd60e11b815280613b6460048201610a6c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b969061340c565b5f5260205260405f2090565b613bb9613bbe91613bb16125ea565b506021613b8c565b612623565b90565b90613bcb90610609565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613bf081613bda565b821015613c0a57613c02600491613bde565b910201905f90565b6133d6565b90565b60ff1690565b613c24613c299161065d565b613c12565b90565b613c369054613c18565b90565b60081c90565b613c4b613c5091613c39565b612604565b90565b613c5d9054613c3f565b90565b613c6a6040610eab565b90565b90613ca3613c9a5f613c7d613c60565b94613c94613c8c838301613c2c565b838801612e74565b01613c53565b60208401612e82565b565b613cae90613c6d565b90565b613cc0613cc6919392936107ec565b926107ec565b8201809211613cd157565b612840565b929192613cf4613cef613ce76120b1565b926015613bc1565b613bd7565b93613cfe85613bda565b93613d085f6120ed565b5b80613d1c613d16886107ec565b916107ec565b1015613dbc57613d36613d30888390613be7565b50613c0f565b613d415f8201612623565b613d53613d4d8861055f565b9161055f565b1480613d8f575b613d6e575b50613d69906133c3565b613d09565b613d699194613d826001613d889301610734565b90613cb1565b9390613d5f565b50613da4613d9f60028301613ca5565b613ebd565b613db6613db0866107c8565b916107c8565b14613d5a565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613df16141c4565b565b613dfb613de9565b565b613e056141c4565b565b613e0f613dfd565b565b613e196141c4565b613e21613e23565b565b613e2b61421f565b565b613e35613e11565b565b613e3f6141c4565b613e47613e49565b565b613e51614265565b565b613e5b613e37565b565b613e679051612e68565b90565b613e74905161055f565b90565b613e8090612e68565b90565b613e8c90613e77565b9052565b916020613eb1929493613eaa60408201965f830190613e83565b01906113af565b565b60200190565b5190565b613ec56121f8565b50613f07613ee06020613ed95f8501613e5d565b9301613e6a565b91613ef8613eec6103e4565b93849260208401613e90565b60208201810382520382610e84565b613f19613f1382613eb9565b91613eb3565b2090565b1b90565b91906008613f41910291613f3b60018060a01b0384613f1d565b92613f1d565b9181191691161790565b90565b9190613f64613f5f613f6c93610609565b613f4b565b908354613f21565b9055565b613f8291613f7c6125ea565b91613f4e565b565b5f613f93613f98926021613b8c565b613f70565b565b613fad63ffffffff60e01b5f3516613ba2565b80613fc8613fc2613fbd5f612e2c565b61055f565b9161055f565b036142a35763ffffffff60e01b5f3516614284565b5f63d92e233d60e01b815280613ff560048201610a6c565b0390fd5b614014905f9182916322a2d07b60e21b8352600483016113bc565b0390fd5b614021906103f6565b9052565b91602061404692949361403f60408201965f830190614018565b01906113af565b565b6140625f9283926310ae11a960e31b845260048401614025565b0390fd5b9061407760018060a01b039161162c565b9181191691161790565b9061409661409161409d92610609565b613f4b565b8254614066565b9055565b6140b06140b592916021613b8c565b614081565b565b9160206140d89294936140d160408201965f8301906113af565b01906107cb565b565b906140ef6140e983839061267a565b15610443565b6140f7575050565b6141115f92839263e2517d3f60e01b8452600484016140b7565b0390fd5b61411d6125ea565b506141385f61413261412d612515565b6142c1565b01612623565b90565b90614145826142c4565b816141707fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91610609565b906141796103e4565b8061418381610a6c565b0390a261418f81613eb9565b6141a161419b5f6120ed565b916107ec565b115f146141b5576141b191614394565b505b565b50506141bf614319565b6141b3565b6141d56141cf6143c3565b15610443565b6141db57565b5f631afcd79f60e31b8152806141f360048201610a6c565b0390fd5b6141ff6141c4565b614207614209565b565b61421d614214613b68565b5f809101612f00565b565b6142276141f7565b565b6142316141c4565b614239614248565b565b6142456001611a76565b90565b6142636142536143e1565b5f61425c61423b565b9101612f55565b565b61426d614229565b565b9190614282905f60208501940190614018565b565b61429f905f91829163c2a825f560e01b83526004830161426f565b0390fd5b5f8091368280378136915af43d5f803e5f146142bd573d5ff35b3d5ffd5b90565b803b6142d86142d25f6120ed565b916107ec565b146142fa576142f8905f6142f26142ed612515565b6142c1565b01614081565b565b614315905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b3461432c6143265f6120ed565b916107ec565b1161433357565b5f63b398979f60e01b81528061434b60048201610a6c565b0390fd5b606090565b9061436661436183610ec0565b610eab565b918252565b3d5f146143865761437b3d614354565b903d5f602084013e5b565b61438e61434f565b90614384565b5f806143c0936143a261434f565b508390602081019051915af4906143b761436b565b90919091614405565b90565b6143cb61206d565b506143de5f6143d8613dc5565b01612bcd565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906144199061441261434f565b5015610443565b5f146144255750614489565b61442e82613eb9565b61444061443a5f6120ed565b916107ec565b148061446e575b61444f575090565b61446a905f918291639996b31560e01b8352600483016113bc565b0390fd5b50803b61448361447d5f6120ed565b916107ec565b14614447565b61449281613eb9565b6144a461449e5f6120ed565b916107ec565b115f146144b357805190602001fd5b5f63d6bda27560e01b8152806144cb60048201610a6c565b0390fdfea164736f6c634300081a000a","sourceMap":"1033:4009:118:-:0;;;;;;;;;-1:-1:-1;1033:4009:118;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;4035:30:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;4797:70:122:-;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;1033:4009:118:-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2005:52:114:-;2051:6;;;:::i;:::-;2005:52;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;5401:35:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2183:53:114:-;2230:6;;;:::i;:::-;2183:53;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1952:47:114:-;1993:6;;;:::i;:::-;1952:47;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4810:33:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;5194:72:122:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;3018:64:114;3057:25;3018:64;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2063:53:114:-;2110:6;;;:::i;:::-;2063:53;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3170:62:114:-;3208:24;3170:62;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;2952:60:114:-;2989:23;2952:60;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;6652:25:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1742:48:114:-;1783:7;;;:::i;:::-;1742:48;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1557:44:114:-;1598:3;;;:::i;:::-;1557:44;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3839:26:114:-;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4917:45:122:-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;5041:70:122:-;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1689:47:114:-;1729:7;;;:::i;:::-;1689:47;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2317:49:45:-;2362:4;;;:::i;:::-;2317:49;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3088:76:114:-;3133:31;3088:76;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2122:55:114:-;2171:6;;;:::i;:::-;2122:55;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1059:40:114:-;1095:4;;;:::i;:::-;1059:40;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;:::i;:::-;;:::o;1819:58:56:-;1870:7;;:::i;:::-;1819:58;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;7532:27:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1607:42:114:-;1648:1;;;:::i;:::-;1607:42;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;4613:37:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1796:50:114:-;1839:7;;;:::i;:::-;1796:50;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;5572:55:114:-;5621:6;;;:::i;:::-;5572:55;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;4717:34:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;2419:46:114:-;2461:4;;;:::i;:::-;2419:46;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1105:48:114:-;1147:6;;;:::i;:::-;1105:48;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1852:49:114:-;1893:8;;;:::i;:::-;1852:49;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3238:66:114:-;3278:26;3238:66;:::o;:::-;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;3942:27:114:-;;;;;;:::i;:::-;;:::o;1033:4009:118:-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;3443:202:45:-;3528:4;;:::i;:::-;3551:11;;:47;;3566:32;;;3551:47;:::i;:::-;;;:::i;:::-;;:87;;;;;3443:202;3544:94;;:::o;3551:87::-;3602:36;3626:11;;3602:36;:::i;:::-;3551:87;;;1033:4009:118;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;18986:223:114:-;19112:41;18986:223;19112:30;:41;18986:223;19076:7;;:::i;:::-;19112:20;;:30;:::i;:::-;:41;:::i;:::-;;:::i;:::-;19170:6;:11;;19180:1;19170:11;:::i;:::-;;;:::i;:::-;;:32;;;;19184:9;;;:::i;:::-;19170:32;19163:39;:::o;19170:32::-;;;1033:4009:118;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;986:179:80:-;1122:36;986:179;1122:36;986:179;;;:::i;:::-;1148:9;1122:36;:::i;:::-;;;:::i;:::-;986:179::o;1033:4009:118:-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;4759:191:45:-;4919:24;:14;:24;4759:191;4824:7;;:::i;:::-;4876:26;4919:8;4876:26;;:::i;:::-;4919:8;:14;:::i;:::-;:24;;:::i;:::-;4912:31;:::o;3149:76::-;;3217:1;3149:76;3202:4;5320:18;5333:4;5320:18;:::i;:::-;3202:4;:::i;:::-;3217:1;:::i;:::-;3149:76::o;5246:136::-;;5350:25;5246:136;5350:25;:::i;:::-;;5246:136::o;:::-;;;;;:::i;:::-;:::o;6348:245::-;;6441:18;:34;;6463:12;;:::i;:::-;6441:34;:::i;:::-;;;:::i;:::-;;6437:102;;6549:37;6561:4;6549:37;:::i;:::-;;6348:245::o;6437:102::-;6498:30;;;;;;;;;;;;:::i;:::-;;;;1033:4009:118;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;;;668:256:80;;;:::i;:::-;797:34;;:32;:22;813:5;797:22;:::i;:::-;:32;:::i;:::-;;:34;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;867:12;797:34;;;;;668:256;766:65;860:5;867:12;:::i;:::-;895:22;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;668:256::o;797:34::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;1033:4009:118:-;;;;;:::i;:::-;;;;;;;;;:::o;12388:122:121:-;12480:23;;12388:122;12454:7;;:::i;:::-;12480:16;;:23;:::i;:::-;;:::i;:::-;12473:30;:::o;2624:62:56:-;;2678:1;2624:62;;;:::i;:::-;2678:1;:::i;:::-;2624:62::o;4161:214::-;;4363:4;4161:214;4294:17;;;:::i;:::-;4363:4;:::i;:::-;4161:214::o;:::-;;;;;:::i;:::-;:::o;2892:72::-;2956:1;2892:72;;;:::i;:::-;2956:1;:::i;:::-;2892:72;:::o;1033:4009:118:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;763:114:17:-;811:66;;;:::i;:::-;763:114;:::o;3708:134:56:-;3803:32;;;:::i;:::-;3796:39;:::o;3708:134::-;3777:7;;;:::i;:::-;;:::i;:::-;3708:134;:::o;1033:4009:118:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;2692:145:65:-;2739:4;;:::i;:::-;2783:21;2821:9;;2783:21;;:::i;:::-;2821:9;;:::i;:::-;2814:16;:::o;1033:4009:118:-;;;:::o;30988:117:122:-;31077:21;;30988:117;31052:6;;:::i;:::-;31077:11;;:21;:::i;:::-;;:::i;:::-;31070:28;:::o;31544:162::-;31661:38;31544:162;31661:28;:38;31544:162;31636:6;;:::i;:::-;31661:17;;:28;:::i;:::-;:38;:::i;:::-;;:::i;:::-;31654:45;:::o;1033:4009:118:-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;16752:117:115:-;16841:21;;16752:117;16815:7;;:::i;:::-;16841:14;;:21;:::i;:::-;;:::i;:::-;16834:28;:::o;1560:129:80:-;1652:30;1560:129;1626:7;;:::i;:::-;1673:8;1652:30;:::i;:::-;1645:37;:::o;1033:4009:118:-;;;;;:::i;:::-;;;;;;;;;:::o;3732:207:45:-;3901:31;3732:207;3901:22;:14;:31;3732:207;3809:4;;:::i;:::-;3858:26;;;;:::i;:::-;3901:8;:14;:::i;:::-;:22;:31;:::i;:::-;;:::i;:::-;3894:38;:::o;7400:147:122:-;7504:36;;7400:147;7479:6;;:::i;:::-;7504:26;;:36;:::i;:::-;;:::i;:::-;7497:43;:::o;1033:4009:118:-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;29476:783:122:-;;;;;29664:59;29692:31;29630:18;;:::i;:::-;29692:12;:22;:12;29705:8;29692:22;;:::i;:::-;:31;:::i;:::-;29664:59;:::i;:::-;29737:6;:12;;:6;:12;;:::i;:::-;:17;;29753:1;29737:17;:::i;:::-;;;:::i;:::-;;29733:31;;29860:9;29824:74;29860:9;29871:8;29881:16;;:6;:16;;:::i;:::-;29824:74;;:::i;:::-;29912:15;;:20;;29931:1;29912:20;:::i;:::-;;;:::i;:::-;;29908:34;;30036:25;;:6;:25;;:::i;:::-;:52;;30064:24;;:6;:24;;:::i;:::-;30036:52;:::i;:::-;;;:::i;:::-;;30032:221;;29476:783;;;:::o;30032:221::-;30202:40;30123:6;;;;:52;:6;30151:24;;30123:25;;30203:26;30123:6;:25;;:::i;:::-;30151:6;:24;;:::i;:::-;30123:52;;:::i;:::-;30203:26;;:::i;:::-;30233:9;;:::i;:::-;30202:40;;:::i;:::-;30032:221;;;;;29908:34;29941:1;;;;29934:8;29941:1;29934:8;:::i;:::-;;:::o;29733:31::-;29763:1;;;;;29756:8;29763:1;29756:8;:::i;:::-;;:::o;1033:4009:118:-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;31152:156:122:-;31263:38;31152:156;31270:22;:31;31152:156;31233:18;;:::i;:::-;31270:12;;:22;:::i;:::-;:31;:::i;:::-;31263:38;:::i;:::-;;:::o;1033:4009:118:-;;;;:::i;:::-;;:::o;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;34257:154:122:-;34372:32;34257:154;34379:15;:25;34257:154;34331:29;;:::i;:::-;34379:8;;:15;:::i;:::-;:25;:::i;:::-;34372:32;:::i;:::-;;:::o;31962:170::-;32083:42;31962:170;32083:32;:42;31962:170;32058:6;;:::i;:::-;32083:19;;:32;:::i;:::-;:42;:::i;:::-;;:::i;:::-;32076:49;:::o;1033:4009:118:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;4069:1104:55:-;;;;4191:26;;:::i;:::-;4302:1;4301:16;4302:15;;:1;:15;;:::i;:::-;4301:16;;:::i;:::-;4348:1;:14;;:1;:14;;:::i;:::-;4726:11;:16;;4741:1;4726:16;:::i;:::-;;;:::i;:::-;;:34;;;4069:1104;4790:11;:16;;4805:1;4790:16;:::i;:::-;;;:::i;:::-;;:50;;;4069:1104;4855:13;4770:70;4856:12;4855:13;;:::i;:::-;:30;;;;4069:1104;4851:91;;;5055:1;4968;4951:18;;4968:1;4951:18;:::i;:::-;:14;:1;:14;:18;:::i;:::-;4983:14;4979:67;;4069:1104;5055:1;:::i;:::-;5066:101;;4069:1104;;:::o;5066:101::-;5100:23;5118:5;5100:15;5118:5;5100:1;:15;:23;:::i;:::-;5154:1;5142:14;;;;;:::i;:::-;;;;;;:::i;:::-;;;;5066:101;;;4979:67;5013:22;5031:4;5013:15;:1;:15;:22;:::i;:::-;4979:67;;4851:91;4908:23;;;;;;;;;;;;:::i;:::-;;;;4855:30;4872:13;4873:12;;4872:13;;:::i;:::-;4855:30;;;4790:50;4818:4;4855:13;4810;4818:4;4810:13;:::i;:::-;:25;:30;;4839:1;4810:30;:::i;:::-;;;:::i;:::-;;4790:50;;;;4726:34;4746:14;;4726:34;;1033:4009:118;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1033:4009:118;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;826:56:77:-;876:6;;;:::i;:::-;826:56;:::o;876:6::-;;;1033:4009:118;876:6:77;;1033:4009:118;876:6:77;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1071:52::-;1121:2;;;:::i;:::-;1071:52;:::o;1121:2::-;;;;:::o;:::-;;;1033:4009:118;1121:2:77;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;1191:51::-;1240:2;;;:::i;:::-;1191:51;:::o;1648:1495:118:-;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2003:18;;:::i;:::-;2023:5;1992:37;;;:::i;:::-;;2050:10;;:::i;:::-;2062:5;2039:29;;;:::i;:::-;;2089:18;;:::i;:::-;2109:5;2078:37;;;:::i;:::-;;2136:13;;:::i;:::-;2151:5;2125:32;;;:::i;:::-;;2246:22;2278:1;2270:10;;;:::i;:::-;2234:47;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2223:59;;;:::i;:::-;2361:4;;2397:22;2448:19;2493:1;2525;2630:15;;;:::i;:::-;2623:23;;;:::i;:::-;2320:337;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2292:13;2306:10;2292:25;;;:::i;:::-;:365;;;;:::i;:::-;2683:4;2667:20;;;;:::i;:::-;2698:46;;;;:::i;:::-;2769:1;2754:16;;;:::i;:::-;;;;;:::i;:::-;2796:37;;:::i;:::-;2780:53;;;;:::i;:::-;2961:37;;:::i;:::-;2935:63;;;;:::i;:::-;3031:37;;:::i;:::-;3008:60;;;;:::i;:::-;3100:36;;:::i;:::-;3078:58;;;;:::i;:::-;1648:1495::o;:::-;;;;;;;:::i;:::-;:::o;3149:76:45:-;;3217:1;3149:76;3202:4;5737:18;5750:4;5737:18;:::i;:::-;3202:4;:::i;:::-;3217:1;:::i;:::-;3149:76::o;5662:138::-;;5767:26;5662:138;5767:26;:::i;:::-;;5662:138::o;:::-;;;;;:::i;:::-;:::o;1033:4009:118:-;;;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;1220:285:80:-;;;;;;:::i;:::-;1343:13;1355:1;1343:13;:::i;:::-;1380:3;1358:1;:20;;1362:16;:9;;:16;;:::i;:::-;1358:20;:::i;:::-;;;:::i;:::-;;;;;1380:3;1422:9;:12;;;:9;;1432:1;1422:12;;:::i;:::-;;:::i;:::-;;:::i;:::-;1475;;:9;;1485:1;1475:12;;:::i;:::-;;:::i;:::-;1454:34;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;1380:3;:::i;:::-;1343:13;;1358:20;;;;;1220:285::o;3149:76:45:-;;3217:1;3149:76;3202:4;4913:10:118;;:::i;:::-;3202:4:45;:::i;:::-;3217:1;:::i;:::-;3149:76::o;4822:218:118:-;4935:44;4974:5;4935:36;:26;4962:8;4935:36;;:::i;:::-;:44;:::i;:::-;4994:39;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;4822:218::o;:::-;;;;;:::i;:::-;:::o;4098:63::-;;:::i;1035:146:68:-;1111:4;;:::i;:::-;1134:11;:40;;1149:25;;;1134:40;:::i;:::-;;;:::i;:::-;;1127:47;:::o;3149:76:45:-;3202:4;3222:10:118;;:::i;:::-;3202:4:45;:::i;:::-;3149:76::o;:88:118:-;;;:::i;:::-;:::o;1033:4009::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;1894:602:80:-;;;1987:5;:19;;1996:10;2004:1;1996:10;:::i;:::-;1987:19;:::i;:::-;;;:::i;:::-;;1983:45;;2042:5;:17;:22;;2063:1;2042:22;:::i;:::-;;;:::i;:::-;;2038:54;;2108:13;2120:1;2108:13;:::i;:::-;2145:3;2123:1;:20;;2127:16;:9;:16;:::i;:::-;2123:20;:::i;:::-;;;:::i;:::-;;;;;2183:34;2204:12;;:9;2214:1;2204:12;;:::i;:::-;;:::i;:::-;2183:34;:::i;:::-;2235:8;:22;;2247:10;2255:1;2247:10;:::i;:::-;2235:22;:::i;:::-;;;:::i;:::-;;;:43;;;2145:3;2231:138;;2403:9;2145:3;2403:9;2417:5;2403:12;;:9;2413:1;2403:12;;:::i;:::-;;:::i;:::-;2417:5;;;:::i;:::-;2459:12;;:9;2469:1;2459:12;;:::i;:::-;;:::i;:::-;2473:5;2442:37;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2145:3;:::i;:::-;2108:13;;2231:138;2331:12;;:9;;:12;:::i;:::-;;:::i;:::-;2345:8;:::i;2235:43::-;2261:8;;:17;;2273:5;2261:17;:::i;:::-;;;:::i;:::-;;;2235:43;;2123:20;;;;;1894:602::o;2038:54::-;2086:5;;:::i;1983:45::-;;:::i;2787:177:45:-;2887:71;2787:177;:::o;4148:103::-;4231:12;4148:103;4231:12;;:::i;:::-;;;:::i;:::-;4148:103::o;7270:387::-;7347:4;;:::i;:::-;7396:26;;;:::i;:::-;7436:23;7437:22;7445:4;7451:7;7437:22;;:::i;:::-;7436:23;;:::i;:::-;7432:219;;;;7475:38;7509:4;7475:31;:22;:14;7509:4;;7475:1;:8;7484:4;7475:14;;:::i;:::-;:22;7498:7;7475:31;;:::i;:::-;:38;:::i;:::-;7550:7;7559:12;;:::i;:::-;7532:40;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;7593:4;7586:11;:::o;7432:219::-;7635:5;;;;7628:12;:::o;887:96:63:-;940:7;;:::i;:::-;966:10;;959:17;:::o;7892:388:45:-;7970:4;;:::i;:::-;8019:26;;;:::i;:::-;8059:22;8067:4;8073:7;8059:22;;:::i;:::-;8055:219;;;;8097:39;8131:5;8097:31;:22;:14;8131:5;;8097:1;:8;8106:4;8097:14;;:::i;:::-;:22;8120:7;8097:31;;:::i;:::-;:39;:::i;:::-;8173:7;8182:12;;:::i;:::-;8155:40;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;8216:4;8209:11;:::o;8055:219::-;8258:5;;;;8251:12;:::o;1033:4009:118:-;;;;:::i;:::-;;:::o;4603:312:56:-;4675:13;4683:4;4675:13;:::i;:::-;:23;;4692:6;4675:23;:::i;:::-;;;:::i;:::-;;:120;;;;4603:312;4658:251;;4603:312::o;4658:251::-;4869:29;;;;;;;;;;;;:::i;:::-;;;;4675:120;4753:32;;;:::i;:::-;:42;;4789:6;4753:42;:::i;:::-;;;:::i;:::-;;;4675:120;;3149:76:45;;3202:4;4410:13:118;;:::i;:::-;3202:4:45;:::i;:::-;3149:76::o;4347:81:118:-;;;;:::i;:::-;:::o;1033:4009::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;6057:538:56:-;;;6156:52;;:50;:36;6174:17;6156:36;:::i;:::-;:50;:::i;:::-;;:52;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;6057:538;6152:437;;;;;;;;;;;;;;6057:538::o;6152:437::-;6518:60;6560:17;6518:60;;;;;;;;;;;;;:::i;:::-;;;;6152:437;6250:4;;:40;;6258:32;;:::i;:::-;6250:40;:::i;:::-;;;:::i;:::-;;6246:120;;6428:4;6409:17;;;6428:4;:::i;:::-;6152:437;;6246:120;6317:34;6346:4;6317:34;;;;;;;;;;;;;:::i;:::-;;;;6156:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5032:213;5098:13;5106:4;5098:13;:::i;:::-;:23;;5115:6;5098:23;:::i;:::-;;;:::i;:::-;;5094:145;;5032:213::o;5094:145::-;5199:29;4869;;;5199;;;;;;;;:::i;:::-;;;;1147:162:65;1237:66;1147:162;:::o;1033:4009:118:-;;;;;:::i;:::-;;;;;;;;;:::o;3243:139::-;3348:27;;3243:139;3322:7;;:::i;:::-;3348:17;;:27;:::i;:::-;;:::i;:::-;3341:34;:::o;1033:4009::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;30265:667:122:-;;;;30478:71;30526:23;30443:19;;:::i;:::-;30526:12;;:23;:::i;:::-;30478:71;:::i;:::-;30587:11;:18;:11;:18;:::i;:::-;30632:1;30620:13;30632:1;30620:13;:::i;:::-;;30635:1;:21;;30639:17;30635:21;:::i;:::-;;;:::i;:::-;;;;;30673:50;30709:14;:11;30721:1;30709:14;;:::i;:::-;;30673:50;:::i;:::-;30741:10;;:1;:10;;:::i;:::-;:22;;30755:8;30741:22;:::i;:::-;;;:::i;:::-;;:58;;;30620:13;30737:120;;30620:13;30898:3;;;;:::i;:::-;30620:13;;30737:120;30898:3;30834:1;;:8;;30819:23;30834:1;:8;;:::i;:::-;30819:23;;:::i;:::-;30737:120;;;;30741:58;30778:1;30767:19;;30778:7;:1;:7;30767:19;:::i;:::-;;:::i;:::-;:32;;30790:9;30767:32;:::i;:::-;;;:::i;:::-;;30741:58;;30635:21;;;;;;;;30265:667::o;8737:170:55:-;8837:64;8737:170;:::o;6893:76::-;;;:::i;:::-;:::o;2970:67:56:-;;;:::i;:::-;:::o;6893:76:55:-;;;:::i;:::-;:::o;3231:65:45:-;;;:::i;:::-;:::o;6893:76:55:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1836:97:65:-;;;:::i;:::-;:::o;:::-;;;:::i;:::-;:::o;6893:76:55:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;2684:111:66:-;;;:::i;:::-;:::o;:::-;;;:::i;:::-;:::o;1033:4009:118:-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;:::o;16582:204:114:-;16651:7;;:::i;:::-;16754:5;16743:35;16766:11;;16754:10;;:5;:10;;:::i;:::-;16766:5;:11;;:::i;:::-;16743:35;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;16733:46;;;;:::i;:::-;;;:::i;:::-;;16726:53;:::o;1033:4009:118:-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;3526:118::-;3603:34;3610:27;3603:34;3526:118;3610:17;:27;:::i;:::-;3603:34;:::i;:::-;3526:118::o;1695:193:80:-;1758:29;1033:4009:118;;;1779:7:80;;;1758:29;:::i;:::-;1801:5;:19;;1810:10;1818:1;1810:10;:::i;:::-;1801:19;:::i;:::-;;;:::i;:::-;;1875:5;1797:56;1033:4009:118;;;1845:7:80;;;;:::i;3650:107:118:-;3720:30;;;;;;;;;;;;:::i;:::-;;;;3763:127;3847:36;3763:127;3847:36;;;;;;;;;;;;;:::i;:::-;;;;1033:4009;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;3896:196::-;4018:67;;;;;;;;;;;;;;:::i;:::-;;;;1033:4009;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;3388:132::-;3478:27;:35;3388:132;3478:17;;:27;:::i;:::-;:35;:::i;:::-;3388:132::o;1033:4009::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;4381:197:45:-;;4468:23;4469:22;4477:4;4483:7;4469:22;;:::i;:::-;4468:23;;:::i;:::-;4464:108;;4381:197;;:::o;4464:108::-;4514:47;;;;;;;;;;;;;;:::i;:::-;;;;1441:138:17;1493:7;;:::i;:::-;1546:19;1519:53;;:47;1546:19;;:::i;:::-;1519:47;:::i;:::-;:53;;:::i;:::-;1512:60;:::o;2264:344::-;;2374:17;;;:::i;:::-;2425;2407:36;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2458:11;:4;:11;:::i;:::-;:15;;2472:1;2458:15;:::i;:::-;;;:::i;:::-;;2454:148;;;;2489:53;2518:17;2489:53;:::i;:::-;;2454:148;2264:344::o;2454:148::-;;;;;:::i;:::-;;;7084:141:55;7150:18;7151:17;;:::i;:::-;7150:18;;:::i;:::-;7146:73;;7084:141::o;7146:73::-;7191:17;;;;;;;;;;;;:::i;:::-;;;;6893:76;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1939:156:65:-;2071:17;2040:21;;:::i;:::-;2071:9;2083:5;2071:1;:9;:17;:::i;:::-;1939:156::o;:::-;;;:::i;:::-;:::o;6893:76:55:-;;;:::i;:::-;6961:1;;:::i;:::-;6893:76::o;1910:40:66:-;1949:1;;;:::i;:::-;1910:40;:::o;2801:183::-;2954:23;2916:28;;:::i;:::-;2954:9;2966:11;;:::i;:::-;2954:1;:9;:23;:::i;:::-;2801:183::o;:::-;;;:::i;:::-;:::o;1033:4009:118:-;;;;;;;;;;;;;:::i;:::-;:::o;4203:138::-;4292:42;4203:138;4292:42;;;;;;;;;;;;;:::i;:::-;;;;2694:388:80;2750:326;2694:388;;2750:326;;;;;;;;;;;;;;;;;;;;;;;;1899:163:32;;:::o;1671:281:17:-;1748:17;:29;:34;;1781:1;1748:34;:::i;:::-;;;:::i;:::-;;1744:119;;1872:73;1928:17;1872:53;:47;1899:19;;:::i;:::-;1872:47;:::i;:::-;:53;:73;:::i;:::-;1671:281::o;1744:119::-;1805:47;1834:17;1805:47;6518:60:56;;;;;;1805:47:17;;;;;;:::i;:::-;;;;6113:122;6163:9;:13;;6175:1;6163:13;:::i;:::-;;;:::i;:::-;;6159:70;;6113:122::o;6159:70::-;6199:19;;;;;;;;;;;;:::i;:::-;;;;1033:4009:118;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;3900:253:27;4049:25;3900:253;4091:55;3900:253;3983:12;;:::i;:::-;4049:6;;4069:4;4049:25;;;;;;;;;;;:::i;:::-;4118:6;4126:7;4135:10;4091:55;;:::i;:::-;4084:62;:::o;8487:120:55:-;8537:4;;:::i;:::-;8560:26;:40;;:26;;:::i;:::-;:40;;:::i;:::-;8553:47;:::o;2395:183:66:-;2499:73;2395:183;:::o;4421:582:27:-;;4593:8;4421:582;4565:12;;:::i;:::-;4594:7;4593:8;;:::i;:::-;4589:408;;;;4625:10;;:::i;4589:408::-;4841:17;:10;:17;:::i;:::-;:22;;4862:1;4841:22;:::i;:::-;;;:::i;:::-;;:49;;;4589:408;4837:119;;4976:10;4969:17;:::o;4837:119::-;4917:24;4934:6;4917:24;;;;;;;;;;;;;:::i;:::-;;;;4841:49;4867:6;;:18;:23;;4889:1;4867:23;:::i;:::-;;;:::i;:::-;;4841:49;;5543:487;5674:17;:10;:17;:::i;:::-;:21;;5694:1;5674:21;:::i;:::-;;;:::i;:::-;;5670:354;;;;5799:158;;;;;;5670:354;5994:19;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{},"immutableReferences":{"16592":[{"start":14599,"length":32},{"start":14700,"length":32},{"start":15131,"length":32}]}},"methodIdentifiers":{"ADMIN_ROLE()":"75b238fc","ASSET_MANAGER_ROLE()":"a4b32de8","BPS_DENOMINATOR()":"e1a45218","COMMISSION_CHANGE_DELAY()":"d45ff582","DEFAULT_ADMIN_ROLE()":"a217fddf","LOCK_ONE_MONTH()":"9e870585","LOCK_SIX_MONTHS()":"f3c9b311","LOCK_THREE_MONTHS()":"d27a6f06","LOCK_TWO_MONTHS()":"7df92ada","MIN_LOCK_AMOUNT()":"dd764abf","MULTIPLIER_NONE()":"4962f88f","MULTIPLIER_ONE_MONTH()":"18056dc2","MULTIPLIER_SIX_MONTHS()":"453eccea","MULTIPLIER_THREE_MONTHS()":"a7fa6f98","MULTIPLIER_TWO_MONTHS()":"54de2320","PRECISION()":"aaf5eb68","SLASHER_ROLE()":"5095af64","TANGLE_ROLE()":"602356e3","UPGRADER_ROLE()":"f72c0d8b","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","VIRTUAL_ASSETS()":"b6608409","VIRTUAL_SHARES()":"88c47f68","blueprintSlashCount(uint64,address)":"4e9c929a","clearFacetSelectors(bytes4[])":"e07dec29","currentRound()":"8a19c8bc","delegationBondLessDelay()":"ba05bbf5","facetForSelector(bytes4)":"90837ff4","getAccumulatedDust(address)":"49147411","getAssetAdapter(address)":"8a7fe60f","getOperatorSlashFactor(address,bytes32)":"12d91c88","getPendingSlashCount(address)":"9480e4dd","getRoleAdmin(bytes32)":"248a9ca3","getSlashCount(address)":"66c36875","getSlashCountForBlueprint(uint64,address)":"c550d938","getSlashCountForService(uint64,address)":"72b5032d","getSlashImpact(address,uint64,address)":"9494f426","getSlashRecord(address,uint64)":"a457af3d","getSnapshot(uint64,address)":"c07449e2","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,uint256,uint256,uint16)":"cbb6d6bd","lastRoundAdvance()":"05d64e38","leaveDelegatorsDelay()":"db8a173a","leaveOperatorsDelay()":"4de8addc","nativeEnabled()":"77ab2cf3","nextSlashId(address)":"96085673","operatorCommissionBps()":"32273f61","paused()":"5c975abb","proxiableUUID()":"52d1902d","registerFacet(address)":"46d163aa","registerFacetSelectors(address,bytes4[])":"19e82e61","renounceRole(bytes32,address)":"36568abe","requireAdapters()":"b54b2b9e","resetPendingSlashCount(address,uint64)":"e27e05c1","revokeRole(bytes32,address)":"d547741f","roundDuration()":"f7cb789a","serviceSlashCount(uint64,address)":"9722f4b9","slashHistory(address,uint64)":"0aa8b110","supportsInterface(bytes4)":"01ffc9a7","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"NotAContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"existingFacet\",\"type\":\"address\"}],\"name\":\"SelectorAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"UnknownSelector\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintAddedToDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delegationIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"BlueprintRemovedFromDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.BlueprintSelectionMode\",\"name\":\"selectionMode\",\"type\":\"uint8\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DelegatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"estimatedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"DelegatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum Types.LockMultiplier\",\"name\":\"lock\",\"type\":\"uint8\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDust\",\"type\":\"uint256\"}],\"name\":\"DustAccumulated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DustSwept\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"ExpiredLocksHarvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"FacetRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"FacetSelectorCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"FacetSelectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"}],\"name\":\"OperatorBlueprintRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum Types.DelegationMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"OperatorDelegationModeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorLeavingScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorStakeIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OperatorUnstakeExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"OperatorUnstakeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorWhitelistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashCountReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashDecremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newCount\",\"type\":\"uint64\"}],\"name\":\"PendingSlashIncremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"SlashRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"operatorSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegatorsSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"commitmentCount\",\"type\":\"uint256\"}],\"name\":\"SlashedForService\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"readyRound\",\"type\":\"uint64\"}],\"name\":\"WithdrawScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ASSET_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BPS_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMMISSION_CHANGE_DELAY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LOCK_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_LOCK_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_NONE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_ONE_MONTH\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_SIX_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_THREE_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPLIER_TWO_MONTHS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TANGLE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VIRTUAL_ASSETS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VIRTUAL_SHARES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blueprintSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"clearFacetSelectors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationBondLessDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"facetForSelector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAccumulatedDust\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getAssetAdapter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"}],\"name\":\"getOperatorSlashFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getPendingSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForBlueprint\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSlashCountForService\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getSlashImpact\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lostAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"slashId\",\"type\":\"uint64\"}],\"name\":\"getSlashRecord\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"internalType\":\"struct SlashingManager.SlashRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getSnapshot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalDelegated\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.OperatorSnapshot\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeMinOperatorStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeMinDelegation\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"_operatorCommissionBps\",\"type\":\"uint16\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastRoundAdvance\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveDelegatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leaveOperatorsDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nextSlashId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorCommissionBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"}],\"name\":\"registerFacet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"facet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"registerFacetSelectors\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requireAdapters\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"resetPendingSlashCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"serviceSlashCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"slashHistory\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"assetHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"slashBps\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"totalSlashed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRateAfter\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"evidence\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ZeroAddress()\":[{\"details\":\"Zero address provided - kept parameterless for backward compatibility Context is typically clear from the function that reverts\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SlashRecorded(address,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"details\":\"Individual delegator amounts can be computed: shares * (oldRate - newRate) / PRECISION\"},\"Slashed(address,uint64,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"params\":{\"assetHash\":\"Asset hash for the pool\",\"blueprintId\":\"The blueprint where violation occurred (0 for consensus/native slash)\",\"delegatorsSlashed\":\"Amount slashed from delegator pools (reduces totalAssets)\",\"exchangeRateAfter\":\"Exchange rate after slash (scaled by PRECISION)\",\"operator\":\"The slashed operator\",\"operatorSlashed\":\"Amount slashed from operator's self-stake\",\"serviceId\":\"The service where violation occurred\",\"slashBps\":\"Slash percentage in basis points\"}},\"SlashedForService(address,uint64,uint64,uint256,uint256)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"commitmentCount\":\"Number of asset commitments that were slashed\",\"operator\":\"The slashed operator\",\"serviceId\":\"The service where violation occurred\",\"totalSlashed\":\"Total amount slashed across all committed assets\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAccumulatedDust(address)\":{\"params\":{\"token\":\"The token address (address(0) for native)\"},\"returns\":{\"_0\":\"The accumulated dust amount\"}},\"getAssetAdapter(address)\":{\"params\":{\"token\":\"Token address\"},\"returns\":{\"_0\":\"adapter Adapter address (or zero if none)\"}},\"getOperatorSlashFactor(address,bytes32)\":{\"details\":\"Returns PRECISION (1e18) if unset\"},\"getPendingSlashCount(address)\":{\"params\":{\"operator\":\"The operator to query\"},\"returns\":{\"_0\":\"count Number of pending slashes\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getSlashCountForBlueprint(uint64,address)\":{\"params\":{\"blueprintId\":\"The blueprint ID\",\"operator\":\"The operator address\"},\"returns\":{\"_0\":\"count Number of times operator was slashed in services of this blueprint\"}},\"getSlashCountForService(uint64,address)\":{\"params\":{\"operator\":\"The operator address\",\"serviceId\":\"The service ID\"},\"returns\":{\"_0\":\"count Number of times operator was slashed in this service\"}},\"getSlashImpact(address,uint64,address)\":{\"params\":{\"delegator\":\"The delegator to check\",\"operator\":\"The operator that was slashed\",\"slashId\":\"The slash event ID\"},\"returns\":{\"lostAmount\":\"Approximate amount lost due to this slash\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,uint256,uint256,uint16)\":{\"params\":{\"_operatorCommissionBps\":\"Operator commission in basis points\",\"admin\":\"Admin address\",\"nativeMinDelegation\":\"Minimum delegation amount\",\"nativeMinOperatorStake\":\"Minimum stake for operators\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"resetPendingSlashCount(address,uint64)\":{\"details\":\"Admin recovery for cases where the per-operator pending-slash counter drifts from the true count of un-finalized proposals targeting the operator. Bypasses the normal increment/decrement path so it must only be called after verifying the correct count off-chain.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"MultiAssetDelegation\",\"version\":1},\"userdoc\":{\"events\":{\"DustAccumulated(address,uint256,uint256)\":{\"notice\":\"Emitted when dust is accumulated from rounding\"},\"DustSwept(address,address,uint256)\":{\"notice\":\"Emitted when accumulated dust is swept to treasury\"},\"SlashRecorded(address,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"notice\":\"Emitted when slash is recorded (for off-chain indexing of per-delegator impact)\"},\"Slashed(address,uint64,uint64,bytes32,uint16,uint256,uint256,uint256)\":{\"notice\":\"Emitted when an operator and their delegators are slashed for an asset\"},\"SlashedForService(address,uint64,uint64,uint256,uint256)\":{\"notice\":\"Emitted when an operator is slashed for a specific service with per-asset commitments\"}},\"kind\":\"user\",\"methods\":{\"COMMISSION_CHANGE_DELAY()\":{\"notice\":\"Timelock delay for commission changes (7 days)\"},\"blueprintSlashCount(uint64,address)\":{\"notice\":\"Slash count per blueprint: blueprintId => operator => count\"},\"clearFacetSelectors(bytes4[])\":{\"notice\":\"Remove selectors from the router\"},\"currentRound()\":{\"notice\":\"Current round number\"},\"delegationBondLessDelay()\":{\"notice\":\"Delay for unstaking delegations (in rounds)\"},\"facetForSelector(bytes4)\":{\"notice\":\"Resolve the facet for a selector\"},\"getAccumulatedDust(address)\":{\"notice\":\"Get accumulated dust for a token\"},\"getAssetAdapter(address)\":{\"notice\":\"Get adapter for a token\"},\"getOperatorSlashFactor(address,bytes32)\":{\"notice\":\"Reserved getter for the historical slash factor (unused with share-based pools)\"},\"getPendingSlashCount(address)\":{\"notice\":\"Get pending slash count for an operator\"},\"getSlashCount(address)\":{\"notice\":\"Get total slashes for an operator\"},\"getSlashCountForBlueprint(uint64,address)\":{\"notice\":\"Get slash count for an operator in a specific blueprint\"},\"getSlashCountForService(uint64,address)\":{\"notice\":\"Get slash count for an operator in a specific service\"},\"getSlashImpact(address,uint64,address)\":{\"notice\":\"Calculate how much a delegator lost from a specific slash\"},\"getSlashRecord(address,uint64)\":{\"notice\":\"Get slash record details\"},\"getSnapshot(uint64,address)\":{\"notice\":\"Get snapshot for an operator at a specific round\"},\"initialize(address,uint256,uint256,uint16)\":{\"notice\":\"Initialize the contract\"},\"lastRoundAdvance()\":{\"notice\":\"Timestamp when the last round was advanced\"},\"leaveDelegatorsDelay()\":{\"notice\":\"Delay for delegator withdrawals (in rounds)\"},\"leaveOperatorsDelay()\":{\"notice\":\"Delay for operator exit (in rounds)\"},\"nativeEnabled()\":{\"notice\":\"Whether native asset is enabled\"},\"nextSlashId(address)\":{\"notice\":\"Next slash ID per operator\"},\"operatorCommissionBps()\":{\"notice\":\"Operator commission rate in basis points\"},\"registerFacet(address)\":{\"notice\":\"Register selectors exposed by a facet\"},\"registerFacetSelectors(address,bytes4[])\":{\"notice\":\"Register specific selectors for a facet\"},\"requireAdapters()\":{\"notice\":\"Whether to require adapters for all ERC20 deposits\"},\"resetPendingSlashCount(address,uint64)\":{\"notice\":\"Force `_operatorPendingSlashCount[operator]` to `count`.\"},\"roundDuration()\":{\"notice\":\"Seconds per round (used for time-based rate limiting)\"},\"serviceSlashCount(uint64,address)\":{\"notice\":\"Slash count per service: serviceId => operator => count\"},\"slashHistory(address,uint64)\":{\"notice\":\"Slash history per operator: operator => slashId => record\"}},\"notice\":\"Router contract for multi-asset staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/staking/MultiAssetDelegation.sol\":\"MultiAssetDelegation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"dependencies/@openzeppelin-contracts-5.1.0/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"dependencies/@openzeppelin-contracts-5.1.0/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"src/config/ProtocolConfig.sol\":{\"keccak256\":\"0xda06b8ecdb1411e76c5b44a49f4e28d1559b4e1d3c58ce53db131a5f24798fd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0627775dfb1cb33a25ee9d8d270e97b7493ba94e9c8767a600c1da0c2e5dbf00\",\"dweb:/ipfs/QmdKMzcZ7xYtwsJ7vLJFr9yajASLWSmBizqAnNiEb3BUHc\"]},\"src/facets/FacetRouterBase.sol\":{\"keccak256\":\"0x1ee828caa24010fb394785560099b30e3ae8029670541422950e53a0fbe4bc8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60b734f7c8ef31ce27d27cf8d3e2ebdec1a643164231bae6af06cc3b380c6cfa\",\"dweb:/ipfs/Qmddq6SmDvpFghfCWugA67omCbxeAmwKedoxDVbeyRN8DD\"]},\"src/interfaces/IFacetSelectors.sol\":{\"keccak256\":\"0x40f3b342132fb05c532582f892c9770741574faec41902ec64e1d44848cdd3b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc36a0c26902bab2cff79e3a710a99b7cfcaa33879398737a2b21dfef2c0fcf3\",\"dweb:/ipfs/QmTUQNuvgGuRRuXycvtYDB5h2FUYM1u5gtcedeVNokbYBo\"]},\"src/interfaces/IRewardsManager.sol\":{\"keccak256\":\"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5\",\"dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k\"]},\"src/interfaces/IServiceFeeDistributor.sol\":{\"keccak256\":\"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3\",\"dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662\",\"dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y\"]},\"src/staking/DelegationErrors.sol\":{\"keccak256\":\"0x76926e780f34671c68ab5aff1973d337cbe6fc69d9366ee9daaf9fb00fc51c47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3500d473c17e4ff1ad2a058be1713ca08ecd121858f63f50c9a0964b2fefb8\",\"dweb:/ipfs/QmedZTSgjtZVPovjvNsKYFo2cx4RXY1yejyk9H73ZyjU2t\"]},\"src/staking/DelegationManagerLib.sol\":{\"keccak256\":\"0x24efc9fce4fb905ddd6d03de54098121bbdf7949673a81bc9acb4b5c83125fbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56af1504bb1374300c08519debaae3a18b3569be797d286b486560b15dd7756b\",\"dweb:/ipfs/QmQDpJm2YgZ81o96hx7po2mBToDJmPhNDbqXe3DyZy48Tq\"]},\"src/staking/DelegationStorage.sol\":{\"keccak256\":\"0xdbe45e7fb5f2535ab49aafe8adec875b5af30a18123ab6301865e7ef6bd4d91e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a653dcaac885e24477a12b6409fb0ec93f13d5f1a51709c88aec8de826f776e\",\"dweb:/ipfs/QmSZ1YEzpXbFPfXrFF3ujvgchgJteBsFnNw9S1YgUqPKQc\"]},\"src/staking/DepositManager.sol\":{\"keccak256\":\"0x1cc34501b0d479352c0790876da0266bfbaef45b037fa78f5910c5e6c375fe46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b998aaf888fdd900886288da270bf6bbedd26d596b73a413808589a2c63325b9\",\"dweb:/ipfs/QmTXEEmb2N8tMdfpKm6DkWg1uPSiqpr8xyQmC45f5g7dMY\"]},\"src/staking/MultiAssetDelegation.sol\":{\"keccak256\":\"0x88cb124f0e243834b2d86bca8f2a88dd8396a2e6b618665670874c7f7440fb83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aaa492fd72f3bcd34a7736dfe935c8791d0624dd542bb4f685af5e7cf7f0423\",\"dweb:/ipfs/QmUFPi7WxPENHA7A3hg4q1dy3ipNbB6LFnmnUiFLZR8DSx\"]},\"src/staking/OperatorManager.sol\":{\"keccak256\":\"0xf362791e74d74757b67b7aaac34ac01a32c50b434c4a44182a613312d07752ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2a3790af9bceae26e4368cadf2d6507025d9cacf4bb1bc827d338a03d502e4c\",\"dweb:/ipfs/QmThzrdGJhXSixESvuJKaFncqw2gSqPmBVDdwNacdmSDA4\"]},\"src/staking/RewardsManager.sol\":{\"keccak256\":\"0x1bdae9f62162b9620ae8134c8e5cbb9d2724bb0c1168e7987b403a486702df21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7cd6bef2f368bd9c67c36ce8702ad7086222ec72f073dce2f27f068261dce57\",\"dweb:/ipfs/Qmf93doWDecxbUVbKmm3SruYVEHCWm7ncVbrEhTUAFYshy\"]},\"src/staking/SlashingManager.sol\":{\"keccak256\":\"0x1bd0b3b1ad9555d8c6cbe6a6b1b05eb709f219984780816fa074f8053523cbc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea85d5d9052165faf4b58cb3eb81665d5f7292ccff74bc35658ebdcc7d9bff4\",\"dweb:/ipfs/QmQD94GzYRmwWHGg6sM797MB3cmgSiVUV4237FiBNDNRiu\"]},\"src/staking/adapters/IAssetAdapter.sol\":{\"keccak256\":\"0xd454eaaa529503ea2fffb926279300975ab0a327ece77d150926b0e07aabb061\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41f8e3e4b11c4f1cf9eb1681ffb4cd89beaf180433b0930098f6ea84c049e44\",\"dweb:/ipfs/QmPsguZ8XqaQv7EgYxyMaSHgxA9z2FGSrvamcAPiR95jnW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"NotAContract"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"address","name":"existingFacet","type":"address"}],"type":"error","name":"SelectorAlreadyRegistered"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"type":"error","name":"UnknownSelector"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintAddedToDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"uint256","name":"delegationIndex","type":"uint256","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":false}],"type":"event","name":"BlueprintRemovedFromDelegation","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"enum Types.BlueprintSelectionMode","name":"selectionMode","type":"uint8","indexed":false}],"type":"event","name":"Delegated","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DelegatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false},{"internalType":"uint256","name":"estimatedAmount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"DelegatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"enum Types.LockMultiplier","name":"lock","type":"uint8","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalDust","type":"uint256","indexed":false}],"type":"event","name":"DustAccumulated","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"DustSwept","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"count","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalAmount","type":"uint256","indexed":false}],"type":"event","name":"ExpiredLocksHarvested","anonymous":false},{"inputs":[{"internalType":"address","name":"facet","type":"address","indexed":true}],"type":"event","name":"FacetRegistered","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":true}],"type":"event","name":"FacetSelectorCleared","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":true},{"internalType":"address","name":"facet","type":"address","indexed":true}],"type":"event","name":"FacetSelectorSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true}],"type":"event","name":"OperatorBlueprintRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum Types.DelegationMode","name":"mode","type":"uint8","indexed":false}],"type":"event","name":"OperatorDelegationModeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorLeavingScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"stake","type":"uint256","indexed":false}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorStakeIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OperatorUnstakeExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"OperatorUnstakeScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"OperatorWhitelistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashCountReset","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashDecremented","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"newCount","type":"uint64","indexed":false}],"type":"event","name":"PendingSlashIncremented","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"slashId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"SlashRecorded","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"bytes32","name":"assetHash","type":"bytes32","indexed":false},{"internalType":"uint16","name":"slashBps","type":"uint16","indexed":false},{"internalType":"uint256","name":"operatorSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"delegatorsSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256","indexed":false}],"type":"event","name":"Slashed","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"uint256","name":"totalSlashed","type":"uint256","indexed":false},{"internalType":"uint256","name":"commitmentCount","type":"uint256","indexed":false}],"type":"event","name":"SlashedForService","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint64","name":"readyRound","type":"uint64","indexed":false}],"type":"event","name":"WithdrawScheduled","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMISSION_CHANGE_DELAY","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_ONE_MONTH","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_SIX_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_THREE_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LOCK_TWO_MONTHS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_LOCK_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_NONE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_ONE_MONTH","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_SIX_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_THREE_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MULTIPLIER_TWO_MONTHS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TANGLE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VIRTUAL_ASSETS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VIRTUAL_SHARES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"blueprintSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"clearFacetSelectors"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentRound","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegationBondLessDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetForSelector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAccumulatedDust","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getAssetAdapter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOperatorSlashFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getPendingSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForBlueprint","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashCountForService","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashId","type":"uint64"},{"internalType":"address","name":"delegator","type":"address"}],"stateMutability":"view","type":"function","name":"getSlashImpact","outputs":[{"internalType":"uint256","name":"lostAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"slashId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashRecord","outputs":[{"internalType":"struct SlashingManager.SlashRecord","name":"","type":"tuple","components":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getSnapshot","outputs":[{"internalType":"struct Types.OperatorSnapshot","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"totalDelegated","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"nativeMinOperatorStake","type":"uint256"},{"internalType":"uint256","name":"nativeMinDelegation","type":"uint256"},{"internalType":"uint16","name":"_operatorCommissionBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastRoundAdvance","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveDelegatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"leaveOperatorsDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nextSlashId","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorCommissionBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"facet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerFacet"},{"inputs":[{"internalType":"address","name":"facet","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"registerFacetSelectors"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"view","type":"function","name":"requireAdapters","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"resetPendingSlashCount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"view","type":"function","name":"roundDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"serviceSlashCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"slashHistory","outputs":[{"internalType":"uint64","name":"round","type":"uint64"},{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"bytes32","name":"assetHash","type":"bytes32"},{"internalType":"uint16","name":"slashBps","type":"uint16"},{"internalType":"uint256","name":"totalSlashed","type":"uint256"},{"internalType":"uint256","name":"exchangeRateBefore","type":"uint256"},{"internalType":"uint256","name":"exchangeRateAfter","type":"uint256"},{"internalType":"bytes32","name":"evidence","type":"bytes32"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAccumulatedDust(address)":{"params":{"token":"The token address (address(0) for native)"},"returns":{"_0":"The accumulated dust amount"}},"getAssetAdapter(address)":{"params":{"token":"Token address"},"returns":{"_0":"adapter Adapter address (or zero if none)"}},"getOperatorSlashFactor(address,bytes32)":{"details":"Returns PRECISION (1e18) if unset"},"getPendingSlashCount(address)":{"params":{"operator":"The operator to query"},"returns":{"_0":"count Number of pending slashes"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getSlashCountForBlueprint(uint64,address)":{"params":{"blueprintId":"The blueprint ID","operator":"The operator address"},"returns":{"_0":"count Number of times operator was slashed in services of this blueprint"}},"getSlashCountForService(uint64,address)":{"params":{"operator":"The operator address","serviceId":"The service ID"},"returns":{"_0":"count Number of times operator was slashed in this service"}},"getSlashImpact(address,uint64,address)":{"params":{"delegator":"The delegator to check","operator":"The operator that was slashed","slashId":"The slash event ID"},"returns":{"lostAmount":"Approximate amount lost due to this slash"}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,uint256,uint256,uint16)":{"params":{"_operatorCommissionBps":"Operator commission in basis points","admin":"Admin address","nativeMinDelegation":"Minimum delegation amount","nativeMinOperatorStake":"Minimum stake for operators"}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"resetPendingSlashCount(address,uint64)":{"details":"Admin recovery for cases where the per-operator pending-slash counter drifts from the true count of un-finalized proposals targeting the operator. Bypasses the normal increment/decrement path so it must only be called after verifying the correct count off-chain."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"COMMISSION_CHANGE_DELAY()":{"notice":"Timelock delay for commission changes (7 days)"},"blueprintSlashCount(uint64,address)":{"notice":"Slash count per blueprint: blueprintId => operator => count"},"clearFacetSelectors(bytes4[])":{"notice":"Remove selectors from the router"},"currentRound()":{"notice":"Current round number"},"delegationBondLessDelay()":{"notice":"Delay for unstaking delegations (in rounds)"},"facetForSelector(bytes4)":{"notice":"Resolve the facet for a selector"},"getAccumulatedDust(address)":{"notice":"Get accumulated dust for a token"},"getAssetAdapter(address)":{"notice":"Get adapter for a token"},"getOperatorSlashFactor(address,bytes32)":{"notice":"Reserved getter for the historical slash factor (unused with share-based pools)"},"getPendingSlashCount(address)":{"notice":"Get pending slash count for an operator"},"getSlashCount(address)":{"notice":"Get total slashes for an operator"},"getSlashCountForBlueprint(uint64,address)":{"notice":"Get slash count for an operator in a specific blueprint"},"getSlashCountForService(uint64,address)":{"notice":"Get slash count for an operator in a specific service"},"getSlashImpact(address,uint64,address)":{"notice":"Calculate how much a delegator lost from a specific slash"},"getSlashRecord(address,uint64)":{"notice":"Get slash record details"},"getSnapshot(uint64,address)":{"notice":"Get snapshot for an operator at a specific round"},"initialize(address,uint256,uint256,uint16)":{"notice":"Initialize the contract"},"lastRoundAdvance()":{"notice":"Timestamp when the last round was advanced"},"leaveDelegatorsDelay()":{"notice":"Delay for delegator withdrawals (in rounds)"},"leaveOperatorsDelay()":{"notice":"Delay for operator exit (in rounds)"},"nativeEnabled()":{"notice":"Whether native asset is enabled"},"nextSlashId(address)":{"notice":"Next slash ID per operator"},"operatorCommissionBps()":{"notice":"Operator commission rate in basis points"},"registerFacet(address)":{"notice":"Register selectors exposed by a facet"},"registerFacetSelectors(address,bytes4[])":{"notice":"Register specific selectors for a facet"},"requireAdapters()":{"notice":"Whether to require adapters for all ERC20 deposits"},"resetPendingSlashCount(address,uint64)":{"notice":"Force `_operatorPendingSlashCount[operator]` to `count`."},"roundDuration()":{"notice":"Seconds per round (used for time-based rate limiting)"},"serviceSlashCount(uint64,address)":{"notice":"Slash count per service: serviceId => operator => count"},"slashHistory(address,uint64)":{"notice":"Slash history per operator: operator => slashId => record"}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/staking/MultiAssetDelegation.sol":"MultiAssetDelegation"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/PausableUpgradeable.sol":{"keccak256":"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97","urls":["bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007","dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.1.0/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"src/config/ProtocolConfig.sol":{"keccak256":"0xda06b8ecdb1411e76c5b44a49f4e28d1559b4e1d3c58ce53db131a5f24798fd2","urls":["bzz-raw://0627775dfb1cb33a25ee9d8d270e97b7493ba94e9c8767a600c1da0c2e5dbf00","dweb:/ipfs/QmdKMzcZ7xYtwsJ7vLJFr9yajASLWSmBizqAnNiEb3BUHc"],"license":"MIT"},"src/facets/FacetRouterBase.sol":{"keccak256":"0x1ee828caa24010fb394785560099b30e3ae8029670541422950e53a0fbe4bc8e","urls":["bzz-raw://60b734f7c8ef31ce27d27cf8d3e2ebdec1a643164231bae6af06cc3b380c6cfa","dweb:/ipfs/Qmddq6SmDvpFghfCWugA67omCbxeAmwKedoxDVbeyRN8DD"],"license":"MIT"},"src/interfaces/IFacetSelectors.sol":{"keccak256":"0x40f3b342132fb05c532582f892c9770741574faec41902ec64e1d44848cdd3b4","urls":["bzz-raw://fc36a0c26902bab2cff79e3a710a99b7cfcaa33879398737a2b21dfef2c0fcf3","dweb:/ipfs/QmTUQNuvgGuRRuXycvtYDB5h2FUYM1u5gtcedeVNokbYBo"],"license":"MIT"},"src/interfaces/IRewardsManager.sol":{"keccak256":"0x4d875d7ac7b94babb254ec8fedeeaeda1f71559bb47dd6ed228b1a7047c9e6a9","urls":["bzz-raw://8d53a27f78d0256bc459dea8c5474c78ed416fab01402b9041b6c5f846d920b5","dweb:/ipfs/Qmbd9QF4PvbTMP89Dx3Knn64dWPDBfPu7p4qYBkUeJAd5k"],"license":"MIT"},"src/interfaces/IServiceFeeDistributor.sol":{"keccak256":"0x0ca2caed089e5a1b01733dbfdede530c73171ce4e9dfdc27717fcafbc0dace6a","urls":["bzz-raw://5324f16a90dd2616ea8f845c40cc50819c026cab85e6b938f5b9a56069dfa8a3","dweb:/ipfs/QmTVhSitL3Y4YDFVzFr4XWgUHUoorGbAkPcKJJbPU61qFT"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0xe8769cf6f84e0561d7ecb019d1ac4ddb90a8a267223c3fdeddc57399d28e4b17","urls":["bzz-raw://293c2686e0548a2b312fc7b0f9c2a2b54338a5cfe5f6c4790cb56b9e17ee5662","dweb:/ipfs/QmSQiEoaphXqHQUdf66Jvb5WLtbFvcAhQ9CdPyE4Cc3t4Y"],"license":"MIT"},"src/staking/DelegationErrors.sol":{"keccak256":"0x76926e780f34671c68ab5aff1973d337cbe6fc69d9366ee9daaf9fb00fc51c47","urls":["bzz-raw://7a3500d473c17e4ff1ad2a058be1713ca08ecd121858f63f50c9a0964b2fefb8","dweb:/ipfs/QmedZTSgjtZVPovjvNsKYFo2cx4RXY1yejyk9H73ZyjU2t"],"license":"MIT"},"src/staking/DelegationManagerLib.sol":{"keccak256":"0x24efc9fce4fb905ddd6d03de54098121bbdf7949673a81bc9acb4b5c83125fbd","urls":["bzz-raw://56af1504bb1374300c08519debaae3a18b3569be797d286b486560b15dd7756b","dweb:/ipfs/QmQDpJm2YgZ81o96hx7po2mBToDJmPhNDbqXe3DyZy48Tq"],"license":"MIT"},"src/staking/DelegationStorage.sol":{"keccak256":"0xdbe45e7fb5f2535ab49aafe8adec875b5af30a18123ab6301865e7ef6bd4d91e","urls":["bzz-raw://0a653dcaac885e24477a12b6409fb0ec93f13d5f1a51709c88aec8de826f776e","dweb:/ipfs/QmSZ1YEzpXbFPfXrFF3ujvgchgJteBsFnNw9S1YgUqPKQc"],"license":"MIT"},"src/staking/DepositManager.sol":{"keccak256":"0x1cc34501b0d479352c0790876da0266bfbaef45b037fa78f5910c5e6c375fe46","urls":["bzz-raw://b998aaf888fdd900886288da270bf6bbedd26d596b73a413808589a2c63325b9","dweb:/ipfs/QmTXEEmb2N8tMdfpKm6DkWg1uPSiqpr8xyQmC45f5g7dMY"],"license":"MIT"},"src/staking/MultiAssetDelegation.sol":{"keccak256":"0x88cb124f0e243834b2d86bca8f2a88dd8396a2e6b618665670874c7f7440fb83","urls":["bzz-raw://5aaa492fd72f3bcd34a7736dfe935c8791d0624dd542bb4f685af5e7cf7f0423","dweb:/ipfs/QmUFPi7WxPENHA7A3hg4q1dy3ipNbB6LFnmnUiFLZR8DSx"],"license":"MIT"},"src/staking/OperatorManager.sol":{"keccak256":"0xf362791e74d74757b67b7aaac34ac01a32c50b434c4a44182a613312d07752ea","urls":["bzz-raw://a2a3790af9bceae26e4368cadf2d6507025d9cacf4bb1bc827d338a03d502e4c","dweb:/ipfs/QmThzrdGJhXSixESvuJKaFncqw2gSqPmBVDdwNacdmSDA4"],"license":"MIT"},"src/staking/RewardsManager.sol":{"keccak256":"0x1bdae9f62162b9620ae8134c8e5cbb9d2724bb0c1168e7987b403a486702df21","urls":["bzz-raw://f7cd6bef2f368bd9c67c36ce8702ad7086222ec72f073dce2f27f068261dce57","dweb:/ipfs/Qmf93doWDecxbUVbKmm3SruYVEHCWm7ncVbrEhTUAFYshy"],"license":"MIT"},"src/staking/SlashingManager.sol":{"keccak256":"0x1bd0b3b1ad9555d8c6cbe6a6b1b05eb709f219984780816fa074f8053523cbc5","urls":["bzz-raw://6ea85d5d9052165faf4b58cb3eb81665d5f7292ccff74bc35658ebdcc7d9bff4","dweb:/ipfs/QmQD94GzYRmwWHGg6sM797MB3cmgSiVUV4237FiBNDNRiu"],"license":"MIT"},"src/staking/adapters/IAssetAdapter.sol":{"keccak256":"0xd454eaaa529503ea2fffb926279300975ab0a327ece77d150926b0e07aabb061","urls":["bzz-raw://c41f8e3e4b11c4f1cf9eb1681ffb4cd89beaf180433b0930098f6ea84c049e44","dweb:/ipfs/QmPsguZ8XqaQv7EgYxyMaSHgxA9z2FGSrvamcAPiR95jnW"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file diff --git a/bindings/abi/OperatorStatusRegistry.json b/bindings/abi/OperatorStatusRegistry.json index cec18a9b..1bc43acd 100644 --- a/bindings/abi/OperatorStatusRegistry.json +++ b/bindings/abi/OperatorStatusRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_tangleCore","type":"address","internalType":"address"},{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_HEARTBEAT_INTERVAL","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_MAX_MISSED_HEARTBEATS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"HEARTBEAT_MAX_AGE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"HEARTBEAT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_METRIC_DEFINITIONS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_METRIC_NAME_LENGTH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_PAGE_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_ALERT_COOLDOWN","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMetricDefinition","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkOperatorStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkOperatorsStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decodeMetricPairs","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pairs","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricPair[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"deregisterOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableCustomMetrics","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllOperatorCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IOperatorStatusRegistry.HeartbeatConfig","components":[{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"},{"name":"customMetrics","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getLastCriticalHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetricDefinitions","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getMetricValue","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"metricName","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOnlineOperatorCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOnlineOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorState","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IOperatorStatusRegistry.OperatorState","components":[{"name":"lastHeartbeat","type":"uint256","internalType":"uint256"},{"name":"consecutiveBeats","type":"uint64","internalType":"uint64"},{"name":"missedBeats","type":"uint8","internalType":"uint8"},{"name":"status","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"lastMetricsHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"}],"stateMutability":"view"},{"type":"function","name":"getSlashableOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"operators","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSlashableOperatorsPaginated","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"goOffline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"goOnline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"heartbeatConfigs","inputs":[{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"},{"name":"customMetrics","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isHeartbeatCurrent","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOnline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"metricValues","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"metricsRecorder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorStates","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"lastHeartbeat","type":"uint256","internalType":"uint256"},{"name":"consecutiveBeats","type":"uint64","internalType":"uint64"},{"name":"missedBeats","type":"uint8","internalType":"uint8"},{"name":"status","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"lastMetricsHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerServiceOwner","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeInactiveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reportForSlashing","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceMetrics","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"serviceOwners","inputs":[{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMetricDefinitions","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"definitions","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMetricsRecorder","inputs":[{"name":"recorder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashingOracle","inputs":[{"name":"oracle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashingOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"submitHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"statusCode","type":"uint8","internalType":"uint8"},{"name":"metrics","type":"bytes","internalType":"bytes"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitHeartbeatDirect","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"statusCode","type":"uint8","internalType":"uint8"},{"name":"metrics","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tangleCore","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAndStoreMetrics","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"pairs","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricPair[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"pairsLen","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"HeartbeatConfigUpdated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"interval","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"maxMissed","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"HeartbeatReceived","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"statusCode","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetricReported","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"metricName","type":"string","indexed":false,"internalType":"string"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetricViolation","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"metricName","type":"string","indexed":false,"internalType":"string"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorCameOnline","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorDeregistered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorWentOffline","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"missedBeats","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SlashingTriggered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StatusChanged","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"oldStatus","type":"uint8","indexed":false,"internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"newStatus","type":"uint8","indexed":false,"internalType":"enum IOperatorStatusRegistry.StatusCode"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"HeartbeatFromFuture","inputs":[{"name":"signed","type":"uint64","internalType":"uint64"},{"name":"now_","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"HeartbeatStale","inputs":[{"name":"signed","type":"uint64","internalType":"uint64"},{"name":"now_","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c0604052346100655761001a610014610139565b90610216565b61002261006a565b617a9c6104d38239608051818181610ecf01526138f1015260a05181818161144e015281816126a3015281816133f4015281816156f501526162b00152617a9c90f35b610070565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b9061009c90610074565b810190811060018060401b038211176100b457604052565b61007e565b906100cc6100c561006a565b9283610092565b565b5f80fd5b60018060a01b031690565b6100e6906100d2565b90565b6100f2816100dd565b036100f957565b5f80fd5b9050519061010a826100e9565b565b91906040838203126101345780610128610131925f86016100fd565b936020016100fd565b90565b6100ce565b610157617f6f8038038061014c816100b9565b92833981019061010c565b9091565b90565b61017261016d610177926100d2565b61015b565b6100d2565b90565b6101839061015e565b90565b61018f9061017a565b90565b90565b61019e90610192565b9052565b90565b6101ae906101a2565b9052565b6101bb906100dd565b9052565b9095949261020a946101f9610203926101ef6080966101e560a088019c5f890190610195565b6020870190610195565b6040850190610195565b60608301906101a5565b01906101b2565b565b60200190565b5190565b90610220906102d3565b60a0527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6102bb7f36ffc258c865193ae10c3cf640450ab772fdb8da1dfcae7862ad1205a5567f4c916102ac7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64661029730610186565b916102a061006a565b968795602087016101bf565b60208201810382520382610092565b6102cd6102c782610212565b9161020c565b20608052565b6102dc9061031e565b565b90565b6102f56102f06102fa926102de565b61015b565b6100d2565b90565b610306906102e1565b90565b919061031c905f602085019401906101b2565b565b8061033961033361032e5f6102fd565b6100dd565b916100dd565b1461034957610347906103e7565b565b61036c6103555f6102fd565b5f918291631e4fbdf760e01b835260048301610309565b0390fd5b1b90565b9190600861039491029161038e60018060a01b0384610370565b92610370565b9181191691161790565b6103a79061017a565b90565b90565b91906103c36103be6103cb9361039e565b6103aa565b908354610374565b9055565b5f90565b6103e5916103df6103cf565b916103ad565b565b6103fb906103f65f60016103d3565b610473565b565b5f1c90565b60018060a01b031690565b61041961041e916103fd565b610402565b90565b61042b905461040d565b90565b5f1b90565b9061044460018060a01b039161042e565b9181191691161790565b9061046361045e61046a9261039e565b6103aa565b8254610433565b9055565b5f0190565b61047c5f610421565b610486825f61044e565b906104ba6104b47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361039e565b9161039e565b916104c361006a565b806104cd8161046e565b0390a356fe60806040526004361015610013575b6124f9565b61001d5f3561039c565b806305778550146103975780630758236f146103925780630c76697a1461038d578063191cbd1a146103885780631e8f5ee514610383578063208129561461037e57806322f1ec93146103795780632bf4d6a7146103745780632c9576881461036f5780632dae18851461036a5780632f4bd7b81461036557806331e3bd1b146103605780633644e5151461035b5780633ac3cbe6146103565780633e6e34a7146103515780633fd62c6d1461034c57806340235a9c1461034757806348f4da20146103425780635685cf681461033d57806356c4e17d1461033857806359dcea12146103335780635a936dc61461032e5780635cce98a6146103295780636076439c1461032457806360cf09911461031f57806361d6b86c1461031a57806362c7e8fc1461031557806365a6936e146103105780636bfe06a61461030b578063715018a61461030657806371e7388c146103015780637639d227146102fc57806379ba5097146102f75780637b9f64b2146102f257806381beac2e146102ed57806384ef7322146102e85780638da5cb5b146102e357806396686c1e146102de5780639cbdae22146102d9578063adff830c146102d4578063ae470a85146102cf578063b074e9dd146102ca578063b99f6759146102c5578063ba1fb103146102c0578063c1ef9ddf146102bb578063c5d960bb146102b6578063cfe34749146102b1578063d551162c146102ac578063da435a7c146102a7578063e30c3978146102a2578063e65cafcb1461029d578063ee1c039014610298578063f2fde38b14610293578063f9107f3b1461028e578063f9f16762146102895763ffcf08f00361000e576124c5565b612490565b61242d565b6123cd565b612397565b612363565b61232e565b6122f6565b612224565b6121ef565b6121ad565b612178565b61204e565b61201a565b611fad565b611f73565b611eaa565b611de7565b611c60565b611baa565b611b77565b611b40565b611aab565b611a78565b611a42565b611a0c565b611950565b61191b565b6118ad565b611672565b611628565b6115a6565b611571565b611503565b611470565b611417565b6113e2565b61137d565b611333565b6112c7565b6111f3565b6111b9565b610f83565b610f16565b610e97565b610d1e565b610cd0565b610c35565b610b8f565b610a62565b6106c0565b61066e565b61063a565b610577565b61051d565b61044e565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060401b031690565b6103c8816103b4565b036103cf57565b5f80fd5b905035906103e0826103bf565b565b60018060a01b031690565b6103f6906103e2565b90565b610402816103ed565b0361040957565b5f80fd5b9050359061041a826103f9565b565b91906040838203126104445780610438610441925f86016103d3565b9360200161040d565b90565b6103ac565b5f0190565b3461047d5761046761046136600461041c565b90612690565b61046f6103a2565b8061047981610449565b0390f35b6103a8565b9060208282031261049b57610498915f016103d3565b90565b6103ac565b6104a9906103b4565b9052565b60ff1690565b6104bc906104ad565b9052565b151590565b6104ce906104c0565b9052565b90604080610506936104ea5f8201515f8601906104a0565b6104fc602082015160208601906104b3565b01519101906104c5565b565b919061051b905f606085019401906104d2565b565b3461054d57610549610538610533366004610482565b61276f565b6105406103a2565b91829182610508565b0390f35b6103a8565b90565b61055e90610552565b9052565b9190610575905f60208501940190610555565b565b346105a8576105a461059361058d36600461041c565b90612788565b61059b6103a2565b91829182610562565b0390f35b6103a8565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156105f15781359160018060401b0383116105ec5760200192602083028401116105e757565b6105b5565b6105b1565b6105ad565b9190916040818403126106355761060f835f83016103d3565b92602082013560018060401b0381116106305761062c92016105b9565b9091565b6103b0565b6103ac565b346106695761065361064d3660046105f6565b916130fe565b61065b6103a2565b8061066581610449565b0390f35b6103a8565b3461069d5761068761068136600461041c565b906133e8565b61068f6103a2565b8061069981610449565b0390f35b6103a8565b906020828203126106bb576106b8915f0161040d565b90565b6103ac565b346106ee576106d86106d33660046106a2565b61351d565b6106e06103a2565b806106ea81610449565b0390f35b6103a8565b6106fc81610552565b0361070357565b5f80fd5b90503590610714826106f3565b565b919060408382031261073e578061073261073b925f86016103d3565b93602001610707565b90565b6103ac565b90565b61075a61075561075f926103b4565b610743565b6103b4565b90565b9061076c90610746565b5f5260205260405f2090565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b5f5260205f2090565b6107ab8161078c565b8210156107c5576107bd600491610790565b910201905f90565b610778565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107fe575b60208310146107f957565b6107ca565b91607f16916107ee565b60209181520190565b5f5260205f2090565b905f929180549061083461082d836107de565b8094610808565b916001811690815f1461088b575060011461084f575b505050565b61085c9192939450610811565b915f925b81841061087357505001905f808061084a565b60018160209295939554848601520191019290610860565b92949550505060ff19168252151560200201905f808061084a565b906108b09161081a565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906108db906108b3565b810190811060018060401b038211176108f357604052565b6108bd565b90610918610911926109086103a2565b938480926108a6565b03836108d1565b565b5f1c90565b90565b61092e6109339161091a565b61091f565b90565b6109409054610922565b90565b60ff1690565b61095561095a9161091a565b610943565b90565b6109679054610949565b90565b610975906008610762565b9061097f8261078c565b8110156109c55761098f916107a2565b509061099c5f83016108f8565b916109a960018201610936565b916109c260036109bb60028501610936565b930161095d565b90565b5f80fd5b5190565b60209181520190565b90825f9392825e0152565b610a00610a09602093610a0e936109f7816109c9565b938480936109cd565b958691016109d6565b6108b3565b0190565b610a1b906104c0565b9052565b610a59610a6094610a4f610a446060959998969960808601908682035f8801526109e1565b986020850190610555565b6040830190610555565b0190610a12565b565b34610a9757610a93610a7e610a78366004610716565b9061096a565b90610a8a9492946103a2565b94859485610a1f565b0390f35b6103a8565b610aa5816104ad565b03610aac57565b5f80fd5b90503590610abd82610a9c565b565b909182601f83011215610af75781359160018060401b038311610af2576020019260018302840111610aed57565b6105b5565b6105b1565b6105ad565b919060c083820312610b8a57610b14815f85016103d3565b92610b2282602083016103d3565b92610b308360408401610ab0565b92606083013560018060401b038111610b855781610b4f918501610abf565b929093610b5f83608083016103d3565b9260a082013560018060401b038111610b8057610b7c9201610abf565b9091565b6103b0565b6103b0565b6103ac565b34610bc757610bb1610ba2366004610afc565b969590959491949392936139ca565b610bb96103a2565b80610bc381610449565b0390f35b6103a8565b5f910312610bd657565b6103ac565b90565b610bf2610bed610bf792610bdb565b610743565b6103b4565b90565b610c0561012c610bde565b90565b610c10610bfa565b90565b610c1c906103b4565b9052565b9190610c33905f60208501940190610c13565b565b34610c6557610c45366004610bcc565b610c61610c50610c08565b610c586103a2565b91829182610c20565b0390f35b6103a8565b1c90565b60018060a01b031690565b610c89906008610c8e9302610c6a565b610c6e565b90565b90610c9c9154610c79565b90565b610cab600b5f90610c91565b90565b610cb7906103ed565b9052565b9190610cce905f60208501940190610cae565b565b34610d0057610ce0366004610bcc565b610cfc610ceb610c9f565b610cf36103a2565b91829182610cbb565b0390f35b6103a8565b610d1061012c610bde565b90565b610d1b610d05565b90565b34610d4e57610d2e366004610bcc565b610d4a610d39610d13565b610d416103a2565b91829182610c20565b0390f35b6103a8565b90602082820312610d82575f82013560018060401b038111610d7d57610d799201610abf565b9091565b6103b0565b6103ac565b5190565b60209181520190565b60200190565b610db9610dc2602093610dc793610db0816109c9565b93848093610808565b958691016109d6565b6108b3565b0190565b610dd490610552565b9052565b90610e0290602080610df7604084015f8701518582035f870152610d9a565b940151910190610dcb565b90565b90610e0f91610dd8565b90565b60200190565b90610e2c610e2583610d87565b8092610d8b565b9081610e3d60208302840194610d94565b925f915b838310610e5057505050505090565b90919293946020610e72610e6c83856001950387528951610e05565b97610e12565b9301930191939290610e41565b610e949160208201915f818403910152610e18565b90565b34610ec857610ec4610eb3610ead366004610d53565b90613a14565b610ebb6103a2565b91829182610e7f565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b90565b610efd90610ef1565b9052565b9190610f14905f60208501940190610ef4565b565b34610f4657610f26366004610bcc565b610f42610f31610ecd565b610f396103a2565b91829182610f01565b0390f35b6103a8565b90565b610f62610f5d610f6792610f4b565b610743565b6103b4565b90565b610f75610e10610f4e565b90565b610f80610f6a565b90565b34610fb357610f93366004610bcc565b610faf610f9e610f78565b610fa66103a2565b91829182610c20565b0390f35b6103a8565b90610fc290610746565b5f5260205260405f2090565b610fe2610fdd610fe7926103e2565b610743565b6103e2565b90565b610ff390610fce565b90565b610fff90610fea565b90565b9061100c90610ff6565b5f5260205260405f2090565b60018060401b031690565b61102f6110349161091a565b611018565b90565b6110419054611023565b90565b60401c90565b60ff1690565b61105c61106191611044565b61104a565b90565b61106e9054611050565b90565b60481c90565b60ff1690565b61108961108e91611071565b611077565b90565b61109b905461107d565b90565b90565b6110ad6110b29161091a565b61109e565b90565b6110bf90546110a1565b90565b906110d16110d6926003610fb8565b611002565b6110e15f8201610936565b916110ee60018301611037565b916110fb60018201611064565b91611114600261110d60018501611091565b93016110b5565b90565b611120906104ad565b9052565b634e487b7160e01b5f52602160045260245ffd5b6005111561114257565b611124565b9061115182611138565b565b61115c90611147565b90565b61116890611153565b9052565b909594926111b7946111a66111b09261119c60809661119260a088019c5f890190610555565b6020870190610c13565b6040850190611117565b606083019061115f565b0190610ef4565b565b346111ee576111ea6111d56111cf36600461041c565b906110c2565b916111e19593956103a2565b9586958661116c565b0390f35b6103a8565b346112235761121f61120e611209366004610482565b613a2e565b6112166103a2565b91829182610562565b0390f35b6103a8565b5190565b60209181520190565b60200190565b611244906103ed565b9052565b906112558160209361123b565b0190565b60200190565b9061127c61127661126f84611228565b809361122c565b92611235565b905f5b81811061128c5750505090565b9091926112a561129f6001928651611248565b94611259565b910191909161127f565b6112c49160208201915f81840391015261125f565b90565b346112f7576112f36112e26112dd366004610482565b613ae6565b6112ea6103a2565b918291826112af565b0390f35b6103a8565b90565b61131361130e611318926112fc565b610743565b610552565b90565b61132560c86112ff565b90565b61133061131b565b90565b3461136357611343366004610bcc565b61135f61134e611328565b6113566103a2565b91829182610562565b0390f35b6103a8565b919061137b905f60208501940190610a12565b565b346113ae576113aa61139961139336600461041c565b90613b86565b6113a16103a2565b91829182611368565b0390f35b6103a8565b906113bd90610746565b5f5260205260405f2090565b6113df906113da6007915f926113b3565b610c91565b90565b346114125761140e6113fd6113f8366004610482565b6113c9565b6114056103a2565b91829182610cbb565b0390f35b6103a8565b346114475761144361143261142d366004610482565b613c0d565b61143a6103a2565b918291826112af565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b346114a057611480366004610bcc565b61149c61148b61144c565b6114936103a2565b91829182610cbb565b0390f35b6103a8565b906080828203126114fe576114bc815f84016103d3565b926114ca82602085016103d3565b926114d88360408301610ab0565b92606082013560018060401b0381116114f9576114f59201610abf565b9091565b6103b0565b6103ac565b346115355761151f6115163660046114a5565b93929092613c7f565b6115276103a2565b8061153181610449565b0390f35b6103a8565b90565b61155161154c6115569261153a565b610743565b610552565b90565b611563603261153d565b90565b61156e611559565b90565b346115a157611581366004610bcc565b61159d61158c611566565b6115946103a2565b91829182610562565b0390f35b6103a8565b346115d7576115d36115c26115bc36600461041c565b90613c8e565b6115ca6103a2565b91829182611368565b0390f35b6103a8565b90565b6115f36115ee6115f8926115dc565b610743565b6104ad565b90565b61160560036115df565b90565b6116106115fb565b90565b9190611626905f60208501940190611117565b565b3461165857611638366004610bcc565b611654611643611608565b61164b6103a2565b91829182611613565b0390f35b6103a8565b9190611670905f6020850194019061115f565b565b346116a35761169f61168e61168836600461041c565b90613cba565b6116966103a2565b9182918261165d565b0390f35b6103a8565b906116bb6116b46103a2565b92836108d1565b565b60018060401b0381116116d35760208091020190565b6108bd565b5f80fd5b5f80fd5b5f80fd5b60018060401b038111611700576116fc6020916108b3565b0190565b6108bd565b90825f939282370152565b90929192611725611720826116e4565b6116a8565b938185526020850190828401116117415761173f92611705565b565b6116e0565b9080601f830112156117645781602061176193359101611710565b90565b6105ad565b9190916040818403126117ba5761178060406116a8565b925f8201359160018060401b0383116117b5576117a2826117ae948301611746565b5f860152602001610707565b6020830152565b6116dc565b6116d8565b9291906117d36117ce826116bd565b6116a8565b93818552602080860192028101918383116118285781905b8382106117f9575050505050565b813560018060401b038111611823576020916118188784938701611769565b8152019101906117eb565b6105ad565b6105b5565b9080601f8301121561184b57816020611848933591016117bf565b90565b6105ad565b6080818303126118a857611866825f83016103d3565b92611874836020840161040d565b9260408301359060018060401b0382116118a357611897816118a093860161182d565b93606001610707565b90565b6103b0565b6103ac565b346118df576118c96118c0366004611850565b9291909161409e565b6118d16103a2565b806118db81610449565b0390f35b6103a8565b90565b6118fb6118f6611900926118e4565b610743565b610552565b90565b61190d60406118e7565b90565b611918611903565b90565b3461194b5761192b366004610bcc565b611947611936611910565b61193e6103a2565b91829182610562565b0390f35b6103a8565b3461197e57611960366004610bcc565b6119686146cd565b6119706103a2565b8061197a81610449565b0390f35b6103a8565b61198c90611153565b9052565b61199990610ef1565b9052565b906080806119f5936119b55f8201515f860190610dcb565b6119c7602082015160208601906104a0565b6119d9604082015160408601906104b3565b6119eb60608201516060860190611983565b0151910190611990565b565b9190611a0a905f60a0850194019061199d565b565b34611a3d57611a39611a28611a2236600461041c565b9061480a565b611a306103a2565b918291826119f7565b0390f35b6103a8565b34611a7357611a6f611a5e611a5836600461041c565b90614862565b611a666103a2565b91829182610c20565b0390f35b6103a8565b34611aa657611a88366004610bcc565b611a9061488a565b611a986103a2565b80611aa281610449565b0390f35b6103a8565b34611adb57611ad7611ac6611ac1366004610482565b6148db565b611ace6103a2565b91829182610562565b0390f35b6103a8565b9091606082840312611b1557611b12611afb845f85016103d3565b93611b098160208601610707565b93604001610707565b90565b6103ac565b92916020611b36611b3e9360408701908782035f89015261125f565b940190610555565b565b34611b7257611b59611b53366004611ae0565b91614979565b90611b6e611b656103a2565b92839283611b1a565b0390f35b6103a8565b34611ba557611b8f611b8a3660046106a2565b614b00565b611b976103a2565b80611ba181610449565b0390f35b6103a8565b34611bda57611bba366004610bcc565b611bd6611bc5614b0f565b611bcd6103a2565b91829182610cbb565b0390f35b6103a8565b909182601f83011215611c175781359160018060401b038311611c12576020019260208302840111611c0d57565b6105b5565b6105b1565b6105ad565b919091604081840312611c5b57611c35835f83016103d3565b92602082013560018060401b038111611c5657611c529201611bdf565b9091565b6103b0565b6103ac565b34611c8f57611c79611c73366004611c1c565b91614b96565b611c816103a2565b80611c8b81610449565b0390f35b6103a8565b91606083830312611cde57611cab825f85016103d3565b92611cb9836020830161040d565b92604082013560018060401b038111611cd957611cd69201611746565b90565b6103b0565b6103ac565b90611ced90610746565b5f5260205260405f2090565b90611d0390610ff6565b5f5260205260405f2090565b905090565b611d39611d3092602092611d27816109c9565b94858093611d0f565b938491016109d6565b0190565b90565b611d4c611d5191610552565b611d3d565b9052565b611d65611d6c9160209493611d14565b8092611d40565b0190565b611d84611d7b6103a2565b92839283611d55565b03902090565b611d9391611d70565b90565b611da6906008611dab9302610c6a565b61091f565b90565b90611db99154611d96565b90565b90611de492611dda611ddf92611dd56009955f96611ce3565b611cf9565b611d8a565b611dae565b90565b34611e1857611e14611e03611dfd366004611c94565b91611dbc565b611e0b6103a2565b91829182610562565b0390f35b6103a8565b909182601f83011215611e555781359160018060401b038311611e50576020019260018302840111611e4b57565b6105b5565b6105b1565b6105ad565b91606083830312611ea557611e71825f85016103d3565b92611e7f836020830161040d565b92604082013560018060401b038111611ea057611e9c9201611e1d565b9091565b6103b0565b6103ac565b34611edc57611ec6611ebd366004611e5a565b92919091614df9565b611ece6103a2565b80611ed881610449565b0390f35b6103a8565b611eea816104c0565b03611ef157565b5f80fd5b90503590611f0282611ee1565b565b91909160a081840312611f6e57611f1d835f83016103d3565b92602082013560018060401b038111611f695781611f3c918401611e1d565b929093611f66611f4f8460408501610707565b93611f5d8160608601610707565b93608001611ef5565b90565b6103b0565b6103ac565b34611fa857611f92611f86366004611f04565b949390939291926150c7565b611f9a6103a2565b80611fa481610449565b0390f35b6103a8565b34611fdb57611fc5611fc0366004610482565b615477565b611fcd6103a2565b80611fd781610449565b0390f35b6103a8565b909160608284031261201557612012611ffb845f85016103d3565b9361200981602086016103d3565b93604001610ab0565b90565b6103ac565b346120495761203361202d366004611fe0565b916156ec565b61203b6103a2565b8061204581610449565b0390f35b6103a8565b3461207d5761206761206136600461041c565b906158ab565b61206f6103a2565b8061207981610449565b0390f35b6103a8565b5190565b60209181520190565b60200190565b906120e3906060806120b4608084015f8701518582035f870152610d9a565b946120c760208201516020860190610dcb565b6120d960408201516040860190610dcb565b01519101906104c5565b90565b906120f091612095565b90565b60200190565b9061210d61210683612082565b8092612086565b908161211e6020830284019461208f565b925f915b83831061213157505050505090565b9091929394602061215361214d838560019503875289516120e6565b976120f3565b9301930191939290612122565b6121759160208201915f8184039101526120f9565b90565b346121a8576121a461219361218e366004610482565b615c20565b61219b6103a2565b91829182612160565b0390f35b6103a8565b346121db576121c56121c0366004610482565b615db0565b6121cd6103a2565b806121d781610449565b0390f35b6103a8565b6121ec600a5f90610c91565b90565b3461221f576121ff366004610bcc565b61221b61220a6121e0565b6122126103a2565b91829182610cbb565b0390f35b6103a8565b346122585761225461224361223a366004611e5a565b92919091615e1d565b61224b6103a2565b91829182610562565b0390f35b6103a8565b9061226790610746565b5f5260205260405f2090565b61227f61228491611071565b610943565b90565b6122919054612273565b90565b61229f90600261225d565b6122aa5f8201611037565b916122c15f6122ba818501611064565b9301612287565b90565b6040906122ed6122f494969593966122e360608401985f850190610c13565b6020830190611117565b0190610a12565b565b346123295761232561231161230c366004610482565b612294565b61231c9391936103a2565b938493846122c4565b0390f35b6103a8565b3461235e5761233e366004610bcc565b61235a612349615e52565b6123516103a2565b91829182610cbb565b0390f35b6103a8565b346123925761237c61237636600461041c565b90615f3c565b6123846103a2565b8061238e81610449565b0390f35b6103a8565b346123c8576123c46123b36123ad36600461041c565b906160d1565b6123bb6103a2565b91829182611368565b0390f35b6103a8565b346123fb576123e56123e03660046106a2565b6161d0565b6123ed6103a2565b806123f781610449565b0390f35b6103a8565b9190604083820312612428578061241c612425925f86016103d3565b93602001611ef5565b90565b6103ac565b3461245c57612446612440366004612400565b906161db565b61244e6103a2565b8061245881610449565b0390f35b6103a8565b7f32721f8dc67e953c540da90f663059c23fc47f70d11e317ed6d5a24c8b85637490565b61248d612461565b90565b346124c0576124a0366004610bcc565b6124bc6124ab612485565b6124b36103a2565b91829182610f01565b0390f35b6103a8565b346124f4576124de6124d836600461041c565b906162a4565b6124e66103a2565b806124f081610449565b0390f35b6103a8565b5f80fd5b5f7f4f6e6c792054616e676c6520636f726500000000000000000000000000000000910152565b61253160106020926109cd565b61253a816124fd565b0190565b6125539060208101905f818303910152612524565b90565b1561255d57565b6125656103a2565b62461bcd60e51b81528061257b6004820161253e565b0390fd5b61258b6125909161091a565b610c6e565b90565b61259d905461257f565b90565b90565b6125b76125b26125bc926125a0565b610743565b6103e2565b90565b6125c8906125a3565b90565b5f7f416c726561647920726567697374657265640000000000000000000000000000910152565b6125ff60126020926109cd565b612608816125cb565b0190565b6126219060208101905f8183039101526125f2565b90565b1561262b57565b6126336103a2565b62461bcd60e51b8152806126496004820161260c565b0390fd5b5f1b90565b9061266360018060a01b039161264d565b9181191691161790565b90565b9061268561268061268c92610ff6565b61266d565b8254612652565b9055565b612712612717926126d3336126cd6126c77f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b61270a6126ea6126e5600786906113b3565b612593565b6127046126fe6126f95f6125bf565b6103ed565b916103ed565b14612624565b9160076113b3565b612670565b565b61272360606116a8565b90565b5f90565b5f90565b5f90565b61273a612719565b906020808084612748612726565b81520161275361272a565b81520161275e61272e565b81525050565b61276c612732565b90565b6127819061277b612764565b506163cc565b90565b5f90565b6127a96127af926127a45f9361279c612784565b506003610fb8565b611002565b01610936565b90565b5f7f4e6f742073657276696365206f776e6572000000000000000000000000000000910152565b6127e660116020926109cd565b6127ef816127b2565b0190565b6128089060208101905f8183039101526127d9565b90565b1561281257565b61281a6103a2565b62461bcd60e51b815280612830600482016127f3565b0390fd5b5090565b5f7f546f6f206d616e7920646566696e6974696f6e73000000000000000000000000910152565b61286c60146020926109cd565b61287581612838565b0190565b61288e9060208101905f81830391015261285f565b90565b1561289857565b6128a06103a2565b62461bcd60e51b8152806128b660048201612879565b0390fd5b634e487b7160e01b5f52601160045260245ffd5b6128dd6128e391939293610552565b92610552565b916128ef838202610552565b9281840414901517156128fe57565b6128ba565b61290e9060046128ce565b90565b90612924905f1990602003600802610c6a565b8154169055565b1b90565b9190600861294a9102916129445f198461292b565b9261292b565b9181191691161790565b61296861296361296d92610552565b610743565b610552565b90565b90565b919061298961298461299193612954565b612970565b90835461292f565b9055565b6129a7916129a1612784565b91612973565b565b5b8181106129b5575050565b806129c25f600193612995565b016129aa565b906129d8905f1990600802610c6a565b191690565b816129e7916129c8565b906002021790565b905f91612a066129fe82610811565b9283546129dd565b905555565b601f602091010490565b919290602082105f14612a6e57601f8411600114612a3e57612a389293506129dd565b90555b5b565b5090612a64612a69936001612a5b612a5585610811565b92612a0b565b820191016129a9565b6129ef565b612a3b565b50612aa58293612a7f600194610811565b612a9e612a8b85612a0b565b820192601f861680612ab0575b50612a0b565b01906129a9565b600202179055612a3c565b612abc90888603612911565b5f612a98565b929091600160401b8211612b1d576020115f14612b0e57602081105f14612af257612aec916129dd565b90555b5b565b60019160ff1916612b0284610811565b55600202019055612aef565b60019150600202019055612af0565b6108bd565b908154612b2e816107de565b90818311612b57575b818310612b45575b50505050565b612b4e93612a15565b5f808080612b3f565b612b6383838387612ac2565b612b37565b5f612b7291612b22565b565b634e487b7160e01b5f525f60045260245ffd5b905f03612b9957612b9790612b68565b565b612b74565b60035f91612bae83808301612b87565b612bbb8360018301612995565b612bc88360028301612995565b0155565b905f03612bde57612bdc90612b9e565b565b612b74565b5b818110612bef575050565b80612bfc5f600493612bcc565b01612be4565b9091828110612c11575b505050565b612c2f612c29612c23612c3a95612903565b92612903565b92610790565b918201910190612be3565b5f8080612c0c565b90600160401b8111612c665781612c5b612c649361078c565b90828155612c02565b565b6108bd565b5f612c7591612c42565b565b905f03612c8957612c8790612c6b565b565b612b74565b612ca2612c9d612ca7926125a0565b610743565b610552565b90565b6001612cb69101610552565b90565b5f80fd5b5f80fd5b5f80fd5b903590600160800381360303821215612cdc570190565b612cb9565b90821015612cfb576020612cf89202810190612cc5565b90565b610778565b903590600160200381360303821215612d40570180359060018060401b038211612d3b57602001916001820236038313612d3657565b612cc1565b612cbd565b612cb9565b91565b5090565b5f7f4e616d6520746f6f206c6f6e6700000000000000000000000000000000000000910152565b612d80600d6020926109cd565b612d8981612d4c565b0190565b612da29060208101905f818303910152612d73565b90565b15612dac57565b612db46103a2565b62461bcd60e51b815280612dca60048201612d8d565b0390fd5b35612dd8816106f3565b90565b5f7f496e76616c696420626f756e6473000000000000000000000000000000000000910152565b612e0f600e6020926109cd565b612e1881612ddb565b0190565b612e319060208101905f818303910152612e02565b90565b15612e3b57565b612e436103a2565b62461bcd60e51b815280612e5960048201612e1c565b0390fd5b90565b5f5260205f2090565b5490565b612e7681612e69565b821015612e9057612e88600491612e60565b910201905f90565b610778565b5090565b9190601f8111612ea9575b505050565b612eb5612eda93610811565b906020612ec184612a0b565b83019310612ee2575b612ed390612a0b565b01906129a9565b5f8080612ea4565b9150612ed381929050612eca565b91612efb9082612e95565b9060018060401b038211612fb857612f1d82612f1785546107de565b85612e99565b5f90601f8311600114612f5057918091612f3f935f92612f44575b50506129dd565b90555b565b90915001355f80612f38565b601f19831691612f5f85610811565b925f5b818110612fa057509160029391856001969410612f86575b50505002019055612f42565b612f96910135601f8416906129c8565b90555f8080612f7a565b91936020600181928787013581550195019201612f62565b6108bd565b90612fc89291612ef0565b565b90612fd65f199161264d565b9181191691161790565b90612ff5612ff0612ffc92612954565b612970565b8254612fca565b9055565b3561300a81611ee1565b90565b9061301960ff9161264d565b9181191691161790565b61302c906104c0565b90565b90565b9061304761304261304e92613023565b61302f565b825461300d565b9055565b906130b0606060036130b6946130765f82016130705f880188612d00565b91612fbd565b61308f6001820161308960208801612dce565b90612fe0565b6130a8600282016130a260408801612dce565b90612fe0565b019201613000565b90613032565b565b91906130c9576130c791613052565b565b612b74565b90815491600160401b8310156130f957826130f19160016130f795018155612e6d565b906130b8565b565b6108bd565b929190926131313361312b61312561312061311b600787906113b3565b612593565b6103ed565b916103ed565b1461280b565b61315f61313f858490612834565b61315861315261314d611559565b610552565b91610552565b1115612891565b6131745f61316f60088490610762565b612c77565b61317d5f612c8e565b5b8061319b613195613190888790612834565b610552565b91610552565b101561326e57613269906131f26131d26131cc6131c66131bd8a898791612ce1565b5f810190612d00565b90612d45565b90612d48565b6131eb6131e56131e0611903565b610552565b91610552565b1115612da5565b61323b61320c604061320689888691612ce1565b01612dce565b61323461322e61322960206132238c8b8991612ce1565b01612dce565b610552565b91610552565b1015612e34565b61326461325261324d60088690610762565b612e5d565b61325e88878591612ce1565b906130ce565b612caa565b61317e565b5050509050565b5f7f5a65726f20616464726573730000000000000000000000000000000000000000910152565b6132a9600c6020926109cd565b6132b281613275565b0190565b6132cb9060208101905f81830391015261329c565b90565b156132d557565b6132dd6103a2565b62461bcd60e51b8152806132f3600482016132b6565b0390fd5b9061330190610746565b5f5260205260405f2090565b90565b61331990610ef1565b90565b6133259061091a565b90565b919061333e61333961334693613310565b61331c565b90835461292f565b9055565b5f90565b6133609161335a61334a565b91613328565b565b5f60026133819261337583808301612995565b8260018201550161334e565b565b905f036133955761339390613362565b565b612b74565b60481b90565b906133af60ff60481b9161339a565b9181191691161790565b6133c290611147565b90565b90565b906133dd6133d86133e4926133b9565b6133c5565b82546133a0565b9055565b6134243361341e6134187f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6134498261344261343c6134375f6125bf565b6103ed565b916103ed565b14156132ce565b61346f61346a61346361345e600685906132f7565b61330d565b84906164aa565b612624565b61348e5f61348961348260038590610fb8565b8590611002565b613383565b6134b1600260016134ab6134a460038690610fb8565b8690611002565b016133c8565b906134e56134df7f8e2d88795a3c66719a287658cbf68b3eb2b8e183cb18f46f4813913fc8aafc4b93610746565b91610ff6565b916134ee6103a2565b806134f881610449565b0390a3565b61350e906135096164e4565b613510565b565b61351b90600b612670565b565b613526906134fd565b565b5f7f4e6f742072656769737465726564206f70657261746f72000000000000000000910152565b61355c60176020926109cd565b61356581613528565b0190565b61357e9060208101905f81830391015261354f565b90565b1561358857565b6135906103a2565b62461bcd60e51b8152806135a660048201613569565b0390fd5b906135df979695949392916135da6135d56135ce6135c98460066132f7565b61330d565b3390616532565b613581565b61381e565b565b6135f56135f06135fa926103b4565b610743565b610552565b90565b61361161360c61361692610552565b610743565b6103b4565b90565b91602061363a92949361363360408201965f830190610c13565b0190610c13565b565b61364b61365191939293610552565b92610552565b820391821161365c57565b6128ba565b60018060401b03811161367d576136796020916108b3565b0190565b6108bd565b9092919261369761369282613661565b6116a8565b938185526020850190828401116136b3576136b192611705565b565b6116e0565b6136c3913691613682565b90565b60200190565b5190565b949290979695939160e08601985f87016136e991610ef4565b602086016136f691610cae565b6040850161370391610c13565b6060840161371091610c13565b6080830161371d91611117565b60a0820161372a91610ef4565b60c00161373691610c13565b565b5f61190160f01b910152565b61375060028092611d0f565b61375981613738565b0190565b90565b61376c61377191610ef1565b61375d565b9052565b602080939261379061378961379894613744565b8092613760565b018092613760565b0190565b5f7f496e76616c6964207369676e6174757265000000000000000000000000000000910152565b6137d060116020926109cd565b6137d98161379c565b0190565b6137f29060208101905f8183039101526137c3565b90565b156137fc57565b6138046103a2565b62461bcd60e51b81528061381a600482016137dd565b0390fd5b9192939497969095978061383a61383442610552565b916135e1565b116139a2576138524261384c836135e1565b9061363c565b61386b613865613860610d05565b6135e1565b91610552565b1161397a57613978979861394f61396d93856138d98a6138ca8d613955988d8d6138a1613896612461565b9633999592936136b8565b6138b36138ad826136cc565b916136c6565b2092936138be6103a2565b988997602089016136d0565b602082018103825203826108d1565b6138eb6138e5826136cc565b916136c6565b206139367f000000000000000000000000000000000000000000000000000000000000000061392761391b6103a2565b93849260208401613775565b602082018103825203826108d1565b613948613942826136cc565b916136c6565b20926136b8565b9061656c565b613967613961336103ed565b916103ed565b146137f5565b9333919293946166e9565b565b613983426135fd565b9061399e5f9283926318355b7560e21b845260048401613619565b0390fd5b6139ab426135fd565b906139c65f9283926357ea02e960e01b845260048401613619565b0390fd5b906139da979695949392916135aa565b565b606090565b90602082820312613a0f575f82013560018060401b038111613a0a57613a07920161182d565b90565b6103b0565b6103ac565b90613a2b91613a216139dc565b50908101906139e1565b90565b613a4d613a48613a5292613a40612784565b5060056132f7565b61330d565b616afb565b90565b606090565b60018060401b038111613a705760208091020190565b6108bd565b90613a87613a8283613a5a565b6116a8565b918252565b369037565b90613ab6613a9e83613a75565b92602080613aac8693613a5a565b9201910390613a8c565b565b90613ac282611228565b811015613ad3576020809102010190565b610778565b90613ae2906103ed565b9052565b90613aef613a55565b50613b0c613b07613b02600485906132f7565b61330d565b616afb565b91613b1683613a91565b91613b205f612c8e565b5b80613b34613b2e87610552565b91610552565b1015613b7b57613b7690613b71613b5f613b58613b53600488906132f7565b61330d565b8390616b4a565b613b6c8791849092613ab8565b613ad8565b612caa565b613b21565b5092505090565b5f90565b90613b8f613b82565b50613bb16001613bab613ba460038690610fb8565b8490611002565b01611091565b613bc3613bbd5f611147565b91611147565b14918215613bd1575b505090565b613bf29250600191613be7613bec926003610fb8565b611002565b01611091565b613c05613bff6001611147565b91611147565b145f80613bcc565b613c3390613c19613a55565b505f90613c2d613c2761131b565b92612c8e565b90614979565b5090565b90613c6994939291613c64613c5f613c58613c538460066132f7565b61330d565b3390616532565b613581565b613c6b565b565b91613c7d9492939133919293946166e9565b565b90613c8c94939291613c37565b565b90613cae613ca9613cb393613ca1613b82565b5060066132f7565b61330d565b616532565b90565b5f90565b613cdc613ce292613cd7600193613ccf613cb6565b506003610fb8565b611002565b01611091565b90565b613cee90610fea565b90565b5f7f496e7465726e616c206f6e6c7900000000000000000000000000000000000000910152565b613d25600d6020926109cd565b613d2e81613cf1565b0190565b613d479060208101905f818303910152613d18565b90565b15613d5157565b613d596103a2565b62461bcd60e51b815280613d6f60048201613d32565b0390fd5b60018060401b038111613d895760208091020190565b6108bd565b90613da0613d9b83613d73565b6116a8565b918252565b369037565b90613dcf613db783613d8e565b92602080613dc58693613d73565b9201910390613da5565b565b90613ddb82610d87565b811015613dec576020809102010190565b610778565b90565b5190565b90613e0282613df4565b811015613e13576020809102010190565b610778565b90613e2290610ef1565b9052565b606090565b90565b60209181520190565b905f9291805490613e51613e4a836107de565b8094613e2e565b916001811690815f14613ea85750600114613e6c575b505050565b613e799192939450610799565b915f925b818410613e9057505001905f8080613e67565b60018160209295939554848601520191019290613e7d565b92949550505060ff19168252151560200201905f8080613e67565b90613ecd91613e37565b90565b90613ef0613ee992613ee06103a2565b93848092613ec3565b03836108d1565b565b613efb90613ed0565b90565b613f089051610ef1565b90565b613f159051610552565b90565b5f7f56616c7565206f7574206f6620626f756e647300000000000000000000000000910152565b613f4c60136020926109cd565b613f5581613f18565b0190565b613f71613f7f9260408301908382035f8501526109e1565b906020818303910152613f3f565b90565b92916020613f9e613fa69360408701908782035f8901526109e1565b940190610555565b565b905f9291805490613fc2613fbb836107de565b80946109cd565b916001811690815f146140195750600114613fdd575b505050565b613fea9192939450610811565b915f925b81841061400157505001905f8080613fd8565b60018160209295939554848601520191019290613fee565b92949550505060ff19168252151560200201905f8080613fd8565b5f7f5265717569726564206d6574726963206d697373696e67000000000000000000910152565b61406860176020926109cd565b61407181614034565b0190565b61408d61409b9260408301908382035f850152613fa8565b90602081830391015261405b565b90565b929390936140c6336140c06140ba6140b530613ce5565b6103ed565b916103ed565b14613d4a565b6140da6140d560088690610762565b612e5d565b946140e482613daa565b946140ee5f612c8e565b5b806141026140fc86610552565b91610552565b1015614155576141509061414b6141265f61411e8a8590613dd1565b510151613df1565b614138614132826136cc565b916136c6565b206141468a91849092613df8565b613e18565b612caa565b6140ef565b50919490929561416481612e69565b6141766141705f612c8e565b91610552565b1196614180613e26565b9088614600575b6141905f612c8e565b5b806141a461419e8b610552565b91610552565b10156144635760015f8b614297575b50908887896141c9946141ce575b505050612caa565b614191565b825f61420c614204614215946141ff6141f760206141f061421a9b8d90613dd1565b5101613f0b565b976009611ce3565b611cf9565b928790613dd1565b51015190611d8a565b612fe0565b88878990614244602061423d5f614232878990613dd1565b510151958790613dd1565b5101613f0b565b6142776142717f23ed02bd3605bdea6a8afa76c46f00d274860ba6cea980f2585b696df9e182bd93610746565b93610ff6565b9361428c6142836103a2565b92839283613f82565b0390a38887896141c1565b9a90959291996142a65f612c8e565b5b806142c26142bc6142b78a612e69565b610552565b91610552565b101561444d576142da6142d58d87613df8565b613efe565b6142fe6142f86142f36142ee8a8690613df8565b613efe565b610ef1565b91610ef1565b146143115761430c90612caa565b6142a7565b8a919b929c50896141c99495988a926001908a61433b6020614334898b90613dd1565b5101613f0b565b61436361435d6143586001614351868890612e6d565b5001610936565b610552565b91610552565b109188888415614403575b50505050614398575b614382905b156104c0565b614391575b93945050506141b3565b505f614387565b905082825f6143a8878990613dd1565b510151916143f46143e26143dc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936143eb6103a2565b91829182613f59565b0390a36143825f919050614377565b61444393945061443161443d9361442b602061442461443896600296613dd1565b5101613f0b565b96612e6d565b5001610936565b610552565b91610552565b118a5f888861436e565b5099909a87896141c99495986143828d9461437c565b5097505092935093506144755f612c8e565b935b8461449261448c61448786612e69565b610552565b91610552565b10156145f9576144b86144b260036144ab868990612e6d565b500161095d565b156104c0565b6145ee576144da6144d55f6144ce868990612e6d565b5001613e2b565b613ef2565b6144ec6144e6826136cc565b916136c6565b20905f966144f95f612c8e565b5b8061451561450f61450a86613df4565b610552565b91610552565b10156145dc5761452e614529848390613df8565b613efe565b61454061453a86610ef1565b91610ef1565b146145535761454e90612caa565b6144fa565b5095909650614574915061456960015b156104c0565b61457b575b5b612caa565b9394614477565b82855f614589878590612e6d565b5001916145d46145c26145bc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936145cb6103a2565b91829182614075565b0390a361456e565b50959096614574925061456990614563565b94936145749061456f565b5050505050565b9693905061461a614615839794999693612e69565b613daa565b976146245f612c8e565b5b8061464061463a6146358b612e69565b610552565b91610552565b101561469a576146959061469061466b6146665f61465f8d8690612e6d565b5001613e2b565b613ef2565b61467d614677826136cc565b916136c6565b2061468b8d91849092613df8565b613e18565b612caa565b614625565b509295919497909396614187565b6146b06164e4565b6146b86146ba565b565b6146cb6146c65f6125bf565b616be2565b565b6146d56146a8565b565b6146e160a06116a8565b90565b5f90565b5f90565b5f90565b6146f86146d7565b90602080808080866147086146e4565b815201614713612726565b81520161471e61272a565b8152016147296146e8565b8152016147346146ec565b81525050565b6147426146f0565b90565b9061474f90610552565b9052565b9061475d906103b4565b9052565b9061476b906104ad565b9052565b9061477990611147565b9052565b906147fc6147f3600261478e6146d7565b946147a561479d5f8301610936565b5f8801614745565b6147bd6147b460018301611037565b60208801614753565b6147d56147cc60018301611064565b60408801614761565b6147ed6147e460018301611091565b6060880161476f565b016110b5565b60808401613e18565b565b6148079061477d565b90565b61482f9161482561482a9261481d61473a565b506003610fb8565b611002565b6147fe565b90565b5f90565b9061484090610746565b5f5260205260405f2090565b9061485690610ff6565b5f5260205260405f2090565b6148879161487d61488292614875614832565b50600c614836565b61484c565b611037565b90565b614892616bf8565b61489a615e52565b6148ac6148a6836103ed565b916103ed565b036148bc576148ba90616be2565b565b6148d7905f91829163118cdaa760e01b835260048301610cbb565b0390fd5b6148fa6148f56148ff926148ed612784565b5060046132f7565b61330d565b616afb565b90565b61490c90516104ad565b90565b61492361491e614928926125a0565b610743565b6104ad565b90565b61493590516103b4565b90565b61494c614947614951926104ad565b610743565b610552565b90565b61496361496991939293610552565b92610552565b820180921161497457565b6128ba565b90929192614985613a55565b5061498e612784565b50614998826163cc565b936149b56149b06149ab600586906132f7565b61330d565b616afb565b926149c260208701614902565b6149d46149ce5f61490f565b916104ad565b148015614ac6575b8015614aab575b614a9157614a1d86614a17614a126020614a0b614a065f614a7a9b9c9d0161492b565b6135e1565b9301614902565b614938565b906128ce565b9180614a38614a32614a2d61131b565b610552565b91610552565b115f14614a8c5750614a4861131b565b5b614a54848290614954565b614a66614a6088610552565b91610552565b115f14614a7d5750845b9092909192616c2e565b91565b614a879084614954565b614a70565b614a49565b5050509150614aa7614aa25f612c8e565b613a91565b9190565b5082614abf614ab986610552565b91610552565b10156149e3565b5083614ada614ad45f612c8e565b91610552565b146149dc565b614af190614aec6164e4565b614af3565b565b614afe90600a612670565b565b614b0990614ae0565b565b5f90565b614b17614b0b565b50614b215f612593565b90565b5090565b9190811015614b38576020020190565b610778565b35614b47816103f9565b90565b5f80fd5b60e01b90565b5f910312614b5e57565b6103ac565b916020614b84929493614b7d60408201965f830190610c13565b0190610cae565b565b614b8e6103a2565b3d5f823e3d90fd5b90929192614ba35f612c8e565b5b80614bc1614bbb614bb6858990614b24565b610552565b91610552565b1015614c7057614bd030613ce5565b9063ba1fb10384614beb614be6868a8691614b28565b614b3d565b93803b15614c6b57614c105f8094614c1b614c046103a2565b98899687958694614b4e565b845260048401614b63565b03925af1918215614c6657614c3592614c3a575b50612caa565b614ba4565b614c59905f3d8111614c5f575b614c5181836108d1565b810190614b54565b5f614c2f565b503d614c47565b614b86565b614b4a565b5050509050565b5f7f4e6f7420736c617368696e67206f7261636c6500000000000000000000000000910152565b614cab60136020926109cd565b614cb481614c77565b0190565b614ccd9060208101905f818303910152614c9e565b90565b15614cd757565b614cdf6103a2565b62461bcd60e51b815280614cf560048201614cb8565b0390fd5b5f7f4f70657261746f7220756e6b6e6f776e00000000000000000000000000000000910152565b614d2d60106020926109cd565b614d3681614cf9565b0190565b614d4f9060208101905f818303910152614d20565b90565b15614d5957565b614d616103a2565b62461bcd60e51b815280614d7760048201614d3a565b0390fd5b90565b90614d8f60018060401b039161264d565b9181191691161790565b90565b90614db1614dac614db892610746565b614d99565b8254614d7e565b9055565b9190614dd681614dcf81614ddb956109cd565b8095611705565b6108b3565b0190565b9091614df69260208301925f818503910152614dbc565b90565b614e1e33614e18614e12614e0d600a612593565b6103ed565b916103ed565b14614cd0565b614e44614e3f614e38614e33600585906132f7565b61330d565b8490616532565b614d52565b614e70614e65614e60614e5960038590610fb8565b8590611002565b614d7b565b6001600391016133c8565b614e8e614e87614e82600484906132f7565b61330d565b8390616d4a565b50614eb6614e9b426135fd565b614eb1614eaa600c8590614836565b859061484c565b614d9c565b909192614eec614ee67f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b93610ff6565b93614f01614ef86103a2565b92839283614ddf565b0390a3565b614f1060806116a8565b90565b614f1e913691611710565b90565b52565b90614f2e906104c0565b9052565b5190565b90614f40816109c9565b9060018060401b038211614ffe57614f6282614f5c85546107de565b85612e99565b602090601f8311600114614f9657918091614f85935f92614f8a575b50506129dd565b90555b565b90915001515f80614f7e565b601f19831691614fa585610811565b925f5b818110614fe657509160029391856001969410614fcc575b50505002019055614f88565b614fdc910151601f8416906129c8565b90555f8080614fc0565b91936020600181928787015181550195019201614fa8565b6108bd565b9061500d91614f36565b565b61501990516104c0565b90565b906150796060600361507f9461503f5f82016150395f8801614f32565b90615003565b6150586001820161505260208801613f0b565b90612fe0565b6150716002820161506b60408801613f0b565b90612fe0565b01920161500f565b90613032565b565b9190615092576150909161501c565b565b612b74565b90815491600160401b8310156150c257826150ba9160016150c095018155612e6d565b90615081565b565b6108bd565b6151e5956151ce84966151c56151bd6151a96151a46151d79761514a61512a6151246151e09d8d9f9d61511f3361511961511361510e61510960078c906113b3565b612593565b6103ed565b916103ed565b1461280b565b612d45565b90612d48565b61514361513d615138611903565b610552565b91610552565b1115612da5565b6151678661516061515a8d610552565b91610552565b1015612e34565b61519d61517e61517960088490610762565b61078c565b61519761519161518c611559565b610552565b91610552565b10612891565b6008610762565b612e5d565b9899969294966151b7614f06565b9a614f13565b5f8a01614f21565b60208801614745565b60408601614745565b60608401614f24565b615097565b565b6152159061521061520b6152046151ff8460066132f7565b61330d565b3390616532565b613581565b6152f1565b565b5f7f43616e6e6f7420676f206f6e6c696e65207768696c6520736c61736865640000910152565b61524b601e6020926109cd565b61525481615217565b0190565b61526d9060208101905f81830391015261523e565b90565b60401b90565b9061528560ff60401b91615270565b9181191691161790565b6152a361529e6152a8926104ad565b610743565b6104ad565b90565b90565b906152c36152be6152ca9261528f565b6152ab565b8254615276565b9055565b9160206152ef9294936152e860408201965f83019061115f565b019061115f565b565b61530f61530a61530360038490610fb8565b3390611002565b614d7b565b9061531c60018301611091565b918261533161532b6003611147565b91611147565b1461545557826153496153435f611147565b91611147565b14801561543a575b615435576153789061536660018083016133c8565b60016153715f61490f565b91016152ae565b61539661538f61538a600484906132f7565b61330d565b33906164aa565b5080336153cc6153c67fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b916153d56103a2565b806153df81610449565b0390a390339091600161541b6154157f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936154306154276103a2565b928392836152ce565b0390a3565b505050565b508261544f6154496001611147565b91611147565b14615351565b61545d6103a2565b62461bcd60e51b81528061547360048201615258565b0390fd5b615480906151e7565b565b5f7f4e6f7420617574686f72697a6564000000000000000000000000000000000000910152565b6154b6600e6020926109cd565b6154bf81615482565b0190565b6154d89060208101905f8183039101526154a9565b90565b156154e257565b6154ea6103a2565b62461bcd60e51b815280615500600482016154c3565b0390fd5b90565b61551b61551661552092615504565b610743565b6103b4565b90565b5f7f496e74657276616c20746f6f2073686f72740000000000000000000000000000910152565b61555760126020926109cd565b61556081615523565b0190565b6155799060208101905f81830391015261554a565b90565b1561558357565b61558b6103a2565b62461bcd60e51b8152806155a160048201615564565b0390fd5b90565b6155bc6155b76155c1926155a5565b610743565b6104ad565b90565b5f7f4d6178206d6973736564206d757374206265203e3d2031000000000000000000910152565b6155f860176020926109cd565b615601816155c4565b0190565b61561a9060208101905f8183039101526155eb565b90565b1561562457565b61562c6103a2565b62461bcd60e51b81528061564260048201615605565b0390fd5b61565060606116a8565b90565b9061566861566361566f92613023565b61302f565b82546133a0565b9055565b906156b560405f6156bb9461569582820161568f84880161492b565b90614d9c565b6156ad8282016156a760208801614902565b906152ae565b01920161500f565b90615653565b565b906156c791615673565b565b9160206156ea9294936156e360408201965f830190610c13565b0190611117565b565b3361571f6157197f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14801561580b575b615730906154db565b61574e82615747615741603c615507565b916103b4565b101561557c565b61576c8361576561575f60016155a8565b916104ad565b101561561d565b6157c5826157b4856157ab61578d5f6157876002899061225d565b01612287565b916157a2615799615646565b955f8701614753565b60208501614761565b60408301614f24565b6157c06002849061225d565b6156bd565b90916157f17fc9599ed962624a858ec59bae0ed86c75f4db65fe04570021277edbedd04ea56492610746565b926158066157fd6103a2565b928392836156c9565b0390a2565b506157303361583561582f61582a615825600787906113b3565b612593565b6103ed565b916103ed565b149050615727565b634e487b7160e01b5f52601260045260245ffd5b61585d61586391610552565b91610552565b90811561586e570490565b61583d565b61588761588261588c92610552565b610743565b6104ad565b90565b6158a361589e6158a8926125a0565b610743565b6103b4565b90565b6158c96158c46158bd60038490610fb8565b8490611002565b614d7b565b906158d3816163cc565b6158df60018401611091565b6158f26158ec6003611147565b91611147565b14615b06576159025f8401610936565b61591461590e5f612c8e565b91610552565b14615b005761594a6159314261592b5f8701610936565b9061363c565b61594461593f5f850161492b565b6135e1565b90615851565b8061595e61595860ff614938565b91610552565b115f14615af2575060ff5b908161598861598261597d60018801611064565b6104ad565b916104ad565b11615995575b5050505050565b6159a282600186016152ae565b6159b76159ae5f61588f565b60018601614d9c565b6159d56159cf6159ca6020859401614902565b6104ad565b916104ad565b101580615acb575b6159e8575b8061598e565b615a036159f760018501611091565b936001600291016133c8565b615a21615a1a615a15600485906132f7565b61330d565b8590616d4a565b508190849091615a6f615a5d615a577f44fd32b677704ce68e7763897c49733b8f5289018ac60a5c926802d63759db4d93610746565b93610ff6565b93615a666103a2565b91829182611613565b0390a39190916002615aaa615aa47f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615abf615ab66103a2565b928392836152ce565b0390a35f8080806159e2565b50615ad860018401611091565b615aeb615ae56002611147565b91611147565b14156159dd565b615afb90615873565b615969565b50505050565b50505050565b606090565b60018060401b038111615b275760208091020190565b6108bd565b90615b3e615b3983615b11565b6116a8565b918252565b615b4d60806116a8565b90565b90615bb7615bae6003615b61615b43565b94615b78615b705f83016108f8565b5f8801614f21565b615b90615b8760018301610936565b60208801614745565b615ba8615b9f60028301610936565b60408801614745565b0161095d565b60608401614f24565b565b615bc290615b50565b90565b90615bcf8261078c565b615bd881615b2c565b92615be66020850191610790565b5f915b838310615bf65750505050565b60046020600192615c0685615bb9565b815201920192019190615be9565b615c1d90615bc5565b90565b615c37615c3c91615c2f615b0c565b506008610762565b615c14565b90565b615c6d90615c68615c63615c5c615c578460066132f7565b61330d565b3390616532565b613581565b615cc8565b565b5f7f43616e6e6f7420676f206f66666c696e65207768696c6520736c617368656400910152565b615ca3601f6020926109cd565b615cac81615c6f565b0190565b615cc59060208101905f818303910152615c96565b90565b615ce6615ce1615cda60038490610fb8565b3390611002565b614d7b565b90615cf360018301611091565b9182615d08615d026003611147565b91611147565b14615d8e57615d1c906001600491016133c8565b615d3a615d33615d2e600484906132f7565b61330d565b3390616d4a565b50903390916004615d74615d6e7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615d89615d806103a2565b928392836152ce565b0390a3565b615d966103a2565b62461bcd60e51b815280615dac60048201615cb0565b0390fd5b615db990615c3f565b565b909182615dcb81615dd293611d0f565b8093611705565b0190565b615de79060209493615dee93615dbb565b8092611d40565b0190565b9091615e0990615e006103a2565b93849384615dd6565b03902090565b9091615e1a92615df2565b90565b92615e42615e4a9392615e3d615e4f96615e35612784565b506009611ce3565b611cf9565b919091615e0f565b610936565b90565b615e5a614b0b565b50615e656001612593565b90565b615e729051611147565b90565b90565b615e8c615e87615e9192615e75565b610743565b610552565b90565b60207f6c00000000000000000000000000000000000000000000000000000000000000917f4f70657261746f72206e6f7420656c696769626c6520666f722072656d6f76615f8201520152565b615eee60216040926109cd565b615ef781615e94565b0190565b615f109060208101905f818303910152615ee1565b90565b15615f1a57565b615f226103a2565b62461bcd60e51b815280615f3860048201615efb565b0390fd5b90615fed615fe8615ff29333615f6d615f67615f62615f5d600786906113b3565b612593565b6103ed565b916103ed565b1480156160ab575b615f7e906154db565b615f9c615f97615f9060038490610fb8565b8690611002565b6147fe565b615fa860608201615e68565b615fbb615fb56003611147565b91611147565b03615ff5575b50615fe0615fd9615fd4600584906132f7565b61330d565b8590616d4a565b5060046132f7565b61330d565b616d4a565b50565b61607190616045616035616008856163cc565b61602f61602a602061602361601e5f860161492b565b6135e1565b9301614902565b614938565b906128ce565b61603f600a615e78565b906128ce565b6160505f8301613f0b565b61606261605c5f612c8e565b91610552565b119182616077575b5050615f13565b5f615fc1565b6160a291925061609661609c916160905f429201613f0b565b9061363c565b92610552565b91610552565b10155f8061606a565b50615f7e336160c96160c36160be614b0f565b6103ed565b916103ed565b149050615f75565b906160fb616100916160e1613b82565b506160f66160ee856163cc565b946003610fb8565b611002565b6147fe565b61610b5f8201613f0b565b61611d6161175f612c8e565b91610552565b146161585761614e6161495f6161426161549461613c83429201613f0b565b9061363c565b940161492b565b6135e1565b91610552565b1090565b50505f90565b61616f9061616a6164e4565b616171565b565b61617c816001612670565b616184614b0f565b906161b86161b27f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270093610ff6565b91610ff6565b916161c16103a2565b806161cb81610449565b0390a3565b6161d99061615e565b565b5f61621a616220936162123361620c6162066162016161fc60078a906113b3565b612593565b6103ed565b916103ed565b1461280b565b92600261225d565b01615653565b565b5f7f4e6f742072656769737465726564000000000000000000000000000000000000910152565b616256600e6020926109cd565b61625f81616222565b0190565b6162789060208101905f818303910152616249565b90565b1561628257565b61628a6103a2565b62461bcd60e51b8152806162a060048201616263565b0390fd5b6162e0336162da6162d47f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6163066163016162fa6162f5600685906132f7565b61330d565b8490616d4a565b61627b565b61632461631d616318600484906132f7565b61330d565b8390616d4a565b50906163596163537f08bb93e5444209b15155078a13f6e341299d748d0c299f722c9cbc0723f0fe9e93610746565b91610ff6565b916163626103a2565b8061636c81610449565b0390a3565b906163be6163b55f616381612719565b94616398616390838301611037565b838801614753565b6163af6163a6838301611064565b60208801614761565b01612287565b60408401614f24565b565b6163c990616371565b90565b6163e36163e8916163db612764565b50600261225d565b6163c0565b6163f35f820161492b565b6164056163ff5f61588f565b916103b4565b1461644b575b61641760208201614902565b6164296164235f61490f565b916104ad565b14616432575b90565b61644661643d6115fb565b60208301614761565b61642f565b61645e616456610bfa565b5f8301614753565b61640b565b61646c90610fce565b90565b61648361647e616488926103e2565b610743565b610552565b90565b61649f61649a6164a492610552565b61264d565b610ef1565b90565b90565b906164dc6164d66164d16164cc5f6164e1966164c4613b82565b500194616463565b61646f565b61648b565b916164a7565b616e06565b90565b6164ec614b0f565b6165056164ff6164fa616bf8565b6103ed565b916103ed565b0361650c57565b61652e616517616bf8565b5f91829163118cdaa760e01b835260048301610cbb565b0390fd5b9061656461655e6165596165545f6165699661654c613b82565b500194616463565b61646f565b61648b565b916164a7565b616e69565b90565b61658b916165829161657c614b0b565b50616ec5565b90929192616f85565b90565b5f7f4f70657261746f7220697320736c617368656400000000000000000000000000910152565b6165c260136020926109cd565b6165cb8161658e565b0190565b6165e49060208101905f8183039101526165b5565b90565b156165ee57565b6165f66103a2565b62461bcd60e51b81528061660c600482016165cf565b0390fd5b9061662561662061662c92613310565b61331c565b8254612fca565b9055565b616639906103b4565b60018060401b03811461664c5760010190565b6128ba565b90565b61666861666361666d92616651565b610743565b6104ad565b90565b91602061669192949361668a60408201965f830190611117565b0190610555565b565b61669c90610fce565b90565b6166a890616693565b90565b6166b490610fea565b90565b6040906166e06166e794969593966166d660608401985f850190610cae565b6020830190610c13565b0190610c13565b565b949293919361670c61670761670060038990610fb8565b8790611002565b614d7b565b93616716876163cc565b9361674061672660018801611091565b6167396167336003611147565b91611147565b14156165e7565b61675e61675761675260058b906132f7565b61330d565b88906164aa565b50616833604061677060018901611091565b9661677d425f8b01612fe0565b6167a761678b8587906136b8565b61679d616797826136cc565b916136c6565b2060028b01616610565b6167bc6167b35f61490f565b60018b016152ae565b6167da60018a016167d46167cf82611037565b616630565b90614d9c565b6167e2613cb6565b50856167f66167f05f61490f565b916104ad565b145f14616ab75761680d5f995b60018b91016133c8565b8761682161681b6002611147565b91611147565b1480616a9b575b616a2d575b0161500f565b80616a09575b6169f3575b505085918591924261688261687c6168767f658918e3147f13dd068ec21437b4c25c21682a8dc2129348671ead000db3e7b994610746565b94610746565b94610ff6565b9461689761688e6103a2565b92839283616670565b0390a4806168ad6168a784611147565b91611147565b0361699d575b50506168bf600b612593565b6168d96168d36168ce5f6125bf565b6103ed565b916103ed565b036168e3575b5050565b6168fd6168f86168f3600b612593565b61669f565b6166ab565b9163d47853b691909261690f426135fd565b92813b15616998575f6169359161694082966169296103a2565b98899788968795614b4e565b8552600485016166b7565b03925af1908161696c575b50155f14616967576001616962575b5b5f806168df565b61695a565b61695b565b61698b905f3d8111616991575b61698381836108d1565b810190614b54565b5f61694b565b503d616979565b614b4a565b838391926169d46169ce7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936169e96169e06103a2565b928392836152ce565b0390a35f806168b3565b616a029188918890919261743a565b5f8061683e565b50616a15818390612d48565b616a27616a215f612c8e565b91610552565b11616839565b616a4a616a43616a3e8d60046132f7565b61330d565b8b906164aa565b508a8a616a80616a7a7fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b91616a896103a2565b80616a9381610449565b0390a361682d565b5088616ab0616aaa6002611147565b91611147565b1415616828565b85616acb616ac56064616654565b916104ad565b105f14616ade5761680d6001995b616803565b61680d600199616af68d8d8b908b908a928c946170f4565b616ad9565b616b125f616b1792616b0b612784565b50016164a7565b6175f8565b90565b616b26616b2b9161091a565b612954565b90565b616b42616b3d616b4792610552565b610743565b6103e2565b90565b616b75616b70616b7f93616b6b5f616b7a95616b64614b0b565b50016164a7565b617666565b616b1a565b616b2e565b610fea565b90565b91906008616ba2910291616b9c60018060a01b038461292b565b9261292b565b9181191691161790565b9190616bc2616bbd616bca93610ff6565b61266d565b908354616b82565b9055565b616be091616bda614b0b565b91616bac565b565b616bf690616bf15f6001616bce565b617687565b565b616c00614b0b565b503390565b616c0e90610552565b5f198114616c1c5760010190565b6128ba565b616c2b90516103ed565b90565b93919293616c3a613a55565b50616c4e616c4985849061363c565b613a91565b92616c585f612c8e565b925b80616c6d616c6788610552565b91610552565b1015616cdb57616c91616c8a616c85600586906132f7565b61330d565b8290616b4a565b616c9d84828a916176e6565b616cb1575b50616cac90612caa565b616c5a565b616cac9194616ccf616cd492616cca8991849092613ab8565b613ad8565b616c05565b9390616ca2565b509450509150616cea82613a91565b92616cf45f612c8e565b5b80616d08616d0286610552565b91610552565b1015616d4457616d3f90616d3a616d28616d23868490613ab8565b616c21565b616d358891849092613ab8565b613ad8565b612caa565b616cf5565b50915050565b90616d7c616d76616d71616d6c5f616d8196616d64613b82565b500194616463565b61646f565b61648b565b916164a7565b61781e565b90565b90565b5f5260205f2090565b5490565b616d9d81616d90565b821015616db757616daf600191616d87565b910201905f90565b610778565b90815491600160401b831015616de75782616ddf916001616de595018155616d94565b90613328565b565b6108bd565b5490565b90616dfa90613310565b5f5260205260405f2090565b616e0e613b82565b50616e23616e1d828490616e69565b156104c0565b5f14616e6357616e59616e5e92616e45616e3e5f8501616d84565b8290616dbc565b6001616e525f8501616dec565b9301616df0565b612fe0565b600190565b50505f90565b616e87916001616e8292616e7b613b82565b5001616df0565b610936565b616e99616e935f612c8e565b91610552565b141590565b5f90565b90565b616eb9616eb4616ebe92616ea2565b610743565b610552565b90565b5f90565b919091616ed0614b0b565b50616ed9616e9e565b50616ee261334a565b50616eec836136cc565b616eff616ef96041616ea5565b91610552565b145f14616f4657616f3f9192616f1361334a565b50616f1c61334a565b50616f25616ec1565b506020810151606060408301519201515f1a90919261799d565b9192909190565b50616f505f6125bf565b90616f64616f5f6002946136cc565b61648b565b91929190565b60041115616f7457565b611124565b90616f8382616f6a565b565b80616f98616f925f616f79565b91616f79565b145f14616fa3575050565b80616fb7616fb16001616f79565b91616f79565b145f14616fda575f63f645eedf60e01b815280616fd660048201610449565b0390fd5b80616fee616fe86002616f79565b91616f79565b145f1461701c5761701861700183616b1a565b5f91829163fce698f760e01b835260048301610562565b0390fd5b61702f6170296003616f79565b91616f79565b146170375750565b617052905f9182916335e2f38360e21b835260048301610f01565b0390fd5b61706a61706561706f926112fc565b610743565b6104ad565b90565b61707e617084916103b4565b916103b4565b90039060018060401b03821161709657565b6128ba565b5f7f50726f746f636f6c2076696f6c6174696f6e207265706f727465640000000000910152565b6170cf601b6020926109cd565b6170d88161709b565b0190565b6170f19060208101905f8183039101526170c2565b90565b935050925061710c61710660c8617056565b916104ad565b1015617117575b5050565b617120426135fd565b61713e617139617132600c8590614836565b859061484c565b611037565b8061715161714b5f61588f565b916103b4565b149081156171d7575b50617166575b50617113565b61718590617180617179600c8590614836565b859061484c565b614d9c565b906171b96171b37f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b91610ff6565b916171c26103a2565b806171cc816170dc565b0390a35f8080617160565b6171e2915082617072565b6171fb6171f56171f0610f6a565b6103b4565b916103b4565b10155f61715a565b90565b61721a61721561721f92617203565b610743565b610552565b90565b90929192617237617232826116e4565b6116a8565b9381855260208501908284011161725357617251926109d6565b565b6116e0565b9080601f830112156172765781602061727393519101617222565b90565b6105ad565b90505190617288826106f3565b565b9190916040818403126172db576172a160406116a8565b925f8201519160018060401b0383116172d6576172c3826172cf948301617258565b5f86015260200161727b565b6020830152565b6116dc565b6116d8565b9291906172f46172ef826116bd565b6116a8565b93818552602080860192028101918383116173495781905b83821061731a575050505050565b815160018060401b03811161734457602091617339878493870161728a565b81520191019061730c565b6105ad565b6105b5565b9080601f8301121561736c57816020617369935191016172e0565b90565b6105ad565b9060208282031261739f575f82015160018060401b03811161739a57617397920161734e565b90565b6103b0565b6103ac565b60209181520190565b91906173c7816173c0816173cc956173a4565b8095611705565b6108b3565b0190565b90916173e79260208301925f8185039101526173ad565b90565b6173f4603261153d565b90565b949391606091617438946174236174309361741960808b01945f8c0190610c13565b60208a0190610cae565b8782036040890152610e18565b940190610555565b565b91617446818590612d48565b6174586174525f612c8e565b91610552565b146175f257617468818590612d48565b61747c61747661c350617206565b91610552565b116175ec575f61748a6139dc565b9461749430613ce5565b6174b66331e3bd1b9492946174c16174aa6103a2565b96879586948594614b4e565b8452600484016173d0565b03915afa80915f926175c8575b50155f146175bf575060016175ba575b6174e783610d87565b6175006174fa6174f56173ea565b610552565b91610552565b115f146175ac5761750f6173ea565b5b61751930613ce5565b906365a6936e93929490823b156175a7575f9461755486926175499461753d6103a2565b998a9889978896614b4e565b8652600486016173f7565b03925af1908161757b575b50155f14617576576001617571575b5b565b61756e565b61756f565b61759a905f3d81116175a0575b61759281836108d1565b810190614b54565b5f61755f565b503d617588565b614b4a565b6175b583610d87565b617510565b505050565b909250916174de565b6175e59192503d805f833e6175dd81836108d1565b810190617371565b905f6174ce565b50505050565b50505050565b5f61760c91617605612784565b5001616dec565b90565b5f5260205f2090565b61762181616dec565b82101561763b5761763360019161760f565b910201905f90565b610778565b6176509060086176559302610c6a565b61109e565b90565b906176639154617640565b90565b617684915f61767e9261767761334a565b5001617618565b90617658565b90565b6176905f612593565b61769a825f612670565b906176ce6176c87f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610ff6565b91610ff6565b916176d76103a2565b806176e181610449565b0390a3565b6176ee613b82565b50617716617710617709617704600685906132f7565b61330d565b8490616532565b156104c0565b6177b8576177369161772c617731926003610fb8565b611002565b6147fe565b6177415f8201613f0b565b61775361774d5f612c8e565b91610552565b148015617792575b61778c5761778161777b617787926177755f429201613f0b565b9061363c565b92610552565b91610552565b101590565b50505f90565b5061779f60608201615e68565b6177b26177ac6003611147565b91611147565b1461775b565b5050505f90565b6177d36177ce6177d8926155a5565b610743565b610552565b90565b634e487b7160e01b5f52603160045260245ffd5b6177f881616d90565b80156178195760019003906178166178108383616d94565b9061334e565b55565b6177db565b617826613b82565b5061783d617838600183018490616df0565b610936565b908161785161784b5f612c8e565b91610552565b14155f1461791d576178cf9260016178ca92846178785f96617872856177bf565b9061363c565b617895617886888501616dec565b61788f866177bf565b9061363c565b816178a86178a283610552565b91610552565b036178d4575b5050506178c46178bf868301616d84565b6177ef565b01616df0565b612995565b600190565b617915926179076178f36178ed617910948c8901617618565b90617658565b9361790185918c8901617618565b90613328565b91858501616df0565b612fe0565b5f80806178ae565b5050505f90565b90565b61793b61793661794092617924565b610743565b610552565b90565b61797861797f9461796e606094989795617964608086019a5f870190610ef4565b6020850190611117565b6040830190610ef4565b0190610ef4565b565b61799561799061799a926125a0565b61264d565b610ef1565b90565b9392936179a8614b0b565b506179b1616e9e565b506179ba61334a565b506179c485616b1a565b6179ec6179e66fa2a8918ca85bafe22016d0b997e4df60600160ff1b03617927565b91610552565b11617a795790617a0f602094955f94939293617a066103a2565b94859485617943565b838052039060015afa15617a7457617a275f5161264d565b80617a42617a3c617a375f6125bf565b6103ed565b916103ed565b14617a58575f91617a525f617981565b91929190565b50617a625f6125bf565b600191617a6e5f617981565b91929190565b614b86565b505050617a855f6125bf565b906003929192919056fea164736f6c634300081a000a","sourceMap":"6415:38701:57:-:0;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;:::o;13060:465::-;;;;;:::i;:::-;13147:24;;13252:95;13224:284;13365:35;13418:14;13224:284;13418:14;13450:13;13481;13489:4;13481:13;:::i;:::-;13224:284;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;13201:317;;;;:::i;:::-;;;:::i;:::-;;13182:336;;13060:465::o;984:1491:2:-;;;;:::i;:::-;:::o;6415:38701:57:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;1225:187:1:-;1273:12;:26;;1289:10;1297:1;1289:10;:::i;:::-;1273:26;:::i;:::-;;;:::i;:::-;;1269:95;;1392:12;;;:::i;:::-;1225:187::o;1269:95::-;1322:31;1342:10;1350:1;1342:10;:::i;:::-;1322:31;;;;;;;;;;;;;:::i;:::-;;;;6415:38701:57;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;2011:153:2:-;2148:8;2011:153;2093:20;;;;:::i;:::-;2148:8;:::i;:::-;2011:153::o;6415:38701:57:-;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;2912:187:1:-;3004:6;;;:::i;:::-;3020:17;3029:8;3020:17;;:::i;:::-;3083:8;3052:40;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2912:187::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610013575b6124f9565b61001d5f3561039c565b806305778550146103975780630758236f146103925780630c76697a1461038d578063191cbd1a146103885780631e8f5ee514610383578063208129561461037e57806322f1ec93146103795780632bf4d6a7146103745780632c9576881461036f5780632dae18851461036a5780632f4bd7b81461036557806331e3bd1b146103605780633644e5151461035b5780633ac3cbe6146103565780633e6e34a7146103515780633fd62c6d1461034c57806340235a9c1461034757806348f4da20146103425780635685cf681461033d57806356c4e17d1461033857806359dcea12146103335780635a936dc61461032e5780635cce98a6146103295780636076439c1461032457806360cf09911461031f57806361d6b86c1461031a57806362c7e8fc1461031557806365a6936e146103105780636bfe06a61461030b578063715018a61461030657806371e7388c146103015780637639d227146102fc57806379ba5097146102f75780637b9f64b2146102f257806381beac2e146102ed57806384ef7322146102e85780638da5cb5b146102e357806396686c1e146102de5780639cbdae22146102d9578063adff830c146102d4578063ae470a85146102cf578063b074e9dd146102ca578063b99f6759146102c5578063ba1fb103146102c0578063c1ef9ddf146102bb578063c5d960bb146102b6578063cfe34749146102b1578063d551162c146102ac578063da435a7c146102a7578063e30c3978146102a2578063e65cafcb1461029d578063ee1c039014610298578063f2fde38b14610293578063f9107f3b1461028e578063f9f16762146102895763ffcf08f00361000e576124c5565b612490565b61242d565b6123cd565b612397565b612363565b61232e565b6122f6565b612224565b6121ef565b6121ad565b612178565b61204e565b61201a565b611fad565b611f73565b611eaa565b611de7565b611c60565b611baa565b611b77565b611b40565b611aab565b611a78565b611a42565b611a0c565b611950565b61191b565b6118ad565b611672565b611628565b6115a6565b611571565b611503565b611470565b611417565b6113e2565b61137d565b611333565b6112c7565b6111f3565b6111b9565b610f83565b610f16565b610e97565b610d1e565b610cd0565b610c35565b610b8f565b610a62565b6106c0565b61066e565b61063a565b610577565b61051d565b61044e565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060401b031690565b6103c8816103b4565b036103cf57565b5f80fd5b905035906103e0826103bf565b565b60018060a01b031690565b6103f6906103e2565b90565b610402816103ed565b0361040957565b5f80fd5b9050359061041a826103f9565b565b91906040838203126104445780610438610441925f86016103d3565b9360200161040d565b90565b6103ac565b5f0190565b3461047d5761046761046136600461041c565b90612690565b61046f6103a2565b8061047981610449565b0390f35b6103a8565b9060208282031261049b57610498915f016103d3565b90565b6103ac565b6104a9906103b4565b9052565b60ff1690565b6104bc906104ad565b9052565b151590565b6104ce906104c0565b9052565b90604080610506936104ea5f8201515f8601906104a0565b6104fc602082015160208601906104b3565b01519101906104c5565b565b919061051b905f606085019401906104d2565b565b3461054d57610549610538610533366004610482565b61276f565b6105406103a2565b91829182610508565b0390f35b6103a8565b90565b61055e90610552565b9052565b9190610575905f60208501940190610555565b565b346105a8576105a461059361058d36600461041c565b90612788565b61059b6103a2565b91829182610562565b0390f35b6103a8565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156105f15781359160018060401b0383116105ec5760200192602083028401116105e757565b6105b5565b6105b1565b6105ad565b9190916040818403126106355761060f835f83016103d3565b92602082013560018060401b0381116106305761062c92016105b9565b9091565b6103b0565b6103ac565b346106695761065361064d3660046105f6565b916130fe565b61065b6103a2565b8061066581610449565b0390f35b6103a8565b3461069d5761068761068136600461041c565b906133e8565b61068f6103a2565b8061069981610449565b0390f35b6103a8565b906020828203126106bb576106b8915f0161040d565b90565b6103ac565b346106ee576106d86106d33660046106a2565b61351d565b6106e06103a2565b806106ea81610449565b0390f35b6103a8565b6106fc81610552565b0361070357565b5f80fd5b90503590610714826106f3565b565b919060408382031261073e578061073261073b925f86016103d3565b93602001610707565b90565b6103ac565b90565b61075a61075561075f926103b4565b610743565b6103b4565b90565b9061076c90610746565b5f5260205260405f2090565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b5f5260205f2090565b6107ab8161078c565b8210156107c5576107bd600491610790565b910201905f90565b610778565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107fe575b60208310146107f957565b6107ca565b91607f16916107ee565b60209181520190565b5f5260205f2090565b905f929180549061083461082d836107de565b8094610808565b916001811690815f1461088b575060011461084f575b505050565b61085c9192939450610811565b915f925b81841061087357505001905f808061084a565b60018160209295939554848601520191019290610860565b92949550505060ff19168252151560200201905f808061084a565b906108b09161081a565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906108db906108b3565b810190811060018060401b038211176108f357604052565b6108bd565b90610918610911926109086103a2565b938480926108a6565b03836108d1565b565b5f1c90565b90565b61092e6109339161091a565b61091f565b90565b6109409054610922565b90565b60ff1690565b61095561095a9161091a565b610943565b90565b6109679054610949565b90565b610975906008610762565b9061097f8261078c565b8110156109c55761098f916107a2565b509061099c5f83016108f8565b916109a960018201610936565b916109c260036109bb60028501610936565b930161095d565b90565b5f80fd5b5190565b60209181520190565b90825f9392825e0152565b610a00610a09602093610a0e936109f7816109c9565b938480936109cd565b958691016109d6565b6108b3565b0190565b610a1b906104c0565b9052565b610a59610a6094610a4f610a446060959998969960808601908682035f8801526109e1565b986020850190610555565b6040830190610555565b0190610a12565b565b34610a9757610a93610a7e610a78366004610716565b9061096a565b90610a8a9492946103a2565b94859485610a1f565b0390f35b6103a8565b610aa5816104ad565b03610aac57565b5f80fd5b90503590610abd82610a9c565b565b909182601f83011215610af75781359160018060401b038311610af2576020019260018302840111610aed57565b6105b5565b6105b1565b6105ad565b919060c083820312610b8a57610b14815f85016103d3565b92610b2282602083016103d3565b92610b308360408401610ab0565b92606083013560018060401b038111610b855781610b4f918501610abf565b929093610b5f83608083016103d3565b9260a082013560018060401b038111610b8057610b7c9201610abf565b9091565b6103b0565b6103b0565b6103ac565b34610bc757610bb1610ba2366004610afc565b969590959491949392936139ca565b610bb96103a2565b80610bc381610449565b0390f35b6103a8565b5f910312610bd657565b6103ac565b90565b610bf2610bed610bf792610bdb565b610743565b6103b4565b90565b610c0561012c610bde565b90565b610c10610bfa565b90565b610c1c906103b4565b9052565b9190610c33905f60208501940190610c13565b565b34610c6557610c45366004610bcc565b610c61610c50610c08565b610c586103a2565b91829182610c20565b0390f35b6103a8565b1c90565b60018060a01b031690565b610c89906008610c8e9302610c6a565b610c6e565b90565b90610c9c9154610c79565b90565b610cab600b5f90610c91565b90565b610cb7906103ed565b9052565b9190610cce905f60208501940190610cae565b565b34610d0057610ce0366004610bcc565b610cfc610ceb610c9f565b610cf36103a2565b91829182610cbb565b0390f35b6103a8565b610d1061012c610bde565b90565b610d1b610d05565b90565b34610d4e57610d2e366004610bcc565b610d4a610d39610d13565b610d416103a2565b91829182610c20565b0390f35b6103a8565b90602082820312610d82575f82013560018060401b038111610d7d57610d799201610abf565b9091565b6103b0565b6103ac565b5190565b60209181520190565b60200190565b610db9610dc2602093610dc793610db0816109c9565b93848093610808565b958691016109d6565b6108b3565b0190565b610dd490610552565b9052565b90610e0290602080610df7604084015f8701518582035f870152610d9a565b940151910190610dcb565b90565b90610e0f91610dd8565b90565b60200190565b90610e2c610e2583610d87565b8092610d8b565b9081610e3d60208302840194610d94565b925f915b838310610e5057505050505090565b90919293946020610e72610e6c83856001950387528951610e05565b97610e12565b9301930191939290610e41565b610e949160208201915f818403910152610e18565b90565b34610ec857610ec4610eb3610ead366004610d53565b90613a14565b610ebb6103a2565b91829182610e7f565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b90565b610efd90610ef1565b9052565b9190610f14905f60208501940190610ef4565b565b34610f4657610f26366004610bcc565b610f42610f31610ecd565b610f396103a2565b91829182610f01565b0390f35b6103a8565b90565b610f62610f5d610f6792610f4b565b610743565b6103b4565b90565b610f75610e10610f4e565b90565b610f80610f6a565b90565b34610fb357610f93366004610bcc565b610faf610f9e610f78565b610fa66103a2565b91829182610c20565b0390f35b6103a8565b90610fc290610746565b5f5260205260405f2090565b610fe2610fdd610fe7926103e2565b610743565b6103e2565b90565b610ff390610fce565b90565b610fff90610fea565b90565b9061100c90610ff6565b5f5260205260405f2090565b60018060401b031690565b61102f6110349161091a565b611018565b90565b6110419054611023565b90565b60401c90565b60ff1690565b61105c61106191611044565b61104a565b90565b61106e9054611050565b90565b60481c90565b60ff1690565b61108961108e91611071565b611077565b90565b61109b905461107d565b90565b90565b6110ad6110b29161091a565b61109e565b90565b6110bf90546110a1565b90565b906110d16110d6926003610fb8565b611002565b6110e15f8201610936565b916110ee60018301611037565b916110fb60018201611064565b91611114600261110d60018501611091565b93016110b5565b90565b611120906104ad565b9052565b634e487b7160e01b5f52602160045260245ffd5b6005111561114257565b611124565b9061115182611138565b565b61115c90611147565b90565b61116890611153565b9052565b909594926111b7946111a66111b09261119c60809661119260a088019c5f890190610555565b6020870190610c13565b6040850190611117565b606083019061115f565b0190610ef4565b565b346111ee576111ea6111d56111cf36600461041c565b906110c2565b916111e19593956103a2565b9586958661116c565b0390f35b6103a8565b346112235761121f61120e611209366004610482565b613a2e565b6112166103a2565b91829182610562565b0390f35b6103a8565b5190565b60209181520190565b60200190565b611244906103ed565b9052565b906112558160209361123b565b0190565b60200190565b9061127c61127661126f84611228565b809361122c565b92611235565b905f5b81811061128c5750505090565b9091926112a561129f6001928651611248565b94611259565b910191909161127f565b6112c49160208201915f81840391015261125f565b90565b346112f7576112f36112e26112dd366004610482565b613ae6565b6112ea6103a2565b918291826112af565b0390f35b6103a8565b90565b61131361130e611318926112fc565b610743565b610552565b90565b61132560c86112ff565b90565b61133061131b565b90565b3461136357611343366004610bcc565b61135f61134e611328565b6113566103a2565b91829182610562565b0390f35b6103a8565b919061137b905f60208501940190610a12565b565b346113ae576113aa61139961139336600461041c565b90613b86565b6113a16103a2565b91829182611368565b0390f35b6103a8565b906113bd90610746565b5f5260205260405f2090565b6113df906113da6007915f926113b3565b610c91565b90565b346114125761140e6113fd6113f8366004610482565b6113c9565b6114056103a2565b91829182610cbb565b0390f35b6103a8565b346114475761144361143261142d366004610482565b613c0d565b61143a6103a2565b918291826112af565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b346114a057611480366004610bcc565b61149c61148b61144c565b6114936103a2565b91829182610cbb565b0390f35b6103a8565b906080828203126114fe576114bc815f84016103d3565b926114ca82602085016103d3565b926114d88360408301610ab0565b92606082013560018060401b0381116114f9576114f59201610abf565b9091565b6103b0565b6103ac565b346115355761151f6115163660046114a5565b93929092613c7f565b6115276103a2565b8061153181610449565b0390f35b6103a8565b90565b61155161154c6115569261153a565b610743565b610552565b90565b611563603261153d565b90565b61156e611559565b90565b346115a157611581366004610bcc565b61159d61158c611566565b6115946103a2565b91829182610562565b0390f35b6103a8565b346115d7576115d36115c26115bc36600461041c565b90613c8e565b6115ca6103a2565b91829182611368565b0390f35b6103a8565b90565b6115f36115ee6115f8926115dc565b610743565b6104ad565b90565b61160560036115df565b90565b6116106115fb565b90565b9190611626905f60208501940190611117565b565b3461165857611638366004610bcc565b611654611643611608565b61164b6103a2565b91829182611613565b0390f35b6103a8565b9190611670905f6020850194019061115f565b565b346116a35761169f61168e61168836600461041c565b90613cba565b6116966103a2565b9182918261165d565b0390f35b6103a8565b906116bb6116b46103a2565b92836108d1565b565b60018060401b0381116116d35760208091020190565b6108bd565b5f80fd5b5f80fd5b5f80fd5b60018060401b038111611700576116fc6020916108b3565b0190565b6108bd565b90825f939282370152565b90929192611725611720826116e4565b6116a8565b938185526020850190828401116117415761173f92611705565b565b6116e0565b9080601f830112156117645781602061176193359101611710565b90565b6105ad565b9190916040818403126117ba5761178060406116a8565b925f8201359160018060401b0383116117b5576117a2826117ae948301611746565b5f860152602001610707565b6020830152565b6116dc565b6116d8565b9291906117d36117ce826116bd565b6116a8565b93818552602080860192028101918383116118285781905b8382106117f9575050505050565b813560018060401b038111611823576020916118188784938701611769565b8152019101906117eb565b6105ad565b6105b5565b9080601f8301121561184b57816020611848933591016117bf565b90565b6105ad565b6080818303126118a857611866825f83016103d3565b92611874836020840161040d565b9260408301359060018060401b0382116118a357611897816118a093860161182d565b93606001610707565b90565b6103b0565b6103ac565b346118df576118c96118c0366004611850565b9291909161409e565b6118d16103a2565b806118db81610449565b0390f35b6103a8565b90565b6118fb6118f6611900926118e4565b610743565b610552565b90565b61190d60406118e7565b90565b611918611903565b90565b3461194b5761192b366004610bcc565b611947611936611910565b61193e6103a2565b91829182610562565b0390f35b6103a8565b3461197e57611960366004610bcc565b6119686146cd565b6119706103a2565b8061197a81610449565b0390f35b6103a8565b61198c90611153565b9052565b61199990610ef1565b9052565b906080806119f5936119b55f8201515f860190610dcb565b6119c7602082015160208601906104a0565b6119d9604082015160408601906104b3565b6119eb60608201516060860190611983565b0151910190611990565b565b9190611a0a905f60a0850194019061199d565b565b34611a3d57611a39611a28611a2236600461041c565b9061480a565b611a306103a2565b918291826119f7565b0390f35b6103a8565b34611a7357611a6f611a5e611a5836600461041c565b90614862565b611a666103a2565b91829182610c20565b0390f35b6103a8565b34611aa657611a88366004610bcc565b611a9061488a565b611a986103a2565b80611aa281610449565b0390f35b6103a8565b34611adb57611ad7611ac6611ac1366004610482565b6148db565b611ace6103a2565b91829182610562565b0390f35b6103a8565b9091606082840312611b1557611b12611afb845f85016103d3565b93611b098160208601610707565b93604001610707565b90565b6103ac565b92916020611b36611b3e9360408701908782035f89015261125f565b940190610555565b565b34611b7257611b59611b53366004611ae0565b91614979565b90611b6e611b656103a2565b92839283611b1a565b0390f35b6103a8565b34611ba557611b8f611b8a3660046106a2565b614b00565b611b976103a2565b80611ba181610449565b0390f35b6103a8565b34611bda57611bba366004610bcc565b611bd6611bc5614b0f565b611bcd6103a2565b91829182610cbb565b0390f35b6103a8565b909182601f83011215611c175781359160018060401b038311611c12576020019260208302840111611c0d57565b6105b5565b6105b1565b6105ad565b919091604081840312611c5b57611c35835f83016103d3565b92602082013560018060401b038111611c5657611c529201611bdf565b9091565b6103b0565b6103ac565b34611c8f57611c79611c73366004611c1c565b91614b96565b611c816103a2565b80611c8b81610449565b0390f35b6103a8565b91606083830312611cde57611cab825f85016103d3565b92611cb9836020830161040d565b92604082013560018060401b038111611cd957611cd69201611746565b90565b6103b0565b6103ac565b90611ced90610746565b5f5260205260405f2090565b90611d0390610ff6565b5f5260205260405f2090565b905090565b611d39611d3092602092611d27816109c9565b94858093611d0f565b938491016109d6565b0190565b90565b611d4c611d5191610552565b611d3d565b9052565b611d65611d6c9160209493611d14565b8092611d40565b0190565b611d84611d7b6103a2565b92839283611d55565b03902090565b611d9391611d70565b90565b611da6906008611dab9302610c6a565b61091f565b90565b90611db99154611d96565b90565b90611de492611dda611ddf92611dd56009955f96611ce3565b611cf9565b611d8a565b611dae565b90565b34611e1857611e14611e03611dfd366004611c94565b91611dbc565b611e0b6103a2565b91829182610562565b0390f35b6103a8565b909182601f83011215611e555781359160018060401b038311611e50576020019260018302840111611e4b57565b6105b5565b6105b1565b6105ad565b91606083830312611ea557611e71825f85016103d3565b92611e7f836020830161040d565b92604082013560018060401b038111611ea057611e9c9201611e1d565b9091565b6103b0565b6103ac565b34611edc57611ec6611ebd366004611e5a565b92919091614df9565b611ece6103a2565b80611ed881610449565b0390f35b6103a8565b611eea816104c0565b03611ef157565b5f80fd5b90503590611f0282611ee1565b565b91909160a081840312611f6e57611f1d835f83016103d3565b92602082013560018060401b038111611f695781611f3c918401611e1d565b929093611f66611f4f8460408501610707565b93611f5d8160608601610707565b93608001611ef5565b90565b6103b0565b6103ac565b34611fa857611f92611f86366004611f04565b949390939291926150c7565b611f9a6103a2565b80611fa481610449565b0390f35b6103a8565b34611fdb57611fc5611fc0366004610482565b615477565b611fcd6103a2565b80611fd781610449565b0390f35b6103a8565b909160608284031261201557612012611ffb845f85016103d3565b9361200981602086016103d3565b93604001610ab0565b90565b6103ac565b346120495761203361202d366004611fe0565b916156ec565b61203b6103a2565b8061204581610449565b0390f35b6103a8565b3461207d5761206761206136600461041c565b906158ab565b61206f6103a2565b8061207981610449565b0390f35b6103a8565b5190565b60209181520190565b60200190565b906120e3906060806120b4608084015f8701518582035f870152610d9a565b946120c760208201516020860190610dcb565b6120d960408201516040860190610dcb565b01519101906104c5565b90565b906120f091612095565b90565b60200190565b9061210d61210683612082565b8092612086565b908161211e6020830284019461208f565b925f915b83831061213157505050505090565b9091929394602061215361214d838560019503875289516120e6565b976120f3565b9301930191939290612122565b6121759160208201915f8184039101526120f9565b90565b346121a8576121a461219361218e366004610482565b615c20565b61219b6103a2565b91829182612160565b0390f35b6103a8565b346121db576121c56121c0366004610482565b615db0565b6121cd6103a2565b806121d781610449565b0390f35b6103a8565b6121ec600a5f90610c91565b90565b3461221f576121ff366004610bcc565b61221b61220a6121e0565b6122126103a2565b91829182610cbb565b0390f35b6103a8565b346122585761225461224361223a366004611e5a565b92919091615e1d565b61224b6103a2565b91829182610562565b0390f35b6103a8565b9061226790610746565b5f5260205260405f2090565b61227f61228491611071565b610943565b90565b6122919054612273565b90565b61229f90600261225d565b6122aa5f8201611037565b916122c15f6122ba818501611064565b9301612287565b90565b6040906122ed6122f494969593966122e360608401985f850190610c13565b6020830190611117565b0190610a12565b565b346123295761232561231161230c366004610482565b612294565b61231c9391936103a2565b938493846122c4565b0390f35b6103a8565b3461235e5761233e366004610bcc565b61235a612349615e52565b6123516103a2565b91829182610cbb565b0390f35b6103a8565b346123925761237c61237636600461041c565b90615f3c565b6123846103a2565b8061238e81610449565b0390f35b6103a8565b346123c8576123c46123b36123ad36600461041c565b906160d1565b6123bb6103a2565b91829182611368565b0390f35b6103a8565b346123fb576123e56123e03660046106a2565b6161d0565b6123ed6103a2565b806123f781610449565b0390f35b6103a8565b9190604083820312612428578061241c612425925f86016103d3565b93602001611ef5565b90565b6103ac565b3461245c57612446612440366004612400565b906161db565b61244e6103a2565b8061245881610449565b0390f35b6103a8565b7f32721f8dc67e953c540da90f663059c23fc47f70d11e317ed6d5a24c8b85637490565b61248d612461565b90565b346124c0576124a0366004610bcc565b6124bc6124ab612485565b6124b36103a2565b91829182610f01565b0390f35b6103a8565b346124f4576124de6124d836600461041c565b906162a4565b6124e66103a2565b806124f081610449565b0390f35b6103a8565b5f80fd5b5f7f4f6e6c792054616e676c6520636f726500000000000000000000000000000000910152565b61253160106020926109cd565b61253a816124fd565b0190565b6125539060208101905f818303910152612524565b90565b1561255d57565b6125656103a2565b62461bcd60e51b81528061257b6004820161253e565b0390fd5b61258b6125909161091a565b610c6e565b90565b61259d905461257f565b90565b90565b6125b76125b26125bc926125a0565b610743565b6103e2565b90565b6125c8906125a3565b90565b5f7f416c726561647920726567697374657265640000000000000000000000000000910152565b6125ff60126020926109cd565b612608816125cb565b0190565b6126219060208101905f8183039101526125f2565b90565b1561262b57565b6126336103a2565b62461bcd60e51b8152806126496004820161260c565b0390fd5b5f1b90565b9061266360018060a01b039161264d565b9181191691161790565b90565b9061268561268061268c92610ff6565b61266d565b8254612652565b9055565b612712612717926126d3336126cd6126c77f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b61270a6126ea6126e5600786906113b3565b612593565b6127046126fe6126f95f6125bf565b6103ed565b916103ed565b14612624565b9160076113b3565b612670565b565b61272360606116a8565b90565b5f90565b5f90565b5f90565b61273a612719565b906020808084612748612726565b81520161275361272a565b81520161275e61272e565b81525050565b61276c612732565b90565b6127819061277b612764565b506163cc565b90565b5f90565b6127a96127af926127a45f9361279c612784565b506003610fb8565b611002565b01610936565b90565b5f7f4e6f742073657276696365206f776e6572000000000000000000000000000000910152565b6127e660116020926109cd565b6127ef816127b2565b0190565b6128089060208101905f8183039101526127d9565b90565b1561281257565b61281a6103a2565b62461bcd60e51b815280612830600482016127f3565b0390fd5b5090565b5f7f546f6f206d616e7920646566696e6974696f6e73000000000000000000000000910152565b61286c60146020926109cd565b61287581612838565b0190565b61288e9060208101905f81830391015261285f565b90565b1561289857565b6128a06103a2565b62461bcd60e51b8152806128b660048201612879565b0390fd5b634e487b7160e01b5f52601160045260245ffd5b6128dd6128e391939293610552565b92610552565b916128ef838202610552565b9281840414901517156128fe57565b6128ba565b61290e9060046128ce565b90565b90612924905f1990602003600802610c6a565b8154169055565b1b90565b9190600861294a9102916129445f198461292b565b9261292b565b9181191691161790565b61296861296361296d92610552565b610743565b610552565b90565b90565b919061298961298461299193612954565b612970565b90835461292f565b9055565b6129a7916129a1612784565b91612973565b565b5b8181106129b5575050565b806129c25f600193612995565b016129aa565b906129d8905f1990600802610c6a565b191690565b816129e7916129c8565b906002021790565b905f91612a066129fe82610811565b9283546129dd565b905555565b601f602091010490565b919290602082105f14612a6e57601f8411600114612a3e57612a389293506129dd565b90555b5b565b5090612a64612a69936001612a5b612a5585610811565b92612a0b565b820191016129a9565b6129ef565b612a3b565b50612aa58293612a7f600194610811565b612a9e612a8b85612a0b565b820192601f861680612ab0575b50612a0b565b01906129a9565b600202179055612a3c565b612abc90888603612911565b5f612a98565b929091600160401b8211612b1d576020115f14612b0e57602081105f14612af257612aec916129dd565b90555b5b565b60019160ff1916612b0284610811565b55600202019055612aef565b60019150600202019055612af0565b6108bd565b908154612b2e816107de565b90818311612b57575b818310612b45575b50505050565b612b4e93612a15565b5f808080612b3f565b612b6383838387612ac2565b612b37565b5f612b7291612b22565b565b634e487b7160e01b5f525f60045260245ffd5b905f03612b9957612b9790612b68565b565b612b74565b60035f91612bae83808301612b87565b612bbb8360018301612995565b612bc88360028301612995565b0155565b905f03612bde57612bdc90612b9e565b565b612b74565b5b818110612bef575050565b80612bfc5f600493612bcc565b01612be4565b9091828110612c11575b505050565b612c2f612c29612c23612c3a95612903565b92612903565b92610790565b918201910190612be3565b5f8080612c0c565b90600160401b8111612c665781612c5b612c649361078c565b90828155612c02565b565b6108bd565b5f612c7591612c42565b565b905f03612c8957612c8790612c6b565b565b612b74565b612ca2612c9d612ca7926125a0565b610743565b610552565b90565b6001612cb69101610552565b90565b5f80fd5b5f80fd5b5f80fd5b903590600160800381360303821215612cdc570190565b612cb9565b90821015612cfb576020612cf89202810190612cc5565b90565b610778565b903590600160200381360303821215612d40570180359060018060401b038211612d3b57602001916001820236038313612d3657565b612cc1565b612cbd565b612cb9565b91565b5090565b5f7f4e616d6520746f6f206c6f6e6700000000000000000000000000000000000000910152565b612d80600d6020926109cd565b612d8981612d4c565b0190565b612da29060208101905f818303910152612d73565b90565b15612dac57565b612db46103a2565b62461bcd60e51b815280612dca60048201612d8d565b0390fd5b35612dd8816106f3565b90565b5f7f496e76616c696420626f756e6473000000000000000000000000000000000000910152565b612e0f600e6020926109cd565b612e1881612ddb565b0190565b612e319060208101905f818303910152612e02565b90565b15612e3b57565b612e436103a2565b62461bcd60e51b815280612e5960048201612e1c565b0390fd5b90565b5f5260205f2090565b5490565b612e7681612e69565b821015612e9057612e88600491612e60565b910201905f90565b610778565b5090565b9190601f8111612ea9575b505050565b612eb5612eda93610811565b906020612ec184612a0b565b83019310612ee2575b612ed390612a0b565b01906129a9565b5f8080612ea4565b9150612ed381929050612eca565b91612efb9082612e95565b9060018060401b038211612fb857612f1d82612f1785546107de565b85612e99565b5f90601f8311600114612f5057918091612f3f935f92612f44575b50506129dd565b90555b565b90915001355f80612f38565b601f19831691612f5f85610811565b925f5b818110612fa057509160029391856001969410612f86575b50505002019055612f42565b612f96910135601f8416906129c8565b90555f8080612f7a565b91936020600181928787013581550195019201612f62565b6108bd565b90612fc89291612ef0565b565b90612fd65f199161264d565b9181191691161790565b90612ff5612ff0612ffc92612954565b612970565b8254612fca565b9055565b3561300a81611ee1565b90565b9061301960ff9161264d565b9181191691161790565b61302c906104c0565b90565b90565b9061304761304261304e92613023565b61302f565b825461300d565b9055565b906130b0606060036130b6946130765f82016130705f880188612d00565b91612fbd565b61308f6001820161308960208801612dce565b90612fe0565b6130a8600282016130a260408801612dce565b90612fe0565b019201613000565b90613032565b565b91906130c9576130c791613052565b565b612b74565b90815491600160401b8310156130f957826130f19160016130f795018155612e6d565b906130b8565b565b6108bd565b929190926131313361312b61312561312061311b600787906113b3565b612593565b6103ed565b916103ed565b1461280b565b61315f61313f858490612834565b61315861315261314d611559565b610552565b91610552565b1115612891565b6131745f61316f60088490610762565b612c77565b61317d5f612c8e565b5b8061319b613195613190888790612834565b610552565b91610552565b101561326e57613269906131f26131d26131cc6131c66131bd8a898791612ce1565b5f810190612d00565b90612d45565b90612d48565b6131eb6131e56131e0611903565b610552565b91610552565b1115612da5565b61323b61320c604061320689888691612ce1565b01612dce565b61323461322e61322960206132238c8b8991612ce1565b01612dce565b610552565b91610552565b1015612e34565b61326461325261324d60088690610762565b612e5d565b61325e88878591612ce1565b906130ce565b612caa565b61317e565b5050509050565b5f7f5a65726f20616464726573730000000000000000000000000000000000000000910152565b6132a9600c6020926109cd565b6132b281613275565b0190565b6132cb9060208101905f81830391015261329c565b90565b156132d557565b6132dd6103a2565b62461bcd60e51b8152806132f3600482016132b6565b0390fd5b9061330190610746565b5f5260205260405f2090565b90565b61331990610ef1565b90565b6133259061091a565b90565b919061333e61333961334693613310565b61331c565b90835461292f565b9055565b5f90565b6133609161335a61334a565b91613328565b565b5f60026133819261337583808301612995565b8260018201550161334e565b565b905f036133955761339390613362565b565b612b74565b60481b90565b906133af60ff60481b9161339a565b9181191691161790565b6133c290611147565b90565b90565b906133dd6133d86133e4926133b9565b6133c5565b82546133a0565b9055565b6134243361341e6134187f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6134498261344261343c6134375f6125bf565b6103ed565b916103ed565b14156132ce565b61346f61346a61346361345e600685906132f7565b61330d565b84906164aa565b612624565b61348e5f61348961348260038590610fb8565b8590611002565b613383565b6134b1600260016134ab6134a460038690610fb8565b8690611002565b016133c8565b906134e56134df7f8e2d88795a3c66719a287658cbf68b3eb2b8e183cb18f46f4813913fc8aafc4b93610746565b91610ff6565b916134ee6103a2565b806134f881610449565b0390a3565b61350e906135096164e4565b613510565b565b61351b90600b612670565b565b613526906134fd565b565b5f7f4e6f742072656769737465726564206f70657261746f72000000000000000000910152565b61355c60176020926109cd565b61356581613528565b0190565b61357e9060208101905f81830391015261354f565b90565b1561358857565b6135906103a2565b62461bcd60e51b8152806135a660048201613569565b0390fd5b906135df979695949392916135da6135d56135ce6135c98460066132f7565b61330d565b3390616532565b613581565b61381e565b565b6135f56135f06135fa926103b4565b610743565b610552565b90565b61361161360c61361692610552565b610743565b6103b4565b90565b91602061363a92949361363360408201965f830190610c13565b0190610c13565b565b61364b61365191939293610552565b92610552565b820391821161365c57565b6128ba565b60018060401b03811161367d576136796020916108b3565b0190565b6108bd565b9092919261369761369282613661565b6116a8565b938185526020850190828401116136b3576136b192611705565b565b6116e0565b6136c3913691613682565b90565b60200190565b5190565b949290979695939160e08601985f87016136e991610ef4565b602086016136f691610cae565b6040850161370391610c13565b6060840161371091610c13565b6080830161371d91611117565b60a0820161372a91610ef4565b60c00161373691610c13565b565b5f61190160f01b910152565b61375060028092611d0f565b61375981613738565b0190565b90565b61376c61377191610ef1565b61375d565b9052565b602080939261379061378961379894613744565b8092613760565b018092613760565b0190565b5f7f496e76616c6964207369676e6174757265000000000000000000000000000000910152565b6137d060116020926109cd565b6137d98161379c565b0190565b6137f29060208101905f8183039101526137c3565b90565b156137fc57565b6138046103a2565b62461bcd60e51b81528061381a600482016137dd565b0390fd5b9192939497969095978061383a61383442610552565b916135e1565b116139a2576138524261384c836135e1565b9061363c565b61386b613865613860610d05565b6135e1565b91610552565b1161397a57613978979861394f61396d93856138d98a6138ca8d613955988d8d6138a1613896612461565b9633999592936136b8565b6138b36138ad826136cc565b916136c6565b2092936138be6103a2565b988997602089016136d0565b602082018103825203826108d1565b6138eb6138e5826136cc565b916136c6565b206139367f000000000000000000000000000000000000000000000000000000000000000061392761391b6103a2565b93849260208401613775565b602082018103825203826108d1565b613948613942826136cc565b916136c6565b20926136b8565b9061656c565b613967613961336103ed565b916103ed565b146137f5565b9333919293946166e9565b565b613983426135fd565b9061399e5f9283926318355b7560e21b845260048401613619565b0390fd5b6139ab426135fd565b906139c65f9283926357ea02e960e01b845260048401613619565b0390fd5b906139da979695949392916135aa565b565b606090565b90602082820312613a0f575f82013560018060401b038111613a0a57613a07920161182d565b90565b6103b0565b6103ac565b90613a2b91613a216139dc565b50908101906139e1565b90565b613a4d613a48613a5292613a40612784565b5060056132f7565b61330d565b616afb565b90565b606090565b60018060401b038111613a705760208091020190565b6108bd565b90613a87613a8283613a5a565b6116a8565b918252565b369037565b90613ab6613a9e83613a75565b92602080613aac8693613a5a565b9201910390613a8c565b565b90613ac282611228565b811015613ad3576020809102010190565b610778565b90613ae2906103ed565b9052565b90613aef613a55565b50613b0c613b07613b02600485906132f7565b61330d565b616afb565b91613b1683613a91565b91613b205f612c8e565b5b80613b34613b2e87610552565b91610552565b1015613b7b57613b7690613b71613b5f613b58613b53600488906132f7565b61330d565b8390616b4a565b613b6c8791849092613ab8565b613ad8565b612caa565b613b21565b5092505090565b5f90565b90613b8f613b82565b50613bb16001613bab613ba460038690610fb8565b8490611002565b01611091565b613bc3613bbd5f611147565b91611147565b14918215613bd1575b505090565b613bf29250600191613be7613bec926003610fb8565b611002565b01611091565b613c05613bff6001611147565b91611147565b145f80613bcc565b613c3390613c19613a55565b505f90613c2d613c2761131b565b92612c8e565b90614979565b5090565b90613c6994939291613c64613c5f613c58613c538460066132f7565b61330d565b3390616532565b613581565b613c6b565b565b91613c7d9492939133919293946166e9565b565b90613c8c94939291613c37565b565b90613cae613ca9613cb393613ca1613b82565b5060066132f7565b61330d565b616532565b90565b5f90565b613cdc613ce292613cd7600193613ccf613cb6565b506003610fb8565b611002565b01611091565b90565b613cee90610fea565b90565b5f7f496e7465726e616c206f6e6c7900000000000000000000000000000000000000910152565b613d25600d6020926109cd565b613d2e81613cf1565b0190565b613d479060208101905f818303910152613d18565b90565b15613d5157565b613d596103a2565b62461bcd60e51b815280613d6f60048201613d32565b0390fd5b60018060401b038111613d895760208091020190565b6108bd565b90613da0613d9b83613d73565b6116a8565b918252565b369037565b90613dcf613db783613d8e565b92602080613dc58693613d73565b9201910390613da5565b565b90613ddb82610d87565b811015613dec576020809102010190565b610778565b90565b5190565b90613e0282613df4565b811015613e13576020809102010190565b610778565b90613e2290610ef1565b9052565b606090565b90565b60209181520190565b905f9291805490613e51613e4a836107de565b8094613e2e565b916001811690815f14613ea85750600114613e6c575b505050565b613e799192939450610799565b915f925b818410613e9057505001905f8080613e67565b60018160209295939554848601520191019290613e7d565b92949550505060ff19168252151560200201905f8080613e67565b90613ecd91613e37565b90565b90613ef0613ee992613ee06103a2565b93848092613ec3565b03836108d1565b565b613efb90613ed0565b90565b613f089051610ef1565b90565b613f159051610552565b90565b5f7f56616c7565206f7574206f6620626f756e647300000000000000000000000000910152565b613f4c60136020926109cd565b613f5581613f18565b0190565b613f71613f7f9260408301908382035f8501526109e1565b906020818303910152613f3f565b90565b92916020613f9e613fa69360408701908782035f8901526109e1565b940190610555565b565b905f9291805490613fc2613fbb836107de565b80946109cd565b916001811690815f146140195750600114613fdd575b505050565b613fea9192939450610811565b915f925b81841061400157505001905f8080613fd8565b60018160209295939554848601520191019290613fee565b92949550505060ff19168252151560200201905f8080613fd8565b5f7f5265717569726564206d6574726963206d697373696e67000000000000000000910152565b61406860176020926109cd565b61407181614034565b0190565b61408d61409b9260408301908382035f850152613fa8565b90602081830391015261405b565b90565b929390936140c6336140c06140ba6140b530613ce5565b6103ed565b916103ed565b14613d4a565b6140da6140d560088690610762565b612e5d565b946140e482613daa565b946140ee5f612c8e565b5b806141026140fc86610552565b91610552565b1015614155576141509061414b6141265f61411e8a8590613dd1565b510151613df1565b614138614132826136cc565b916136c6565b206141468a91849092613df8565b613e18565b612caa565b6140ef565b50919490929561416481612e69565b6141766141705f612c8e565b91610552565b1196614180613e26565b9088614600575b6141905f612c8e565b5b806141a461419e8b610552565b91610552565b10156144635760015f8b614297575b50908887896141c9946141ce575b505050612caa565b614191565b825f61420c614204614215946141ff6141f760206141f061421a9b8d90613dd1565b5101613f0b565b976009611ce3565b611cf9565b928790613dd1565b51015190611d8a565b612fe0565b88878990614244602061423d5f614232878990613dd1565b510151958790613dd1565b5101613f0b565b6142776142717f23ed02bd3605bdea6a8afa76c46f00d274860ba6cea980f2585b696df9e182bd93610746565b93610ff6565b9361428c6142836103a2565b92839283613f82565b0390a38887896141c1565b9a90959291996142a65f612c8e565b5b806142c26142bc6142b78a612e69565b610552565b91610552565b101561444d576142da6142d58d87613df8565b613efe565b6142fe6142f86142f36142ee8a8690613df8565b613efe565b610ef1565b91610ef1565b146143115761430c90612caa565b6142a7565b8a919b929c50896141c99495988a926001908a61433b6020614334898b90613dd1565b5101613f0b565b61436361435d6143586001614351868890612e6d565b5001610936565b610552565b91610552565b109188888415614403575b50505050614398575b614382905b156104c0565b614391575b93945050506141b3565b505f614387565b905082825f6143a8878990613dd1565b510151916143f46143e26143dc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936143eb6103a2565b91829182613f59565b0390a36143825f919050614377565b61444393945061443161443d9361442b602061442461443896600296613dd1565b5101613f0b565b96612e6d565b5001610936565b610552565b91610552565b118a5f888861436e565b5099909a87896141c99495986143828d9461437c565b5097505092935093506144755f612c8e565b935b8461449261448c61448786612e69565b610552565b91610552565b10156145f9576144b86144b260036144ab868990612e6d565b500161095d565b156104c0565b6145ee576144da6144d55f6144ce868990612e6d565b5001613e2b565b613ef2565b6144ec6144e6826136cc565b916136c6565b20905f966144f95f612c8e565b5b8061451561450f61450a86613df4565b610552565b91610552565b10156145dc5761452e614529848390613df8565b613efe565b61454061453a86610ef1565b91610ef1565b146145535761454e90612caa565b6144fa565b5095909650614574915061456960015b156104c0565b61457b575b5b612caa565b9394614477565b82855f614589878590612e6d565b5001916145d46145c26145bc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936145cb6103a2565b91829182614075565b0390a361456e565b50959096614574925061456990614563565b94936145749061456f565b5050505050565b9693905061461a614615839794999693612e69565b613daa565b976146245f612c8e565b5b8061464061463a6146358b612e69565b610552565b91610552565b101561469a576146959061469061466b6146665f61465f8d8690612e6d565b5001613e2b565b613ef2565b61467d614677826136cc565b916136c6565b2061468b8d91849092613df8565b613e18565b612caa565b614625565b509295919497909396614187565b6146b06164e4565b6146b86146ba565b565b6146cb6146c65f6125bf565b616be2565b565b6146d56146a8565b565b6146e160a06116a8565b90565b5f90565b5f90565b5f90565b6146f86146d7565b90602080808080866147086146e4565b815201614713612726565b81520161471e61272a565b8152016147296146e8565b8152016147346146ec565b81525050565b6147426146f0565b90565b9061474f90610552565b9052565b9061475d906103b4565b9052565b9061476b906104ad565b9052565b9061477990611147565b9052565b906147fc6147f3600261478e6146d7565b946147a561479d5f8301610936565b5f8801614745565b6147bd6147b460018301611037565b60208801614753565b6147d56147cc60018301611064565b60408801614761565b6147ed6147e460018301611091565b6060880161476f565b016110b5565b60808401613e18565b565b6148079061477d565b90565b61482f9161482561482a9261481d61473a565b506003610fb8565b611002565b6147fe565b90565b5f90565b9061484090610746565b5f5260205260405f2090565b9061485690610ff6565b5f5260205260405f2090565b6148879161487d61488292614875614832565b50600c614836565b61484c565b611037565b90565b614892616bf8565b61489a615e52565b6148ac6148a6836103ed565b916103ed565b036148bc576148ba90616be2565b565b6148d7905f91829163118cdaa760e01b835260048301610cbb565b0390fd5b6148fa6148f56148ff926148ed612784565b5060046132f7565b61330d565b616afb565b90565b61490c90516104ad565b90565b61492361491e614928926125a0565b610743565b6104ad565b90565b61493590516103b4565b90565b61494c614947614951926104ad565b610743565b610552565b90565b61496361496991939293610552565b92610552565b820180921161497457565b6128ba565b90929192614985613a55565b5061498e612784565b50614998826163cc565b936149b56149b06149ab600586906132f7565b61330d565b616afb565b926149c260208701614902565b6149d46149ce5f61490f565b916104ad565b148015614ac6575b8015614aab575b614a9157614a1d86614a17614a126020614a0b614a065f614a7a9b9c9d0161492b565b6135e1565b9301614902565b614938565b906128ce565b9180614a38614a32614a2d61131b565b610552565b91610552565b115f14614a8c5750614a4861131b565b5b614a54848290614954565b614a66614a6088610552565b91610552565b115f14614a7d5750845b9092909192616c2e565b91565b614a879084614954565b614a70565b614a49565b5050509150614aa7614aa25f612c8e565b613a91565b9190565b5082614abf614ab986610552565b91610552565b10156149e3565b5083614ada614ad45f612c8e565b91610552565b146149dc565b614af190614aec6164e4565b614af3565b565b614afe90600a612670565b565b614b0990614ae0565b565b5f90565b614b17614b0b565b50614b215f612593565b90565b5090565b9190811015614b38576020020190565b610778565b35614b47816103f9565b90565b5f80fd5b60e01b90565b5f910312614b5e57565b6103ac565b916020614b84929493614b7d60408201965f830190610c13565b0190610cae565b565b614b8e6103a2565b3d5f823e3d90fd5b90929192614ba35f612c8e565b5b80614bc1614bbb614bb6858990614b24565b610552565b91610552565b1015614c7057614bd030613ce5565b9063ba1fb10384614beb614be6868a8691614b28565b614b3d565b93803b15614c6b57614c105f8094614c1b614c046103a2565b98899687958694614b4e565b845260048401614b63565b03925af1918215614c6657614c3592614c3a575b50612caa565b614ba4565b614c59905f3d8111614c5f575b614c5181836108d1565b810190614b54565b5f614c2f565b503d614c47565b614b86565b614b4a565b5050509050565b5f7f4e6f7420736c617368696e67206f7261636c6500000000000000000000000000910152565b614cab60136020926109cd565b614cb481614c77565b0190565b614ccd9060208101905f818303910152614c9e565b90565b15614cd757565b614cdf6103a2565b62461bcd60e51b815280614cf560048201614cb8565b0390fd5b5f7f4f70657261746f7220756e6b6e6f776e00000000000000000000000000000000910152565b614d2d60106020926109cd565b614d3681614cf9565b0190565b614d4f9060208101905f818303910152614d20565b90565b15614d5957565b614d616103a2565b62461bcd60e51b815280614d7760048201614d3a565b0390fd5b90565b90614d8f60018060401b039161264d565b9181191691161790565b90565b90614db1614dac614db892610746565b614d99565b8254614d7e565b9055565b9190614dd681614dcf81614ddb956109cd565b8095611705565b6108b3565b0190565b9091614df69260208301925f818503910152614dbc565b90565b614e1e33614e18614e12614e0d600a612593565b6103ed565b916103ed565b14614cd0565b614e44614e3f614e38614e33600585906132f7565b61330d565b8490616532565b614d52565b614e70614e65614e60614e5960038590610fb8565b8590611002565b614d7b565b6001600391016133c8565b614e8e614e87614e82600484906132f7565b61330d565b8390616d4a565b50614eb6614e9b426135fd565b614eb1614eaa600c8590614836565b859061484c565b614d9c565b909192614eec614ee67f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b93610ff6565b93614f01614ef86103a2565b92839283614ddf565b0390a3565b614f1060806116a8565b90565b614f1e913691611710565b90565b52565b90614f2e906104c0565b9052565b5190565b90614f40816109c9565b9060018060401b038211614ffe57614f6282614f5c85546107de565b85612e99565b602090601f8311600114614f9657918091614f85935f92614f8a575b50506129dd565b90555b565b90915001515f80614f7e565b601f19831691614fa585610811565b925f5b818110614fe657509160029391856001969410614fcc575b50505002019055614f88565b614fdc910151601f8416906129c8565b90555f8080614fc0565b91936020600181928787015181550195019201614fa8565b6108bd565b9061500d91614f36565b565b61501990516104c0565b90565b906150796060600361507f9461503f5f82016150395f8801614f32565b90615003565b6150586001820161505260208801613f0b565b90612fe0565b6150716002820161506b60408801613f0b565b90612fe0565b01920161500f565b90613032565b565b9190615092576150909161501c565b565b612b74565b90815491600160401b8310156150c257826150ba9160016150c095018155612e6d565b90615081565b565b6108bd565b6151e5956151ce84966151c56151bd6151a96151a46151d79761514a61512a6151246151e09d8d9f9d61511f3361511961511361510e61510960078c906113b3565b612593565b6103ed565b916103ed565b1461280b565b612d45565b90612d48565b61514361513d615138611903565b610552565b91610552565b1115612da5565b6151678661516061515a8d610552565b91610552565b1015612e34565b61519d61517e61517960088490610762565b61078c565b61519761519161518c611559565b610552565b91610552565b10612891565b6008610762565b612e5d565b9899969294966151b7614f06565b9a614f13565b5f8a01614f21565b60208801614745565b60408601614745565b60608401614f24565b615097565b565b6152159061521061520b6152046151ff8460066132f7565b61330d565b3390616532565b613581565b6152f1565b565b5f7f43616e6e6f7420676f206f6e6c696e65207768696c6520736c61736865640000910152565b61524b601e6020926109cd565b61525481615217565b0190565b61526d9060208101905f81830391015261523e565b90565b60401b90565b9061528560ff60401b91615270565b9181191691161790565b6152a361529e6152a8926104ad565b610743565b6104ad565b90565b90565b906152c36152be6152ca9261528f565b6152ab565b8254615276565b9055565b9160206152ef9294936152e860408201965f83019061115f565b019061115f565b565b61530f61530a61530360038490610fb8565b3390611002565b614d7b565b9061531c60018301611091565b918261533161532b6003611147565b91611147565b1461545557826153496153435f611147565b91611147565b14801561543a575b615435576153789061536660018083016133c8565b60016153715f61490f565b91016152ae565b61539661538f61538a600484906132f7565b61330d565b33906164aa565b5080336153cc6153c67fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b916153d56103a2565b806153df81610449565b0390a390339091600161541b6154157f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936154306154276103a2565b928392836152ce565b0390a3565b505050565b508261544f6154496001611147565b91611147565b14615351565b61545d6103a2565b62461bcd60e51b81528061547360048201615258565b0390fd5b615480906151e7565b565b5f7f4e6f7420617574686f72697a6564000000000000000000000000000000000000910152565b6154b6600e6020926109cd565b6154bf81615482565b0190565b6154d89060208101905f8183039101526154a9565b90565b156154e257565b6154ea6103a2565b62461bcd60e51b815280615500600482016154c3565b0390fd5b90565b61551b61551661552092615504565b610743565b6103b4565b90565b5f7f496e74657276616c20746f6f2073686f72740000000000000000000000000000910152565b61555760126020926109cd565b61556081615523565b0190565b6155799060208101905f81830391015261554a565b90565b1561558357565b61558b6103a2565b62461bcd60e51b8152806155a160048201615564565b0390fd5b90565b6155bc6155b76155c1926155a5565b610743565b6104ad565b90565b5f7f4d6178206d6973736564206d757374206265203e3d2031000000000000000000910152565b6155f860176020926109cd565b615601816155c4565b0190565b61561a9060208101905f8183039101526155eb565b90565b1561562457565b61562c6103a2565b62461bcd60e51b81528061564260048201615605565b0390fd5b61565060606116a8565b90565b9061566861566361566f92613023565b61302f565b82546133a0565b9055565b906156b560405f6156bb9461569582820161568f84880161492b565b90614d9c565b6156ad8282016156a760208801614902565b906152ae565b01920161500f565b90615653565b565b906156c791615673565b565b9160206156ea9294936156e360408201965f830190610c13565b0190611117565b565b3361571f6157197f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14801561580b575b615730906154db565b61574e82615747615741603c615507565b916103b4565b101561557c565b61576c8361576561575f60016155a8565b916104ad565b101561561d565b6157c5826157b4856157ab61578d5f6157876002899061225d565b01612287565b916157a2615799615646565b955f8701614753565b60208501614761565b60408301614f24565b6157c06002849061225d565b6156bd565b90916157f17fc9599ed962624a858ec59bae0ed86c75f4db65fe04570021277edbedd04ea56492610746565b926158066157fd6103a2565b928392836156c9565b0390a2565b506157303361583561582f61582a615825600787906113b3565b612593565b6103ed565b916103ed565b149050615727565b634e487b7160e01b5f52601260045260245ffd5b61585d61586391610552565b91610552565b90811561586e570490565b61583d565b61588761588261588c92610552565b610743565b6104ad565b90565b6158a361589e6158a8926125a0565b610743565b6103b4565b90565b6158c96158c46158bd60038490610fb8565b8490611002565b614d7b565b906158d3816163cc565b6158df60018401611091565b6158f26158ec6003611147565b91611147565b14615b06576159025f8401610936565b61591461590e5f612c8e565b91610552565b14615b005761594a6159314261592b5f8701610936565b9061363c565b61594461593f5f850161492b565b6135e1565b90615851565b8061595e61595860ff614938565b91610552565b115f14615af2575060ff5b908161598861598261597d60018801611064565b6104ad565b916104ad565b11615995575b5050505050565b6159a282600186016152ae565b6159b76159ae5f61588f565b60018601614d9c565b6159d56159cf6159ca6020859401614902565b6104ad565b916104ad565b101580615acb575b6159e8575b8061598e565b615a036159f760018501611091565b936001600291016133c8565b615a21615a1a615a15600485906132f7565b61330d565b8590616d4a565b508190849091615a6f615a5d615a577f44fd32b677704ce68e7763897c49733b8f5289018ac60a5c926802d63759db4d93610746565b93610ff6565b93615a666103a2565b91829182611613565b0390a39190916002615aaa615aa47f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615abf615ab66103a2565b928392836152ce565b0390a35f8080806159e2565b50615ad860018401611091565b615aeb615ae56002611147565b91611147565b14156159dd565b615afb90615873565b615969565b50505050565b50505050565b606090565b60018060401b038111615b275760208091020190565b6108bd565b90615b3e615b3983615b11565b6116a8565b918252565b615b4d60806116a8565b90565b90615bb7615bae6003615b61615b43565b94615b78615b705f83016108f8565b5f8801614f21565b615b90615b8760018301610936565b60208801614745565b615ba8615b9f60028301610936565b60408801614745565b0161095d565b60608401614f24565b565b615bc290615b50565b90565b90615bcf8261078c565b615bd881615b2c565b92615be66020850191610790565b5f915b838310615bf65750505050565b60046020600192615c0685615bb9565b815201920192019190615be9565b615c1d90615bc5565b90565b615c37615c3c91615c2f615b0c565b506008610762565b615c14565b90565b615c6d90615c68615c63615c5c615c578460066132f7565b61330d565b3390616532565b613581565b615cc8565b565b5f7f43616e6e6f7420676f206f66666c696e65207768696c6520736c617368656400910152565b615ca3601f6020926109cd565b615cac81615c6f565b0190565b615cc59060208101905f818303910152615c96565b90565b615ce6615ce1615cda60038490610fb8565b3390611002565b614d7b565b90615cf360018301611091565b9182615d08615d026003611147565b91611147565b14615d8e57615d1c906001600491016133c8565b615d3a615d33615d2e600484906132f7565b61330d565b3390616d4a565b50903390916004615d74615d6e7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615d89615d806103a2565b928392836152ce565b0390a3565b615d966103a2565b62461bcd60e51b815280615dac60048201615cb0565b0390fd5b615db990615c3f565b565b909182615dcb81615dd293611d0f565b8093611705565b0190565b615de79060209493615dee93615dbb565b8092611d40565b0190565b9091615e0990615e006103a2565b93849384615dd6565b03902090565b9091615e1a92615df2565b90565b92615e42615e4a9392615e3d615e4f96615e35612784565b506009611ce3565b611cf9565b919091615e0f565b610936565b90565b615e5a614b0b565b50615e656001612593565b90565b615e729051611147565b90565b90565b615e8c615e87615e9192615e75565b610743565b610552565b90565b60207f6c00000000000000000000000000000000000000000000000000000000000000917f4f70657261746f72206e6f7420656c696769626c6520666f722072656d6f76615f8201520152565b615eee60216040926109cd565b615ef781615e94565b0190565b615f109060208101905f818303910152615ee1565b90565b15615f1a57565b615f226103a2565b62461bcd60e51b815280615f3860048201615efb565b0390fd5b90615fed615fe8615ff29333615f6d615f67615f62615f5d600786906113b3565b612593565b6103ed565b916103ed565b1480156160ab575b615f7e906154db565b615f9c615f97615f9060038490610fb8565b8690611002565b6147fe565b615fa860608201615e68565b615fbb615fb56003611147565b91611147565b03615ff5575b50615fe0615fd9615fd4600584906132f7565b61330d565b8590616d4a565b5060046132f7565b61330d565b616d4a565b50565b61607190616045616035616008856163cc565b61602f61602a602061602361601e5f860161492b565b6135e1565b9301614902565b614938565b906128ce565b61603f600a615e78565b906128ce565b6160505f8301613f0b565b61606261605c5f612c8e565b91610552565b119182616077575b5050615f13565b5f615fc1565b6160a291925061609661609c916160905f429201613f0b565b9061363c565b92610552565b91610552565b10155f8061606a565b50615f7e336160c96160c36160be614b0f565b6103ed565b916103ed565b149050615f75565b906160fb616100916160e1613b82565b506160f66160ee856163cc565b946003610fb8565b611002565b6147fe565b61610b5f8201613f0b565b61611d6161175f612c8e565b91610552565b146161585761614e6161495f6161426161549461613c83429201613f0b565b9061363c565b940161492b565b6135e1565b91610552565b1090565b50505f90565b61616f9061616a6164e4565b616171565b565b61617c816001612670565b616184614b0f565b906161b86161b27f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270093610ff6565b91610ff6565b916161c16103a2565b806161cb81610449565b0390a3565b6161d99061615e565b565b5f61621a616220936162123361620c6162066162016161fc60078a906113b3565b612593565b6103ed565b916103ed565b1461280b565b92600261225d565b01615653565b565b5f7f4e6f742072656769737465726564000000000000000000000000000000000000910152565b616256600e6020926109cd565b61625f81616222565b0190565b6162789060208101905f818303910152616249565b90565b1561628257565b61628a6103a2565b62461bcd60e51b8152806162a060048201616263565b0390fd5b6162e0336162da6162d47f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6163066163016162fa6162f5600685906132f7565b61330d565b8490616d4a565b61627b565b61632461631d616318600484906132f7565b61330d565b8390616d4a565b50906163596163537f08bb93e5444209b15155078a13f6e341299d748d0c299f722c9cbc0723f0fe9e93610746565b91610ff6565b916163626103a2565b8061636c81610449565b0390a3565b906163be6163b55f616381612719565b94616398616390838301611037565b838801614753565b6163af6163a6838301611064565b60208801614761565b01612287565b60408401614f24565b565b6163c990616371565b90565b6163e36163e8916163db612764565b50600261225d565b6163c0565b6163f35f820161492b565b6164056163ff5f61588f565b916103b4565b1461644b575b61641760208201614902565b6164296164235f61490f565b916104ad565b14616432575b90565b61644661643d6115fb565b60208301614761565b61642f565b61645e616456610bfa565b5f8301614753565b61640b565b61646c90610fce565b90565b61648361647e616488926103e2565b610743565b610552565b90565b61649f61649a6164a492610552565b61264d565b610ef1565b90565b90565b906164dc6164d66164d16164cc5f6164e1966164c4613b82565b500194616463565b61646f565b61648b565b916164a7565b616e06565b90565b6164ec614b0f565b6165056164ff6164fa616bf8565b6103ed565b916103ed565b0361650c57565b61652e616517616bf8565b5f91829163118cdaa760e01b835260048301610cbb565b0390fd5b9061656461655e6165596165545f6165699661654c613b82565b500194616463565b61646f565b61648b565b916164a7565b616e69565b90565b61658b916165829161657c614b0b565b50616ec5565b90929192616f85565b90565b5f7f4f70657261746f7220697320736c617368656400000000000000000000000000910152565b6165c260136020926109cd565b6165cb8161658e565b0190565b6165e49060208101905f8183039101526165b5565b90565b156165ee57565b6165f66103a2565b62461bcd60e51b81528061660c600482016165cf565b0390fd5b9061662561662061662c92613310565b61331c565b8254612fca565b9055565b616639906103b4565b60018060401b03811461664c5760010190565b6128ba565b90565b61666861666361666d92616651565b610743565b6104ad565b90565b91602061669192949361668a60408201965f830190611117565b0190610555565b565b61669c90610fce565b90565b6166a890616693565b90565b6166b490610fea565b90565b6040906166e06166e794969593966166d660608401985f850190610cae565b6020830190610c13565b0190610c13565b565b949293919361670c61670761670060038990610fb8565b8790611002565b614d7b565b93616716876163cc565b9361674061672660018801611091565b6167396167336003611147565b91611147565b14156165e7565b61675e61675761675260058b906132f7565b61330d565b88906164aa565b50616833604061677060018901611091565b9661677d425f8b01612fe0565b6167a761678b8587906136b8565b61679d616797826136cc565b916136c6565b2060028b01616610565b6167bc6167b35f61490f565b60018b016152ae565b6167da60018a016167d46167cf82611037565b616630565b90614d9c565b6167e2613cb6565b50856167f66167f05f61490f565b916104ad565b145f14616ab75761680d5f995b60018b91016133c8565b8761682161681b6002611147565b91611147565b1480616a9b575b616a2d575b0161500f565b80616a09575b6169f3575b505085918591924261688261687c6168767f658918e3147f13dd068ec21437b4c25c21682a8dc2129348671ead000db3e7b994610746565b94610746565b94610ff6565b9461689761688e6103a2565b92839283616670565b0390a4806168ad6168a784611147565b91611147565b0361699d575b50506168bf600b612593565b6168d96168d36168ce5f6125bf565b6103ed565b916103ed565b036168e3575b5050565b6168fd6168f86168f3600b612593565b61669f565b6166ab565b9163d47853b691909261690f426135fd565b92813b15616998575f6169359161694082966169296103a2565b98899788968795614b4e565b8552600485016166b7565b03925af1908161696c575b50155f14616967576001616962575b5b5f806168df565b61695a565b61695b565b61698b905f3d8111616991575b61698381836108d1565b810190614b54565b5f61694b565b503d616979565b614b4a565b838391926169d46169ce7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936169e96169e06103a2565b928392836152ce565b0390a35f806168b3565b616a029188918890919261743a565b5f8061683e565b50616a15818390612d48565b616a27616a215f612c8e565b91610552565b11616839565b616a4a616a43616a3e8d60046132f7565b61330d565b8b906164aa565b508a8a616a80616a7a7fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b91616a896103a2565b80616a9381610449565b0390a361682d565b5088616ab0616aaa6002611147565b91611147565b1415616828565b85616acb616ac56064616654565b916104ad565b105f14616ade5761680d6001995b616803565b61680d600199616af68d8d8b908b908a928c946170f4565b616ad9565b616b125f616b1792616b0b612784565b50016164a7565b6175f8565b90565b616b26616b2b9161091a565b612954565b90565b616b42616b3d616b4792610552565b610743565b6103e2565b90565b616b75616b70616b7f93616b6b5f616b7a95616b64614b0b565b50016164a7565b617666565b616b1a565b616b2e565b610fea565b90565b91906008616ba2910291616b9c60018060a01b038461292b565b9261292b565b9181191691161790565b9190616bc2616bbd616bca93610ff6565b61266d565b908354616b82565b9055565b616be091616bda614b0b565b91616bac565b565b616bf690616bf15f6001616bce565b617687565b565b616c00614b0b565b503390565b616c0e90610552565b5f198114616c1c5760010190565b6128ba565b616c2b90516103ed565b90565b93919293616c3a613a55565b50616c4e616c4985849061363c565b613a91565b92616c585f612c8e565b925b80616c6d616c6788610552565b91610552565b1015616cdb57616c91616c8a616c85600586906132f7565b61330d565b8290616b4a565b616c9d84828a916176e6565b616cb1575b50616cac90612caa565b616c5a565b616cac9194616ccf616cd492616cca8991849092613ab8565b613ad8565b616c05565b9390616ca2565b509450509150616cea82613a91565b92616cf45f612c8e565b5b80616d08616d0286610552565b91610552565b1015616d4457616d3f90616d3a616d28616d23868490613ab8565b616c21565b616d358891849092613ab8565b613ad8565b612caa565b616cf5565b50915050565b90616d7c616d76616d71616d6c5f616d8196616d64613b82565b500194616463565b61646f565b61648b565b916164a7565b61781e565b90565b90565b5f5260205f2090565b5490565b616d9d81616d90565b821015616db757616daf600191616d87565b910201905f90565b610778565b90815491600160401b831015616de75782616ddf916001616de595018155616d94565b90613328565b565b6108bd565b5490565b90616dfa90613310565b5f5260205260405f2090565b616e0e613b82565b50616e23616e1d828490616e69565b156104c0565b5f14616e6357616e59616e5e92616e45616e3e5f8501616d84565b8290616dbc565b6001616e525f8501616dec565b9301616df0565b612fe0565b600190565b50505f90565b616e87916001616e8292616e7b613b82565b5001616df0565b610936565b616e99616e935f612c8e565b91610552565b141590565b5f90565b90565b616eb9616eb4616ebe92616ea2565b610743565b610552565b90565b5f90565b919091616ed0614b0b565b50616ed9616e9e565b50616ee261334a565b50616eec836136cc565b616eff616ef96041616ea5565b91610552565b145f14616f4657616f3f9192616f1361334a565b50616f1c61334a565b50616f25616ec1565b506020810151606060408301519201515f1a90919261799d565b9192909190565b50616f505f6125bf565b90616f64616f5f6002946136cc565b61648b565b91929190565b60041115616f7457565b611124565b90616f8382616f6a565b565b80616f98616f925f616f79565b91616f79565b145f14616fa3575050565b80616fb7616fb16001616f79565b91616f79565b145f14616fda575f63f645eedf60e01b815280616fd660048201610449565b0390fd5b80616fee616fe86002616f79565b91616f79565b145f1461701c5761701861700183616b1a565b5f91829163fce698f760e01b835260048301610562565b0390fd5b61702f6170296003616f79565b91616f79565b146170375750565b617052905f9182916335e2f38360e21b835260048301610f01565b0390fd5b61706a61706561706f926112fc565b610743565b6104ad565b90565b61707e617084916103b4565b916103b4565b90039060018060401b03821161709657565b6128ba565b5f7f50726f746f636f6c2076696f6c6174696f6e207265706f727465640000000000910152565b6170cf601b6020926109cd565b6170d88161709b565b0190565b6170f19060208101905f8183039101526170c2565b90565b935050925061710c61710660c8617056565b916104ad565b1015617117575b5050565b617120426135fd565b61713e617139617132600c8590614836565b859061484c565b611037565b8061715161714b5f61588f565b916103b4565b149081156171d7575b50617166575b50617113565b61718590617180617179600c8590614836565b859061484c565b614d9c565b906171b96171b37f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b91610ff6565b916171c26103a2565b806171cc816170dc565b0390a35f8080617160565b6171e2915082617072565b6171fb6171f56171f0610f6a565b6103b4565b916103b4565b10155f61715a565b90565b61721a61721561721f92617203565b610743565b610552565b90565b90929192617237617232826116e4565b6116a8565b9381855260208501908284011161725357617251926109d6565b565b6116e0565b9080601f830112156172765781602061727393519101617222565b90565b6105ad565b90505190617288826106f3565b565b9190916040818403126172db576172a160406116a8565b925f8201519160018060401b0383116172d6576172c3826172cf948301617258565b5f86015260200161727b565b6020830152565b6116dc565b6116d8565b9291906172f46172ef826116bd565b6116a8565b93818552602080860192028101918383116173495781905b83821061731a575050505050565b815160018060401b03811161734457602091617339878493870161728a565b81520191019061730c565b6105ad565b6105b5565b9080601f8301121561736c57816020617369935191016172e0565b90565b6105ad565b9060208282031261739f575f82015160018060401b03811161739a57617397920161734e565b90565b6103b0565b6103ac565b60209181520190565b91906173c7816173c0816173cc956173a4565b8095611705565b6108b3565b0190565b90916173e79260208301925f8185039101526173ad565b90565b6173f4603261153d565b90565b949391606091617438946174236174309361741960808b01945f8c0190610c13565b60208a0190610cae565b8782036040890152610e18565b940190610555565b565b91617446818590612d48565b6174586174525f612c8e565b91610552565b146175f257617468818590612d48565b61747c61747661c350617206565b91610552565b116175ec575f61748a6139dc565b9461749430613ce5565b6174b66331e3bd1b9492946174c16174aa6103a2565b96879586948594614b4e565b8452600484016173d0565b03915afa80915f926175c8575b50155f146175bf575060016175ba575b6174e783610d87565b6175006174fa6174f56173ea565b610552565b91610552565b115f146175ac5761750f6173ea565b5b61751930613ce5565b906365a6936e93929490823b156175a7575f9461755486926175499461753d6103a2565b998a9889978896614b4e565b8652600486016173f7565b03925af1908161757b575b50155f14617576576001617571575b5b565b61756e565b61756f565b61759a905f3d81116175a0575b61759281836108d1565b810190614b54565b5f61755f565b503d617588565b614b4a565b6175b583610d87565b617510565b505050565b909250916174de565b6175e59192503d805f833e6175dd81836108d1565b810190617371565b905f6174ce565b50505050565b50505050565b5f61760c91617605612784565b5001616dec565b90565b5f5260205f2090565b61762181616dec565b82101561763b5761763360019161760f565b910201905f90565b610778565b6176509060086176559302610c6a565b61109e565b90565b906176639154617640565b90565b617684915f61767e9261767761334a565b5001617618565b90617658565b90565b6176905f612593565b61769a825f612670565b906176ce6176c87f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610ff6565b91610ff6565b916176d76103a2565b806176e181610449565b0390a3565b6176ee613b82565b50617716617710617709617704600685906132f7565b61330d565b8490616532565b156104c0565b6177b8576177369161772c617731926003610fb8565b611002565b6147fe565b6177415f8201613f0b565b61775361774d5f612c8e565b91610552565b148015617792575b61778c5761778161777b617787926177755f429201613f0b565b9061363c565b92610552565b91610552565b101590565b50505f90565b5061779f60608201615e68565b6177b26177ac6003611147565b91611147565b1461775b565b5050505f90565b6177d36177ce6177d8926155a5565b610743565b610552565b90565b634e487b7160e01b5f52603160045260245ffd5b6177f881616d90565b80156178195760019003906178166178108383616d94565b9061334e565b55565b6177db565b617826613b82565b5061783d617838600183018490616df0565b610936565b908161785161784b5f612c8e565b91610552565b14155f1461791d576178cf9260016178ca92846178785f96617872856177bf565b9061363c565b617895617886888501616dec565b61788f866177bf565b9061363c565b816178a86178a283610552565b91610552565b036178d4575b5050506178c46178bf868301616d84565b6177ef565b01616df0565b612995565b600190565b617915926179076178f36178ed617910948c8901617618565b90617658565b9361790185918c8901617618565b90613328565b91858501616df0565b612fe0565b5f80806178ae565b5050505f90565b90565b61793b61793661794092617924565b610743565b610552565b90565b61797861797f9461796e606094989795617964608086019a5f870190610ef4565b6020850190611117565b6040830190610ef4565b0190610ef4565b565b61799561799061799a926125a0565b61264d565b610ef1565b90565b9392936179a8614b0b565b506179b1616e9e565b506179ba61334a565b506179c485616b1a565b6179ec6179e66fa2a8918ca85bafe22016d0b997e4df60600160ff1b03617927565b91610552565b11617a795790617a0f602094955f94939293617a066103a2565b94859485617943565b838052039060015afa15617a7457617a275f5161264d565b80617a42617a3c617a375f6125bf565b6103ed565b916103ed565b14617a58575f91617a525f617981565b91929190565b50617a625f6125bf565b600191617a6e5f617981565b91929190565b614b86565b505050617a855f6125bf565b906003929192919056fea164736f6c634300081a000a","sourceMap":"6415:38701:57:-:0;;;;;;;;;-1:-1:-1;6415:38701:57;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;11660:59::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;:::-;;;;6415:38701;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;7851:61::-;7903:9;;;:::i;:::-;7851:61;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;12224:30::-;;;;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;14180:52::-;14223:9;;;:::i;:::-;14180:52;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;8133:41::-;;;:::o;6415:38701::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;12352:53::-;12398:7;;;:::i;:::-;12352:53;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;10898:74::-;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;6415:38701:57;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;39843:43::-;39883:3;;;:::i;:::-;39843:43;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;11530:47::-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;12045:35::-;;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;32979:51::-;33028:2;;;:::i;:::-;32979:51;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;7980:55::-;8034:1;;;:::i;:::-;7980:55;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;33154:51::-;33203:2;;;:::i;:::-;33154:51;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;11816:85::-;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;12131:29::-;;;;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;10758:58::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;8447:189::-;8492:144;8447:189;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;30254:263::-;30478:24;:32;30254:263;30336:53;30344:10;:24;;30358:10;30344:24;:::i;:::-;;;:::i;:::-;;30336:53;:::i;:::-;30399:69;30407:24;;:13;30421:9;30407:24;;:::i;:::-;;:::i;:::-;:38;;30435:10;30443:1;30435:10;:::i;:::-;30407:38;:::i;:::-;;;:::i;:::-;;30399:69;:::i;:::-;30478:13;;:24;:::i;:::-;:32;:::i;:::-;30254:263::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;37647:147::-;37766:21;37647:147;37725:22;;:::i;:::-;37777:9;37766:21;:::i;:::-;37759:28;:::o;6415:38701::-;;;:::o;36547:176::-;36667:35;:49;36547:176;36667:25;:49;36547:176;36641:7;;:::i;:::-;36667:14;;:25;:::i;:::-;:35;:::i;:::-;:49;;:::i;:::-;36660:56;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;6415:38701:57;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;33980:640::-;;;;;34097:68;34105:10;:38;;34119:24;;:13;34133:9;34119:24;;:::i;:::-;;:::i;:::-;34105:38;:::i;:::-;;;:::i;:::-;;34097:68;:::i;:::-;34175:77;34183:18;:11;;:18;;:::i;:::-;:44;;34205:22;;:::i;:::-;34183:44;:::i;:::-;;;:::i;:::-;;;34175:77;:::i;:::-;34262:32;;34269:25;:14;34284:9;34269:25;;:::i;:::-;34262:32;:::i;:::-;34309:13;34321:1;34309:13;:::i;:::-;34348:3;34324:1;:22;;34328:18;:11;;:18;;:::i;:::-;34324:22;:::i;:::-;;;:::i;:::-;;;;;34348:3;34381:11;34367:85;34375:33;:26;34381:19;:14;:11;;34393:1;34381:14;;:::i;:::-;:19;;;;;:::i;:::-;34375:26;;:::i;:::-;:33;;:::i;:::-;:59;;34412:22;;:::i;:::-;34375:59;:::i;:::-;;;:::i;:::-;;;34367:85;:::i;:::-;34466:77;34474:23;;:14;:11;;34486:1;34474:14;;:::i;:::-;:23;;:::i;:::-;:50;;34501:23;;:14;:11;;34513:1;34501:14;;:::i;:::-;:23;;:::i;:::-;34474:50;:::i;:::-;;;:::i;:::-;;;34466:77;:::i;:::-;34557:46;:30;:25;:14;34572:9;34557:25;;:::i;:::-;:30;:::i;:::-;34588:14;:11;;34600:1;34588:14;;:::i;:::-;34557:46;;:::i;:::-;34348:3;:::i;:::-;34309:13;;34324:22;;;;;;33980:640::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;30760:1036::-;30850:53;30858:10;:24;;30872:10;30858:24;:::i;:::-;;;:::i;:::-;;30850:53;:::i;:::-;30913:47;30921:8;:22;;30933:10;30941:1;30933:10;:::i;:::-;30921:22;:::i;:::-;;;:::i;:::-;;;30913:47;:::i;:::-;30970:76;30978:45;:35;:31;:20;30999:9;30978:31;;:::i;:::-;:35;:::i;:::-;31014:8;30978:45;;:::i;:::-;30970:76;:::i;:::-;31439:42;;31446:35;:25;:14;31461:9;31446:25;;:::i;:::-;31472:8;31446:35;;:::i;:::-;31439:42;:::i;:::-;31672:63;31717:18;31672:42;:35;:25;:14;31687:9;31672:25;;:::i;:::-;31698:8;31672:35;;:::i;:::-;:42;:63;:::i;:::-;31780:8;31750:39;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;30760:1036::o;1500:62:1:-;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;34923:188:57:-;35078:26;34923:188;35078:26;;:::i;:::-;34923:188::o;:::-;;;;:::i;:::-;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;7140:166;;7298:1;7140:166;;;;;;;7200:88;7208:52;:40;:31;15071:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;14803:1133;;;;;;;;;;15100:9;:27;;15112:15;15100:27;:::i;:::-;;;:::i;:::-;;15096:95;;15205:27;:15;:27;15223:9;15205:27;:::i;:::-;;;:::i;:::-;:47;;15235:17;;:::i;:::-;15205:47;:::i;:::-;;;:::i;:::-;;15201:135;;15921:7;15418:18;;15759:25;15794:50;15418:18;;15390:235;15418:18;15390:235;15418:18;15759:25;15418:18;;;15566;15418;;:::i;:::-;15454:10;;15482:9;15509:11;15538:10;15576:7;15566:18;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;15602:9;15390:235;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15367:268;;;;:::i;:::-;;;:::i;:::-;;15672:58;15701:16;15672:58;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15662:69;;;;:::i;:::-;;;:::i;:::-;;15774:9;15759:25;:::i;:::-;;;:::i;:::-;15802:20;;15812:10;15802:20;:::i;:::-;;;:::i;:::-;;15794:50;:::i;:::-;15884:11;15897:10;15909;15921:7;;;;:::i;:::-;14803:1133::o;15201:135::-;15301:23;15308:15;15301:23;:::i;:::-;15275:50;;;;;;;;;;;;;;;:::i;:::-;;;;15096:95;15167:23;15174:15;15167:23;:::i;:::-;15136:55;;;;;;;;;;;;;;;:::i;:::-;;;;14803:1133;;;;;;;;;;;:::i;:::-;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;35274:160::-;;35392:35;35274:160;35348:25;;:::i;:::-;35403:7;;35392:35;;;;:::i;:::-;35385:42;:::o;43895:136::-;43991:31;:24;:33;43895:136;43965:7;;:::i;:::-;43991:13;;:24;:::i;:::-;:31;:::i;:::-;:33;:::i;:::-;43984:40;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;37041:359::-;;37119:16;;:::i;:::-;37163;:36;:34;:27;:16;37180:9;37163:27;;:::i;:::-;:34;:::i;:::-;:36;:::i;:::-;37249:5;37235:20;37249:5;37235:20;:::i;:::-;37282:1;37270:13;37282:1;37270:13;:::i;:::-;37296:3;37285:1;:9;;37289:5;37285:9;:::i;:::-;;;:::i;:::-;;;;;37296:3;37327:16;37315:45;37327:33;:30;:27;:16;37344:9;37327:27;;:::i;:::-;:30;:::i;:::-;37358:1;37327:33;;:::i;:::-;37315:45;:6;37322:1;;37315:45;;;:::i;:::-;;:::i;:::-;37296:3;:::i;:::-;37270:13;;37285:9;;;;;37380:13;:::o;6415:38701::-;;;:::o;35990:261::-;;36076:4;;:::i;:::-;36099:14;:42;;:35;:25;:14;36114:9;36099:25;;:::i;:::-;36125:8;36099:35;;:::i;:::-;:42;;:::i;:::-;:64;;36145:18;36099:64;:::i;:::-;;;:::i;:::-;;:145;;;;;35990:261;36092:152;;;:::o;36099:145::-;36179:42;:14;;:42;:14;:25;:35;:14;;:25;:::i;:::-;:35;:::i;:::-;:42;;:::i;:::-;:65;;36225:19;36179:65;:::i;:::-;;;:::i;:::-;;36099:145;;;;40097:200;40231:59;40097:200;40178:26;;:::i;:::-;40262:9;40273:1;40276:13;40231:59;40276:13;;:::i;:::-;40231:59;;:::i;:::-;;;:::i;:::-;40216:74;40097:200;:::o;7140:166::-;;7298:1;7140:166;;;;7200:88;7208:52;:40;:31;16286:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;16072:320::-;;16377:7;16072:320;;;;16353:10;16365;16377:7;;;;:::i;:::-;16072:320::o;:::-;;;;;;;;:::i;:::-;:::o;32433:178::-;;32554:40;:31;:50;32433:178;32531:4;;:::i;:::-;32554:20;;:31;:::i;:::-;:40;:::i;:::-;:50;:::i;:::-;32547:57;:::o;6415:38701::-;;;:::o;36307:173::-;36431:35;:42;36307:173;36431:25;:42;36307:173;36402:10;;:::i;:::-;36431:14;;:25;:::i;:::-;:35;:::i;:::-;:42;;:::i;:::-;36424:49;:::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;20231:2843::-;;;;;20414:53;20422:10;:27;;20436:13;20444:4;20436:13;:::i;:::-;20422:27;:::i;:::-;;;:::i;:::-;;20414:53;:::i;:::-;20478:66;20519:25;:14;20534:9;20519:25;;:::i;:::-;20478:66;:::i;:::-;20651:8;20637:23;20651:8;20637:23;:::i;:::-;20687:1;20675:13;20687:1;20675:13;:::i;:::-;20704:3;20690:1;:12;;20694:8;20690:12;:::i;:::-;;;:::i;:::-;;;;;20704:3;20755:5;20723:47;20749:20;20755:13;:8;:5;20761:1;20755:8;;:::i;:::-;;:13;;20749:20;:::i;:::-;20739:31;;;;:::i;:::-;;;:::i;:::-;;20723:47;:10;20734:1;;20723:47;;;:::i;:::-;;:::i;:::-;20704:3;:::i;:::-;20675:13;;20690:12;;;;;;;20813:18;:11;:18;:::i;:::-;:22;;20834:1;20813:22;:::i;:::-;;;:::i;:::-;;20914:26;;;:::i;:::-;20954:14;;20950:237;;20670:111;21267:13;21279:1;21267:13;:::i;:::-;21296:3;21282:1;:12;;21286:8;21282:12;:::i;:::-;;;:::i;:::-;;;;;21328:4;21371:5;21449:14;21445:737;;21296:3;22244:5;;;;;21296:3;22244:5;22240:198;;21296:3;;;;;:::i;:::-;21267:13;;22240:198;22320:5;22303:13;:8;22269:33;:48;22320:5;22269:23;22320:14;;:8;22269:65;22320:5;22326:1;22320:8;;:::i;:::-;;:14;;:::i;:::-;22269:12;;:23;:::i;:::-;:33;:::i;:::-;22303:5;22309:1;22303:8;;:::i;:::-;;:13;;22269:48;;:::i;:::-;:65;:::i;:::-;22372:9;;22383:8;22393:5;22408:14;;:8;22393:13;:8;:5;22399:1;22393:8;;:::i;:::-;;:13;;22408:5;22414:1;22408:8;;:::i;:::-;;:14;;:::i;:::-;22357:66;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;22240:198;;;;;21445:737;21500:1;;;;;;21488:13;21500:1;21488:13;:::i;:::-;21527:3;21503:1;:22;;21507:18;:11;:18;:::i;:::-;21503:22;:::i;:::-;;;:::i;:::-;;;;;21558:13;;:10;;:13;:::i;:::-;;:::i;:::-;:29;;21575:12;;:9;21585:1;21575:12;;:::i;:::-;;:::i;:::-;21558:29;:::i;:::-;;;:::i;:::-;;21554:433;;21527:3;;;:::i;:::-;21488:13;;21554:433;21635:4;;;;;;;21296:3;21635:4;;;;;;21669:5;;:14;;:8;:5;21675:1;21669:8;;:::i;:::-;;:14;;:::i;:::-;:40;;21686:23;;:14;:11;21698:1;21686:14;;:::i;:::-;;:23;;:::i;:::-;21669:40;:::i;:::-;;;:::i;:::-;;:84;;;;;;;21554:433;21665:269;;;;;;21554:433;22094:18;21959:5;21483:522;22094:18;;:::i;:::-;22090:78;;21483:522;21445:737;;;;;;;22090:78;22144:5;;22090:78;;21665:269;21806:9;;;21817:8;21827:13;:8;:5;21833:1;21827:8;;:::i;:::-;;:13;;21790:74;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;22094:18;21902:5;21665:269;;;;;21669:84;21713:40;:5;;;21730:14;21713:40;:5;:14;;:8;21730:23;21713:5;21730:23;21713:5;:8;:::i;:::-;;:14;;:::i;:::-;21730:11;:14;:::i;:::-;;:23;;:::i;:::-;21713:40;:::i;:::-;;;:::i;:::-;;21669:84;;;;;;21503:22;;;;;;;21296:3;21503:22;;;22094:18;21503:22;;;;21282:12;;;;;;;;;;22509:13;22521:1;22509:13;:::i;:::-;22504:564;22548:3;22524:1;:22;;22528:18;:11;:18;:::i;:::-;22524:22;:::i;:::-;;;:::i;:::-;;;;;22571:24;22572:23;;:14;:11;22584:1;22572:14;;:::i;:::-;;:23;;:::i;:::-;22571:24;;:::i;:::-;22567:38;;22638:37;22648:26;22654:19;:14;:11;22666:1;22654:14;;:::i;:::-;;:19;22648:26;:::i;:::-;22638:37;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;22702:5;;22738:1;22726:13;22738:1;22726:13;:::i;:::-;22764:3;22741:1;:21;;22745:17;:10;:17;:::i;:::-;22741:21;:::i;:::-;;;:::i;:::-;;;;;22791:13;;:10;22802:1;22791:13;;:::i;:::-;;:::i;:::-;:24;;22808:7;22791:24;:::i;:::-;;;:::i;:::-;;22787:110;;22764:3;;;:::i;:::-;22726:13;;22787:110;22847:4;;;;;22548:3;22847:4;;22928:6;22847:4;22721:190;22928:6;;:::i;:::-;22924:134;;22721:190;22509:13;22548:3;:::i;:::-;22509:13;;;;22924:134;22975:9;22986:8;22996:19;:14;:11;23008:1;22996:14;;:::i;:::-;;:19;22959:84;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;22924:134;;22741:21;;;;;22548:3;22741:21;;22928:6;22741:21;;;22567:38;22597:8;;22548:3;22597:8;;;22524:22;;;;;;20231:2843::o;20950:237::-;21010:11;;;;20996:33;21010:18;:11;;;;;;:18;:::i;:::-;20996:33;:::i;:::-;21060:1;21048:13;21060:1;21048:13;:::i;:::-;21087:3;21063:1;:22;;21067:18;:11;:18;:::i;:::-;21063:22;:::i;:::-;;;:::i;:::-;;;;;21087:3;21141:11;21110:52;21125:37;21135:26;21141:19;:14;:11;21153:1;21141:14;;:::i;:::-;;:19;21135:26;:::i;:::-;21125:37;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;21110:52;:9;21120:1;;21110:52;;;:::i;:::-;;:::i;:::-;21087:3;:::i;:::-;21048:13;;21063:22;;;;;;;;;;20950:237;;1500:62:1;;;:::i;:::-;1554:1;;:::i;:::-;1500:62::o;2293:101::-;2376:10;;2384:1;2376:10;:::i;:::-;;:::i;:::-;2293:101::o;:::-;;;:::i;:::-;:::o;6415:38701:57:-;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;36769:211::-;36931:42;36769:211;36938:25;:35;36769:211;36895:20;;:::i;:::-;36938:14;;:25;:::i;:::-;:35;:::i;:::-;36931:42;:::i;:::-;;:::o;6415:38701::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;44950:164::-;45068:39;44950:164;45068:29;:39;44950:164;45043:6;;:::i;:::-;45068:18;;:29;:::i;:::-;:39;:::i;:::-;;:::i;:::-;45061:46;:::o;2244:229:2:-;2313:12;;:::i;:::-;2339:14;;:::i;:::-;:24;;2357:6;2339:24;:::i;:::-;;;:::i;:::-;;2335:96;;2459:6;;;:::i;:::-;2244:229::o;2335:96::-;2386:34;2413:6;2386:34;;;;;;;;;;;;;:::i;:::-;;;;37448:142:57;37547:34;:27;:36;37448:142;37521:7;;:::i;:::-;37547:16;;:27;:::i;:::-;:34;:::i;:::-;:36;:::i;:::-;37540:43;:::o;6415:38701::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;40660:780::-;;;;;40824:26;;:::i;:::-;40852:13;;;:::i;:::-;40924:9;40913:21;40924:9;40913:21;:::i;:::-;40952:13;:33;:31;:24;:13;40966:9;40952:24;;:::i;:::-;:31;:::i;:::-;:33;:::i;:::-;41000:6;:16;;:6;:16;;:::i;:::-;:21;;41020:1;41000:21;:::i;:::-;;;:::i;:::-;;:35;;;;40660:780;41000:54;;;;40660:780;40996:117;;41143:52;41151:6;41170:25;41178:16;;41143:24;41151:15;;41372:61;41151:6;;;:15;;:::i;:::-;41143:24;:::i;:::-;41178:6;:16;;:::i;:::-;41170:25;:::i;:::-;41143:52;;:::i;:::-;41225:5;;:21;;41233:13;;:::i;:::-;41225:21;:::i;:::-;;;:::i;:::-;;:45;;;;41249:13;;;:::i;:::-;41225:45;41294:18;:6;41303:9;41294:18;;:::i;:::-;:26;;41315:5;41294:26;:::i;:::-;;;:::i;:::-;;:55;;;;41323:5;;41294:55;41399:9;41410:6;41418:3;41423:9;41372:61;;:::i;:::-;40660:780;:::o;41294:55::-;41331:18;:6;;:18;:::i;:::-;41294:55;;41225:45;;;40996:117;41092:1;;;;;41078:16;;41092:1;41078:16;:::i;:::-;;:::i;:::-;41070:32;;:::o;41000:54::-;41039:6;;:15;;41049:5;41039:15;:::i;:::-;;;:::i;:::-;;;41000:54;;:35;41025:5;;:10;;41034:1;41025:10;:::i;:::-;;;:::i;:::-;;41000:35;;1500:62:1;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;34670:182:57:-;34822:23;34670:182;34822:23;;:::i;:::-;34670:182::o;:::-;;;;:::i;:::-;:::o;6415:38701::-;;;:::o;1638:85:1:-;1684:7;;:::i;:::-;1710:6;;;;:::i;:::-;1703:13;:::o;6415:38701:57:-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;:::i;:::-;;;;;;;;26227:224;;;;;26329:13;26341:1;26329:13;:::i;:::-;26366:3;26344:1;:20;;26348:16;:9;;:16;;:::i;:::-;26344:20;:::i;:::-;;;:::i;:::-;;;;;26385:24;:4;:24;:::i;:::-;;;26410:9;26421:12;;:9;;26431:1;26421:12;;:::i;:::-;;:::i;:::-;26385:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;26366:3;26385:49;;;26366:3;;;:::i;:::-;26329:13;;26385:49;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;26344:20::-;;;;;;26227:224::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;44113:757::-;44228:60;44236:10;:28;;44250:14;;;:::i;:::-;44236:28;:::i;:::-;;;:::i;:::-;;44228:60;:::i;:::-;44481:72;44489:43;:33;:24;:13;44503:9;44489:24;;:::i;:::-;:33;:::i;:::-;44523:8;44489:43;;:::i;:::-;44481:72;:::i;:::-;44639:33;44564:65;44594:35;:25;:14;44609:9;44594:25;;:::i;:::-;44620:8;44594:35;;:::i;:::-;44564:65;:::i;:::-;44639:12;44654:18;44639:5;:12;:33;:::i;:::-;44682:44;:34;:27;:16;44699:9;44682:27;;:::i;:::-;:34;:::i;:::-;44717:8;44682:44;;:::i;:::-;;44736:65;44778:23;44785:15;44778:23;:::i;:::-;44736:39;:29;:18;44755:9;44736:29;;:::i;:::-;44766:8;44736:39;;:::i;:::-;:65;:::i;:::-;44846:8;44856:6;;44817:46;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;44113:757::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;33212:683::-;33742:146;33212:683;33786:92;33212:683;;33786:92;;33742:30;:25;33786:92;33212:683;33504:70;33512:18;:11;33786:92;33212:683;;;;33426:68;33434:10;:38;;33448:24;;:13;33462:9;33448:24;;:::i;:::-;;:::i;:::-;33434:38;:::i;:::-;;;:::i;:::-;;33426:68;:::i;:::-;33512:11;:::i;:::-;:18;;:::i;:::-;:44;;33534:22;;:::i;:::-;33512:44;:::i;:::-;;;:::i;:::-;;;33504:70;:::i;:::-;33584:47;33592:8;:20;;33604:8;33592:20;:::i;:::-;;;:::i;:::-;;;33584:47;:::i;:::-;33641:90;33649:32;:25;:14;33664:9;33649:25;;:::i;:::-;:32;:::i;:::-;:57;;33684:22;;:::i;:::-;33649:57;:::i;:::-;;;:::i;:::-;;33641:90;:::i;:::-;33742:14;:25;:::i;:::-;:30;:::i;:::-;33811:4;;33827:8;33847;33867;33786:92;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;33742:146;:::i;:::-;33212:683::o;7140:166::-;7298:1;7140:166;7200:88;7208:52;:40;:31;28053:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;27976:884::-;28074:67;28104:37;:25;:14;28119:9;28104:25;;:::i;:::-;28130:10;28104:37;;:::i;:::-;28074:67;:::i;:::-;28175:5;:12;;:5;:12;;:::i;:::-;28201:9;;:31;;28214:18;28201:31;:::i;:::-;;;:::i;:::-;;28197:102;;28395:9;:31;;28408:18;28395:31;:::i;:::-;;;:::i;:::-;;:67;;;;27976:884;28391:104;;28639:21;28610:19;28595:34;28610:19;28595:12;:5;:12;:34;:::i;:::-;28639:17;:21;28659:1;28639:21;:::i;:::-;:5;:17;:21;:::i;:::-;28670:43;:31;:27;:16;28687:9;28670:27;;:::i;:::-;:31;:::i;:::-;28702:10;28670:43;;:::i;:::-;;28748:9;28759:10;28729:41;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;28810:10;;28822:9;28833:19;;28785:68;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;27976:884::o;28391:104::-;28478:7;;;:::o;28395:67::-;28430:9;;:32;;28443:19;28430:32;:::i;:::-;;;:::i;:::-;;28395:67;;28197:102;28248:40;;:::i;:::-;6415:38701;;;28248:40;;;;;;;;:::i;:::-;;;;27976:884;;;;:::i;:::-;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;29569:585::-;29676:10;:24;;29690:10;29676:24;:::i;:::-;;;:::i;:::-;;:66;;;;29569:585;29668:93;;;:::i;:::-;29772:45;29780:8;:14;;29792:2;29780:14;:::i;:::-;;;:::i;:::-;;;29772:45;:::i;:::-;29847:50;29855:9;:14;;29868:1;29855:14;:::i;:::-;;;:::i;:::-;;;29847:50;:::i;:::-;29908:169;29978:8;29938:139;29999:9;29938:139;30025:41;;:27;:16;30042:9;30025:27;;:::i;:::-;:41;;:::i;:::-;29938:139;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;29908:27;:16;29925:9;29908:27;;:::i;:::-;:169;:::i;:::-;30127:8;30137:9;30093:54;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;29569:585::o;29676:66::-;29704:10;29668:93;29704:10;:38;;29718:24;;:13;29732:9;29718:24;;:::i;:::-;;:::i;:::-;29704:38;:::i;:::-;;;:::i;:::-;;29676:66;;;;6415:38701;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;24826:1348::-;24910:65;24940:35;:25;:14;24955:9;24940:25;;:::i;:::-;24966:8;24940:35;;:::i;:::-;24910:65;:::i;:::-;25028:9;25017:21;25028:9;25017:21;:::i;:::-;25138:12;;:5;:12;;:::i;:::-;:34;;25154:18;25138:34;:::i;:::-;;;:::i;:::-;;25134:47;;25195:19;;:5;:19;;:::i;:::-;:24;;25218:1;25195:24;:::i;:::-;;;:::i;:::-;;25191:92;;25385:25;25311:37;:15;25329:19;;:5;:19;;:::i;:::-;25311:37;;:::i;:::-;25385:25;25395:15;;:6;:15;;:::i;:::-;25385:25;:::i;:::-;;;:::i;:::-;25511:16;:34;;25530:15;25511:34;:::i;:::-;;;:::i;:::-;;:78;;;;25548:15;;25511:78;25604:11;;:31;;25618:17;;:5;:17;;:::i;:::-;25604:31;:::i;:::-;;;:::i;:::-;;25600:568;;25511:78;24826:1348;;;;;:::o;25600:568::-;25651:31;25671:11;25651:17;:5;:17;:31;:::i;:::-;25696:26;;25721:1;25696:26;:::i;:::-;:22;:5;:22;:26;:::i;:::-;25741:31;;25756:16;;25741:11;25756:6;:16;;:::i;:::-;25741:31;:::i;:::-;;;:::i;:::-;;;:69;;;25600:568;25737:421;;25600:568;;;;25737:421;25883:33;25853:12;;:5;:12;;:::i;:::-;25898:18;25883:12;25898:18;25883:5;:12;:33;:::i;:::-;25934:44;:34;:27;:16;25951:9;25934:27;;:::i;:::-;:34;:::i;:::-;25969:8;25934:44;;:::i;:::-;;26022:9;26033:8;;26043:11;26002:53;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;26103:8;26113:9;26124:18;;26078:65;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;25737:421;;;;;;25741:69;25776:5;:12;;:5;:12;;:::i;:::-;:34;;25792:18;25776:34;:::i;:::-;;;:::i;:::-;;;25741:69;;25511:78;25566:23;25572:16;25566:23;:::i;:::-;25511:78;;25191:92;25235:7;;;;:::o;25134:47::-;25174:7;;;;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;:::o;38174:156::-;38298:25;38291:32;38174:156;38254:25;;:::i;:::-;38298:14;;:25;:::i;:::-;38291:32;:::i;:::-;;:::o;7140:166::-;7298:1;7140:166;7200:88;7208:52;:40;:31;27342:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;27264:514::-;27363:67;27393:37;:25;:14;27408:9;27393:25;;:::i;:::-;27419:10;27393:37;;:::i;:::-;27363:67;:::i;:::-;27464:5;:12;;:5;:12;;:::i;:::-;27490:9;;:31;;27503:18;27490:31;:::i;:::-;;;:::i;:::-;;27486:103;;27599:33;27614:18;27599:12;27614:18;27599:5;:12;:33;:::i;:::-;27642:46;:34;:27;:16;27659:9;27642:27;;:::i;:::-;:34;:::i;:::-;27677:10;27642:46;;:::i;:::-;;27729:10;;27741:9;27752:18;;27704:67;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;27264:514::o;27486:103::-;27537:41;;:::i;:::-;6415:38701;;;27537:41;;;;;;;;:::i;:::-;;;;27264:514;;;;:::i;:::-;:::o;6415:38701::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;:::i;:::-;;:::o;37851:264::-;;38063:33;:45;37851:264;;38063:23;:45;37851:264;38033:7;;:::i;:::-;38063:12;;:23;:::i;:::-;:33;:::i;:::-;38097:10;;38063:45;;:::i;:::-;;:::i;:::-;38056:52;:::o;1232:99:2:-;1285:7;;:::i;:::-;1311:13;;;;:::i;:::-;1304:20;:::o;6415:38701:57:-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;42932:886;;43767:34;:27;:44;42932:886;43027:10;:38;;43041:24;;:13;43055:9;43041:24;;:::i;:::-;;:::i;:::-;43027:38;:::i;:::-;;;:::i;:::-;;:63;;;;42932:886;43019:90;;;:::i;:::-;43120:64;43149:35;:25;:14;43164:9;43149:25;;:::i;:::-;43175:8;43149:35;;:::i;:::-;43120:64;:::i;:::-;43294:12;;:5;:12;;:::i;:::-;:34;;43310:18;43294:34;:::i;:::-;;;:::i;:::-;;43290:416;;42932:886;43716:13;:41;:31;:24;:13;43730:9;43716:24;;:::i;:::-;:31;:::i;:::-;43748:8;43716:41;;:::i;:::-;;43767:16;:27;:::i;:::-;:34;:::i;:::-;:44;:::i;:::-;;42932:886::o;43290:416::-;43514:181;43387:9;43443:57;:52;43376:21;43387:9;43376:21;:::i;:::-;43470:25;43478:16;;43443:24;43451:15;;:6;:15;;:::i;:::-;43443:24;:::i;:::-;43478:6;:16;;:::i;:::-;43470:25;:::i;:::-;43443:52;;:::i;:::-;:57;43498:2;43443:57;:::i;:::-;;;:::i;:::-;43539:19;;:5;:19;;:::i;:::-;:23;;43561:1;43539:23;:::i;:::-;;;:::i;:::-;;:89;;;;43290:416;43514:181;;;:::i;:::-;43290:416;;;43539:89;43566:62;:15;;;:37;:62;:15;43584:19;;43566:15;43584:5;:19;;:::i;:::-;43566:37;;:::i;:::-;43607:21;43566:62;:::i;:::-;;;:::i;:::-;;;43539:89;;;;43027:63;43069:10;43019:90;43069:10;:21;;43083:7;;:::i;:::-;43069:21;:::i;:::-;;;:::i;:::-;;43027:63;;;;38403:374;;38607:35;38578:64;38403:374;38499:4;;:::i;:::-;38558:9;38607:25;38547:21;38558:9;38547:21;:::i;:::-;38607:14;;:25;:::i;:::-;:35;:::i;:::-;38578:64;:::i;:::-;38657:19;;:5;:19;;:::i;:::-;:24;;38680:1;38657:24;:::i;:::-;;;:::i;:::-;;38653:42;;38713:57;38755:15;;38714:37;38713:57;38714:15;38732:19;38714:15;;38732:5;:19;;:::i;:::-;38714:37;;:::i;:::-;38755:6;:15;;:::i;:::-;38713:57;:::i;:::-;;;:::i;:::-;;38706:64;:::o;38653:42::-;38690:5;;;38683:12;:::o;1500:62:1:-;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;1649:178:2:-;1738:24;1754:8;1738:24;;:::i;:::-;1802:7;;:::i;:::-;1811:8;1777:43;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;1649:178::o;:::-;;;;:::i;:::-;:::o;32669:225:57:-;32836:41;:27;:51;32669:225;32758:68;32766:10;:38;;32780:24;;:13;32794:9;32780:24;;:::i;:::-;;:::i;:::-;32766:38;:::i;:::-;;;:::i;:::-;;32758:68;:::i;:::-;32836:16;;:27;:::i;:::-;:41;:51;:::i;:::-;32669:225::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;32015:347;32107:53;32115:10;:24;;32129:10;32115:24;:::i;:::-;;;:::i;:::-;;32107:53;:::i;:::-;32170:75;32178:48;:38;:31;:20;32199:9;32178:31;;:::i;:::-;:38;:::i;:::-;32217:8;32178:48;;:::i;:::-;32170:75;:::i;:::-;32255:44;:34;:27;:16;32272:9;32255:27;;:::i;:::-;:34;:::i;:::-;32290:8;32255:44;;:::i;:::-;;32346:8;32314:41;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;32015:347::o;6415:38701::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;38824:443::-;38951:27;38919:59;38824:443;38885:22;;:::i;:::-;38951:16;;:27;:::i;:::-;38919:59;:::i;:::-;39037:15;;:6;:15;;:::i;:::-;:20;;39056:1;39037:20;:::i;:::-;;;:::i;:::-;;39033:95;;38824:443;39141:16;;:6;:16;;:::i;:::-;:21;;39161:1;39141:21;:::i;:::-;;;:::i;:::-;;39137:100;;38824:443;39247:13;:::o;39137:100::-;39178:48;39197:29;;:::i;:::-;39178:16;:6;:16;:48;:::i;:::-;39137:100;;39033:95;39073:44;39091:26;;:::i;:::-;39073:15;:6;:15;:44;:::i;:::-;39033:95;;6415:38701;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;8289:150:21:-;;8382:50;8399:32;8407:23;8415:14;8387:10;8382:50;8289:150;8359:4;;:::i;:::-;8387:3;:10;8423:5;8415:14;:::i;:::-;8407:23;:::i;:::-;8399:32;:::i;:::-;8382:50;;:::i;:::-;;:::i;:::-;8375:57;:::o;1796:162:1:-;1855:7;;:::i;:::-;:23;;1866:12;;:::i;:::-;1855:23;:::i;:::-;;;:::i;:::-;;1851:101;;1796:162::o;1851:101::-;1901:40;1928:12;;:::i;:::-;1901:40;2386:34:2;;;;;;1901:40:1;;;;;;:::i;:::-;;;;8844:165:21;;8947:55;8969:32;8977:23;8985:14;8957:10;8947:55;8844:165;8924:4;;:::i;:::-;8957:3;:10;8993:5;8985:14;:::i;:::-;8977:23;:::i;:::-;8969:32;:::i;:::-;8947:55;;:::i;:::-;;:::i;:::-;8940:62;:::o;3714:255:17:-;3927:8;3714:255;3871:27;3714:255;3792:7;;:::i;:::-;3882:4;3871:27;:::i;:::-;3811:87;;;;3927:8;:::i;:::-;3946:16;:::o;6415:38701:57:-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;16445:2218::-;;;;;;16647:65;16677:35;:25;:14;16692:9;16677:25;;:::i;:::-;16703:8;16677:35;;:::i;:::-;16647:65;:::i;:::-;16765:9;16754:21;16765:9;16754:21;:::i;:::-;16852:5;16844:66;16852:12;;:5;:12;;:::i;:::-;:34;;16868:18;16852:34;:::i;:::-;;;:::i;:::-;;;16844:66;:::i;:::-;16972:38;:28;:24;:13;16986:9;16972:24;;:::i;:::-;:28;:::i;:::-;17001:8;16972:38;;:::i;:::-;;18062:20;;17068:12;;:5;:12;;:::i;:::-;17112:15;17090:37;17112:15;17090:19;:5;:19;:37;:::i;:::-;17137:42;17161:18;17171:7;;17161:18;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;17137:21;:5;:21;:42;:::i;:::-;17189:21;;17209:1;17189:21;:::i;:::-;:17;:5;:17;:21;:::i;:::-;17220:24;:22;:5;:22;:24;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;17310:20;;:::i;:::-;17344:10;;:15;;17358:1;17344:15;:::i;:::-;;;:::i;:::-;;17340:393;;;;17743:24;17387:18;17340:393;;17743:12;17758:9;17743:5;:12;:24;:::i;:::-;17811:9;:31;;17824:18;17811:31;:::i;:::-;;;:::i;:::-;;:66;;;17340:393;17807:196;;17340:393;18062:20;;:::i;:::-;:42;;;17340:393;18058:118;;17340:393;18209:9;;;18220:11;18233:8;18243:10;18255:15;;18191:80;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;18286:9;:22;;18299:9;18286:22;:::i;:::-;;;:::i;:::-;;18282:114;;17340:393;18473:15;;;;;:::i;:::-;:29;;18492:10;18500:1;18492:10;:::i;:::-;18473:29;:::i;:::-;;;:::i;:::-;;18469:188;;17340:393;16445:2218;;:::o;18469:188::-;18522:49;:33;18539:15;;;:::i;:::-;18522:33;:::i;:::-;:49;:::i;:::-;;;18572:8;18582:9;18600:15;18593:23;18600:15;18593:23;:::i;:::-;18522:95;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;18469:188;18518:129;;;;;;;;;;;18469:188;;;;18518:129;;;;;;18522:95;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;18282:114::-;18343:9;18354:8;18364:9;18375;18329:56;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;18282:114;;;;18058:118;18157:7;18136:9;;18147:8;;18157:7;;;;:::i;:::-;18058:118;;;;18062:42;18086:7;:14;:7;;:14;;:::i;:::-;:18;;18103:1;18086:18;:::i;:::-;;;:::i;:::-;;18062:42;;17807:196;17893:41;:31;:27;:16;;:27;:::i;:::-;:31;:::i;:::-;17925:8;17893:41;;:::i;:::-;;17972:9;17983:8;17953:39;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;17807:196;;17811:66;17846:9;;:31;;17859:18;17846:31;:::i;:::-;;;:::i;:::-;;;17811:66;;17340:393;17426:10;:16;;17439:3;17426:16;:::i;:::-;;;:::i;:::-;;17422:311;;;;17743:24;17470:19;17422:311;;17340:393;;17422:311;17743:24;17611:19;17668:9;17714:7;17668:9;17679:11;;17692:8;17702:10;17714:7;;;;;;:::i;:::-;17422:311;;9090:115:21;9179:19;9187:10;9179:19;9090:115;9153:7;;:::i;:::-;9187:3;:10;9179:19;:::i;:::-;;:::i;:::-;9172:26;:::o;6415:38701:57:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;9547:156:21:-;9663:31;9671:22;9647:49;9547:156;9671:22;9675:10;9655:40;9547:156;9621:7;;:::i;:::-;9675:3;:10;9671:22;:::i;:::-;;:::i;:::-;9663:31;:::i;:::-;9655:40;:::i;:::-;9647:49;:::i;:::-;9640:56;:::o;6415:38701:57:-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;2011:153:2:-;2148:8;2011:153;2093:20;;;;:::i;:::-;2148:8;:::i;:::-;2011:153::o;656:96:13:-;709:7;;:::i;:::-;735:10;;728:17;:::o;6415:38701:57:-;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;41446:705::-;;;;;41633:26;;:::i;:::-;41713:3;41699:27;41713:12;:3;41719:6;41713:12;;:::i;:::-;41699:27;:::i;:::-;41752:1;41736:17;41752:1;41736:17;:::i;:::-;41781:6;41798:3;41789:1;:7;;41793:3;41789:7;:::i;:::-;;;:::i;:::-;;;;;41830:30;:27;:24;:13;41844:9;41830:24;;:::i;:::-;:27;:::i;:::-;41858:1;41830:30;;:::i;:::-;41878:46;41899:9;41910:2;41914:9;41878:46;;:::i;:::-;41874:126;;41798:3;;;;;:::i;:::-;41769:18;;41874:126;41798:3;41958:2;;41944:16;41978:7;41958:2;41944:16;:4;41949:5;;41944:16;;;:::i;:::-;;:::i;:::-;41978:7;:::i;:::-;41874:126;;;;41789:7;;;;;;;42032:20;42046:5;42032:20;:::i;:::-;42079:1;42067:13;42079:1;42067:13;:::i;:::-;42093:3;42082:1;:9;;42086:5;42082:9;:::i;:::-;;;:::i;:::-;;;;;42093:3;42127:4;42112:22;42127:7;;:4;42132:1;42127:7;;:::i;:::-;;:::i;:::-;42112:22;:9;42122:1;;42112:22;;;:::i;:::-;;:::i;:::-;42093:3;:::i;:::-;42067:13;;42082:9;;;;;41446:705::o;8607:156:21:-;;8703:53;8723:32;8731:23;8739:14;8711:10;8703:53;8607:156;8680:4;;:::i;:::-;8711:3;:10;8747:5;8739:14;:::i;:::-;8731:23;:::i;:::-;8723:32;:::i;:::-;8703:53;;:::i;:::-;;:::i;:::-;8696:60;:::o;6415:38701:57:-;;:::o;:::-;;;;;;;:::o;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;2241:406:21:-;2304:4;;:::i;:::-;2335:3;2324:22;2325:21;2335:3;2340:5;2325:21;;:::i;:::-;2324:22;;:::i;:::-;2320:321;;;;2520:21;:42;2362:3;:23;:16;:11;:3;:11;:16;:::i;:::-;2379:5;2362:23;;:::i;:::-;2520:14;2544:18;:11;:3;:11;:18;:::i;:::-;2520:3;:14;:21;:::i;:::-;:42;:::i;:::-;2583:4;2576:11;:::o;2320:321::-;2625:5;;;2618:12;:::o;4264:129::-;4360:21;4264:129;4360:14;:21;4264:129;4337:4;;:::i;:::-;4360:3;:14;:21;:::i;:::-;;:::i;:::-;:26;;4385:1;4360:26;:::i;:::-;;;:::i;:::-;;;4353:33;:::o;6415:38701:57:-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;:::o;2129:778:17:-;;;;2232:17;;:::i;:::-;2251:16;;;:::i;:::-;2269:14;;;:::i;:::-;2299:9;:16;:9;:16;:::i;:::-;:22;;2319:2;2299:22;:::i;:::-;;;:::i;:::-;;2295:606;;;;2751:25;2337:9;;;;:::i;:::-;2360;;;:::i;:::-;2383:7;;;:::i;:::-;2535:196;;;;;;;;;;;;;;;2771:1;2774;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2823:1;2815:10;2823:1;2815:10;:::i;:::-;2827:35;2864:25;2872:16;2827:35;2872:9;:16;:::i;:::-;2864:25;:::i;:::-;2807:83;;;;:::o;6415:38701:57:-;;-1:-1:-1;6415:38701:57;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;7280:532:17:-;7366:5;:29;;7375:20;7366:29;:::i;:::-;;;:::i;:::-;;7362:444;;;;7411:7;;:::o;7362:444::-;7462:5;:38;;7471:29;7462:38;:::i;:::-;;;:::i;:::-;;7458:348;;;;7523:23;;;;;;;;;;;;:::i;:::-;;;;7458:348;7567:5;:44;;7576:35;7567:44;:::i;:::-;;;:::i;:::-;;7563:243;;;;7634:46;7662:17;7670:8;7662:17;:::i;:::-;7634:46;;;;;;;;;;;;;:::i;:::-;;;;7563:243;7701:39;;7710:30;7701:39;:::i;:::-;;;:::i;:::-;;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;7786:8;7763:32;;;;;;;;;;;;;:::i;:::-;;;;6415:38701:57;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;23148:1016::-;;;;;;23584:17;;23598:3;23584:17;:::i;:::-;;;:::i;:::-;;;23580:513;;23148:1016;;;:::o;23580:513::-;23638:23;23645:15;23638:23;:::i;:::-;23694:39;;:29;:18;23713:9;23694:29;;:::i;:::-;23724:8;23694:39;;:::i;:::-;;:::i;:::-;23751:9;:14;;23764:1;23751:14;:::i;:::-;;;:::i;:::-;;:65;;;;;23580:513;23747:336;;;23580:513;;;;23747:336;23836:53;23878:11;23836:39;:29;:18;23855:9;23836:29;;:::i;:::-;23866:8;23836:39;;:::i;:::-;:53;:::i;:::-;23941:8;23912:69;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;23747:336;;;;;23751:65;23769:23;:11;;;:23;:::i;:::-;:47;;23796:20;;:::i;:::-;23769:47;:::i;:::-;;;:::i;:::-;;;23751:65;;;6415:38701;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;18801:46::-;18845:2;;;:::i;:::-;18801:46;:::o;18845:2::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;18854:1122::-;;18962:14;:7;;:14;;:::i;:::-;:19;;18980:1;18962:19;:::i;:::-;;;:::i;:::-;;18958:32;;19067:14;:7;;:14;;:::i;:::-;:23;;19084:6;19067:23;:::i;:::-;;;:::i;:::-;;19063:36;;19240:31;19109:25;;:::i;:::-;19240:4;:22;:4;:22;:::i;:::-;:31;:22;19263:7;;19240:31;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;18854:1122;19236:152;;;;;;;;;;;19472:12;:5;:12;:::i;:::-;:31;;19487:16;;:::i;:::-;19472:31;:::i;:::-;;;:::i;:::-;;:65;;;;19506:16;;:::i;:::-;19472:65;19709:28;:4;:28;:::i;:::-;;;19738:9;19749:8;19759:5;19766:8;19709:66;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;19472:65;19705:265;;;;;;;;;;;18854:1122::o;19705:265::-;;;;;;19709:66;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;19472:65::-;19525:12;:5;:12;:::i;:::-;19472:65;;19236:152;19371:7;;;:::o;19236:152::-;;;;;;;19240:31;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;19063:36;19092:7;;;;:::o;18958:32::-;18983:7;;;;:::o;4474:107:21:-;4556:11;:18;4474:107;4530:7;;:::i;:::-;4556:3;:11;:18;:::i;:::-;4549:25;:::o;6415:38701:57:-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;4923:118:21:-;5016:18;4923:118;5016:11;:18;4923:118;4990:7;;:::i;:::-;5016:3;:11;:18;:::i;:::-;;;:::i;:::-;5009:25;:::o;2912:187:1:-;3004:6;;;:::i;:::-;3020:17;3029:8;3020:17;;:::i;:::-;3083:8;3052:40;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2912:187::o;42157:511:57:-;42265:4;;:::i;:::-;42364:20;42363:51;42364:50;:40;:31;:20;42385:9;42364:31;;:::i;:::-;:40;:::i;:::-;42405:8;42364:50;;:::i;:::-;42363:51;;:::i;:::-;42359:69;;42439:64;42468:14;:25;:35;:14;;:25;:::i;:::-;:35;:::i;:::-;42439:64;:::i;:::-;42517:19;;:5;:19;;:::i;:::-;:24;;42540:1;42517:24;:::i;:::-;;;:::i;:::-;;:62;;;;42157:511;42513:80;;42611:50;:37;:50;:15;42629:19;;42611:15;42629:5;:19;;:::i;:::-;42611:37;;:::i;:::-;42652:9;42611:50;:::i;:::-;;;:::i;:::-;;;42604:57;:::o;42513:80::-;42588:5;;;42581:12;:::o;42517:62::-;42545:5;:12;;:5;:12;;:::i;:::-;:34;;42561:18;42545:34;:::i;:::-;;;:::i;:::-;;42517:62;;42359:69;42423:5;;;;42416:12;:::o;6415:38701::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;:::o;:::-;;:::i;2815:1368:21:-;2881:4;;:::i;:::-;3010:3;:21;;:14;:3;:14;3025:5;3010:21;;:::i;:::-;;:::i;:::-;3046:8;;:13;;3058:1;3046:13;:::i;:::-;;;:::i;:::-;;;3042:1135;;;;4069:28;3434:8;4076:14;:21;3434:8;;:12;4069:28;3434:8;:12;3445:1;3434:12;:::i;:::-;;;:::i;:::-;3480:22;:18;:3;;:11;:18;:::i;:::-;:22;3501:1;3480:22;:::i;:::-;;;:::i;:::-;3521:10;:23;;3535:9;3521:23;:::i;:::-;;;:::i;:::-;;3517:378;;3042:1135;3973:3;;;:15;;:3;;:11;:15;:::i;:::-;;:::i;:::-;4076:14;:21;:::i;:::-;4069:28;:::i;:::-;4119:4;4112:11;:::o;3517:378::-;3844:36;3584:3;3705:35;3584:22;;3844:25;3584:3;;;:11;:22;:::i;:::-;;;:::i;:::-;3731:9;3705:23;3731:9;3705:3;;;:11;:23;:::i;:::-;:35;;:::i;:::-;3844:3;;;:14;:25;:::i;:::-;:36;:::i;:::-;3517:378;;;;;3042:1135;4161:5;;;;4154:12;:::o;6415:38701:57:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;5203:1551:17:-;;;;5329:17;;:::i;:::-;5348:16;;;:::i;:::-;5366:14;;;:::i;:::-;6278:1;6270:10;6278:1;6270:10;:::i;:::-;:79;;6283:66;6415:38701:57;6283:66:17;;;6270:79;:::i;:::-;;;:::i;:::-;;6266:164;;6551:4;6541:24;;6551:4;;6541:24;6551:4;;6557:1;6560;6541:24;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;6579:6;:20;;6589:10;6597:1;6589:10;:::i;:::-;6579:20;:::i;:::-;;;:::i;:::-;;6575:113;;6714:20;6744:1;6736:10;6744:1;6736:10;:::i;:::-;6698:49;;;;:::o;6575:113::-;6631:1;6623:10;6631:1;6623:10;:::i;:::-;6635:29;6674:1;6666:10;6674:1;6666:10;:::i;:::-;6615:62;;;;:::o;6541:24::-;;:::i;6266:164::-;6381:1;;;6373:10;6381:1;6373:10;:::i;:::-;6385:30;;6417:1;6365:54;;;;:::o","linkReferences":{},"immutableReferences":{"22738":[{"start":3791,"length":32},{"start":14577,"length":32}],"22886":[{"start":5198,"length":32},{"start":9891,"length":32},{"start":13300,"length":32},{"start":22261,"length":32},{"start":25264,"length":32}]}},"methodIdentifiers":{"DEFAULT_HEARTBEAT_INTERVAL()":"2c957688","DEFAULT_MAX_MISSED_HEARTBEATS()":"61d6b86c","DOMAIN_SEPARATOR()":"3644e515","HEARTBEAT_MAX_AGE()":"2f4bd7b8","HEARTBEAT_TYPEHASH()":"f9f16762","MAX_METRIC_DEFINITIONS()":"6076439c","MAX_METRIC_NAME_LENGTH()":"6bfe06a6","MAX_PAGE_SIZE()":"48f4da20","SLASH_ALERT_COOLDOWN()":"3ac3cbe6","acceptOwnership()":"79ba5097","addMetricDefinition(uint64,string,uint256,uint256,bool)":"ae470a85","checkOperatorStatus(uint64,address)":"ba1fb103","checkOperatorsStatus(uint64,address[])":"96686c1e","configureHeartbeat(uint64,uint64,uint8)":"b99f6759","decodeMetricPairs(bytes)":"31e3bd1b","deregisterOperator(uint64,address)":"ffcf08f0","enableCustomMetrics(uint64,bool)":"f9107f3b","getAllOperatorCount(uint64)":"3fd62c6d","getHeartbeatConfig(uint64)":"0758236f","getLastCriticalHeartbeat(uint64,address)":"7639d227","getLastHeartbeat(uint64,address)":"0c76697a","getMetricDefinitions(uint64)":"c1ef9ddf","getMetricValue(uint64,address,string)":"d551162c","getOnlineOperatorCount(uint64)":"7b9f64b2","getOnlineOperators(uint64)":"40235a9c","getOperatorState(uint64,address)":"71e7388c","getOperatorStatus(uint64,address)":"62c7e8fc","getSlashableOperators(uint64)":"59dcea12","getSlashableOperatorsPaginated(uint64,uint256,uint256)":"81beac2e","goOffline(uint64)":"c5d960bb","goOnline(uint64)":"b074e9dd","heartbeatConfigs(uint64)":"da435a7c","isHeartbeatCurrent(uint64,address)":"ee1c0390","isOnline(uint64,address)":"5685cf68","isRegisteredOperator(uint64,address)":"60cf0991","metricValues(uint64,address,string)":"9cbdae22","metricsRecorder()":"2dae1885","operatorStates(uint64,address)":"3e6e34a7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","registerOperator(uint64,address)":"1e8f5ee5","registerServiceOwner(uint64,address)":"05778550","removeInactiveOperator(uint64,address)":"e65cafcb","renounceOwnership()":"715018a6","reportForSlashing(uint64,address,string)":"adff830c","serviceMetrics(uint64,uint256)":"22f1ec93","serviceOwners(uint64)":"56c4e17d","setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])":"191cbd1a","setMetricsRecorder(address)":"20812956","setSlashingOracle(address)":"84ef7322","slashingOracle()":"cfe34749","submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":"2bf4d6a7","submitHeartbeatDirect(uint64,uint64,uint8,bytes)":"5cce98a6","tangleCore()":"5a936dc6","transferOwnership(address)":"f2fde38b","validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":"65a6936e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tangleCore\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"now_\",\"type\":\"uint64\"}],\"name\":\"HeartbeatFromFuture\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"now_\",\"type\":\"uint64\"}],\"name\":\"HeartbeatStale\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"}],\"name\":\"HeartbeatConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"HeartbeatReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"MetricReported\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MetricViolation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorCameOnline\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"}],\"name\":\"OperatorWentOffline\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashingTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"oldStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"StatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_HEARTBEAT_INTERVAL\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MAX_MISSED_HEARTBEATS\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEARTBEAT_MAX_AGE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEARTBEAT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_METRIC_DEFINITIONS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_METRIC_NAME_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PAGE_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_ALERT_COOLDOWN\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"addMetricDefinition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"checkOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"checkOperatorsStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"}],\"name\":\"configureHeartbeat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeMetricPairs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricPair[]\",\"name\":\"pairs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"enableCustomMetrics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getAllOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"customMetrics\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.HeartbeatConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getLastCriticalHeartbeat\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getLastHeartbeat\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getMetricDefinitions\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricDefinition[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"}],\"name\":\"getMetricValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getOnlineOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getOnlineOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastHeartbeat\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"consecutiveBeats\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"},{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"lastMetricsHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IOperatorStatusRegistry.OperatorState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getSlashableOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getSlashableOperatorsPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"goOffline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"goOnline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"heartbeatConfigs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"customMetrics\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isHeartbeatCurrent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOnline\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isRegisteredOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"metricValues\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metricsRecorder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorStates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lastHeartbeat\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"consecutiveBeats\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"},{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"lastMetricsHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"registerServiceOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"removeInactiveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"reportForSlashing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"serviceMetrics\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"serviceOwners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricDefinition[]\",\"name\":\"definitions\",\"type\":\"tuple[]\"}],\"name\":\"setMetricDefinitions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"}],\"name\":\"setMetricsRecorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setSlashingOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashingOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metrics\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"submitHeartbeat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metrics\",\"type\":\"bytes\"}],\"name\":\"submitHeartbeatDirect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tangleCore\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricPair[]\",\"name\":\"pairs\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"pairsLen\",\"type\":\"uint256\"}],\"name\":\"validateAndStoreMetrics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Integrates with Blueprint SDK QoS metrics system\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"checkOperatorStatus(uint64,address)\":{\"details\":\"Should be called periodically (e.g., by keepers or during other operations)\"},\"configureHeartbeat(uint64,uint64,uint8)\":{\"params\":{\"interval\":\"Heartbeat interval in seconds\",\"maxMissed\":\"Max missed heartbeats before offline\",\"serviceId\":\"The service ID\"}},\"decodeMetricPairs(bytes)\":{\"details\":\"External + try/catch wrapper target so malformed payloads don't brick heartbeats.\"},\"deregisterOperator(uint64,address)\":{\"details\":\"Only callable by Tangle core. Does not clear operator state so historical data (last heartbeat, metrics) remains queryable.\"},\"getSlashableOperators(uint64)\":{\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"operators\":\"Array of slashable operators (capped at MAX_PAGE_SIZE)\"}},\"getSlashableOperatorsPaginated(uint64,uint256,uint256)\":{\"params\":{\"limit\":\"Max results per page (capped at MAX_PAGE_SIZE)\",\"offset\":\"Starting index\",\"serviceId\":\"The service ID\"},\"returns\":{\"operators\":\"Array of slashable operators in this page\",\"total\":\"Total operators in the set (for pagination)\"}},\"goOffline(uint64)\":{\"details\":\"Sets status to Exiting but does NOT exempt from slashing \\u2014 operators remain slashable until properly deregistered through the service lifecycle.\",\"params\":{\"serviceId\":\"The service ID\"}},\"goOnline(uint64)\":{\"details\":\"Must submit a heartbeat after coming online to be marked Healthy\",\"params\":{\"serviceId\":\"The service ID\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"registerOperator(uint64,address)\":{\"details\":\"Only callable by Tangle core \\u2014 operator assignment is determined by the service lifecycle (request \\u2192 approve \\u2192 activate), not by service owners.\"},\"registerServiceOwner(uint64,address)\":{\"details\":\"Only callable by the Tangle core contract\"},\"removeInactiveOperator(uint64,address)\":{\"details\":\"Only callable by service owner or contract owner. Operator must be Slashed or have been offline beyond 10x the heartbeat threshold to prevent premature removal.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)\":{\"details\":\"Signature is over the EIP-712 typed struct `Heartbeat` defined above. The `timestamp` field bounds the freshness so replays of stale \\\"healthy\\\" heartbeats cannot mask an offline operator. The domain separator includes `chainId` and `address(this)` so signatures cannot replay across forks or deployments.\"},\"submitHeartbeatDirect(uint64,uint64,uint8,bytes)\":{\"details\":\"Can only be called by registered operators\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)\":{\"details\":\"External so it can be called via try/catch from _processMetrics. Must only be called from _processMetrics (not user-facing despite being external).\"}},\"stateVariables\":{\"HEARTBEAT_MAX_AGE\":{\"details\":\"Beyond this, replays of an old \\\"healthy\\\" heartbeat would mask current liveness.\"},\"MAX_METRIC_PAIRS\":{\"details\":\"Maximum number of metric pairs per heartbeat to bound gas costs.\"}},\"title\":\"OperatorStatusRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEFAULT_HEARTBEAT_INTERVAL()\":{\"notice\":\"Default heartbeat interval (5 minutes)\"},\"DEFAULT_MAX_MISSED_HEARTBEATS()\":{\"notice\":\"Default max missed heartbeats before offline\"},\"DOMAIN_SEPARATOR()\":{\"notice\":\"Domain separator for EIP-712 signatures (kept for backwards compatibility)\"},\"HEARTBEAT_MAX_AGE()\":{\"notice\":\"Maximum staleness for a heartbeat signature.\"},\"HEARTBEAT_TYPEHASH()\":{\"notice\":\"EIP-712 typehash for `Heartbeat`. Binds operator + service + blueprint + status + metrics + timestamp; the domain separator binds it to chainId + verifying contract. Closes cross-fork / cross-service / replay surface.\"},\"MAX_METRIC_DEFINITIONS()\":{\"notice\":\"Maximum metric definitions per service to bound validation gas\"},\"MAX_METRIC_NAME_LENGTH()\":{\"notice\":\"Add a custom metric definitionMaximum metric name length to bound hashing gas costs\"},\"MAX_PAGE_SIZE()\":{\"notice\":\"Maximum page size for paginated queries to bound gas usage\"},\"SLASH_ALERT_COOLDOWN()\":{\"notice\":\"Cooldown between successive critical heartbeat alerts per service/operator\"},\"addMetricDefinition(uint64,string,uint256,uint256,bool)\":{\"notice\":\"Add a custom metric definition\"},\"checkOperatorStatus(uint64,address)\":{\"notice\":\"Check and update operator status based on heartbeat timing\"},\"checkOperatorsStatus(uint64,address[])\":{\"notice\":\"Batch check multiple operators\"},\"configureHeartbeat(uint64,uint64,uint8)\":{\"notice\":\"Configure heartbeat settings for a service\"},\"decodeMetricPairs(bytes)\":{\"notice\":\"Decode metric pairs from ABI-encoded payload.\"},\"deregisterOperator(uint64,address)\":{\"notice\":\"Deregister an operator from a service instance\"},\"enableCustomMetrics(uint64,bool)\":{\"notice\":\"Enable custom metrics for a service\"},\"getAllOperatorCount(uint64)\":{\"notice\":\"Get the total count of tracked operators for a service\"},\"getHeartbeatConfig(uint64)\":{\"notice\":\"Get heartbeat config for a service\"},\"getLastCriticalHeartbeat(uint64,address)\":{\"notice\":\"Get the last critical heartbeat timestamp for an operator\"},\"getLastHeartbeat(uint64,address)\":{\"notice\":\"Get last heartbeat timestamp for an operator\"},\"getMetricDefinitions(uint64)\":{\"notice\":\"Get metric definitions for a service\"},\"getMetricValue(uint64,address,string)\":{\"notice\":\"Get a metric value for an operator\"},\"getOnlineOperatorCount(uint64)\":{\"notice\":\"Get online operator count\"},\"getOnlineOperators(uint64)\":{\"notice\":\"Get all online operators for a service\"},\"getOperatorState(uint64,address)\":{\"notice\":\"Get full operator state\"},\"getOperatorStatus(uint64,address)\":{\"notice\":\"Get operator status for a service\"},\"getSlashableOperators(uint64)\":{\"notice\":\"Get offline operators that should be slashed (convenience wrapper)\"},\"getSlashableOperatorsPaginated(uint64,uint256,uint256)\":{\"notice\":\"Paginated version of getSlashableOperators to prevent gas DoS\"},\"goOffline(uint64)\":{\"notice\":\"Operator voluntarily goes offline\"},\"goOnline(uint64)\":{\"notice\":\"Operator comes back online after voluntary offline period\"},\"heartbeatConfigs(uint64)\":{\"notice\":\"Heartbeat config per service: serviceId => config\"},\"isHeartbeatCurrent(uint64,address)\":{\"notice\":\"Check if operator has submitted heartbeat recently\"},\"isOnline(uint64,address)\":{\"notice\":\"Check if an operator is online for a service\"},\"isRegisteredOperator(uint64,address)\":{\"notice\":\"Check if an operator is registered for a service\"},\"metricValues(uint64,address,string)\":{\"notice\":\"Last reported metric values: serviceId => operator => metricName => value\"},\"metricsRecorder()\":{\"notice\":\"Metrics recorder for reward distribution\"},\"operatorStates(uint64,address)\":{\"notice\":\"Operator state per service: serviceId => operator => state\"},\"registerOperator(uint64,address)\":{\"notice\":\"Register an operator for a service instance\"},\"registerServiceOwner(uint64,address)\":{\"notice\":\"Register service owner\"},\"removeInactiveOperator(uint64,address)\":{\"notice\":\"Remove an operator from the _allOperators tracking set\"},\"reportForSlashing(uint64,address,string)\":{\"notice\":\"Report an operator for slashing (called by slashing oracle)\"},\"serviceMetrics(uint64,uint256)\":{\"notice\":\"Custom metrics per service: serviceId => metric definitions\"},\"serviceOwners(uint64)\":{\"notice\":\"Service owners who can configure heartbeat settings\"},\"setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])\":{\"notice\":\"Batch set metric definitions for a service (replaces existing)\"},\"setMetricsRecorder(address)\":{\"notice\":\"Set metrics recorder address for reward tracking\"},\"setSlashingOracle(address)\":{\"notice\":\"Set slashing oracle address\"},\"slashingOracle()\":{\"notice\":\"Slashing callback interface\"},\"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)\":{\"notice\":\"Submit a heartbeat to prove operator is online (EIP-712 signed).\"},\"submitHeartbeatDirect(uint64,uint64,uint8,bytes)\":{\"notice\":\"Submit heartbeat without signature (for trusted contexts)\"},\"tangleCore()\":{\"notice\":\"Tangle core contract address for service validation\"},\"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)\":{\"notice\":\"Validate metrics against definitions and store valid ones.\"}},\"notice\":\"Tracks operator online/offline status via heartbeats\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/staking/OperatorStatusRegistry.sol\":\"OperatorStatusRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/interfaces/IMetricsRecorder.sol\":{\"keccak256\":\"0x4936a66e1f3f82253c2881ac1262f23e5a8da6b67722bda2a9f572df8f17dd09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72f63ddb4efeb4a16f97a7d1a0c408126c5c86b18f3e4bdd5575d24cf1f27e45\",\"dweb:/ipfs/QmT2fvs5p4r6RjCowx1aysm7Jq6rytWaumwMR7NsD4WrAk\"]},\"src/staking/OperatorStatusRegistry.sol\":{\"keccak256\":\"0xe30dff10b402ebd73d3eec2615e8521a74f230c2aed6f3c6677450d916f34319\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bd34041ad94af12fc408faf92763c86a611433c8f1051e44600aab45a7c74ec\",\"dweb:/ipfs/QmQZrKr7L9RGSwwnw68HhqMt4AVGXzhaqmuDXiXR8K4A6x\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tangleCore","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint64","name":"signed","type":"uint64"},{"internalType":"uint64","name":"now_","type":"uint64"}],"type":"error","name":"HeartbeatFromFuture"},{"inputs":[{"internalType":"uint64","name":"signed","type":"uint64"},{"internalType":"uint64","name":"now_","type":"uint64"}],"type":"error","name":"HeartbeatStale"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"interval","type":"uint64","indexed":false},{"internalType":"uint8","name":"maxMissed","type":"uint8","indexed":false}],"type":"event","name":"HeartbeatConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint8","name":"statusCode","type":"uint8","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"HeartbeatReceived","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"metricName","type":"string","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"MetricReported","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"metricName","type":"string","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"MetricViolation","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorCameOnline","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorDeregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint8","name":"missedBeats","type":"uint8","indexed":false}],"type":"event","name":"OperatorWentOffline","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashingTriggered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"oldStatus","type":"uint8","indexed":false},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"newStatus","type":"uint8","indexed":false}],"type":"event","name":"StatusChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_HEARTBEAT_INTERVAL","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_MAX_MISSED_HEARTBEATS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HEARTBEAT_MAX_AGE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HEARTBEAT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_METRIC_DEFINITIONS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_METRIC_NAME_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_PAGE_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_ALERT_COOLDOWN","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"addMetricDefinition"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkOperatorStatus"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"checkOperatorsStatus"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"configureHeartbeat"},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeMetricPairs","outputs":[{"internalType":"struct IOperatorStatusRegistry.MetricPair[]","name":"pairs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"enableCustomMetrics"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getAllOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatConfig","outputs":[{"internalType":"struct IOperatorStatusRegistry.HeartbeatConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"},{"internalType":"bool","name":"customMetrics","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getLastCriticalHeartbeat","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getLastHeartbeat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getMetricDefinitions","outputs":[{"internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"string","name":"metricName","type":"string"}],"stateMutability":"view","type":"function","name":"getMetricValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getOnlineOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getOnlineOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorState","outputs":[{"internalType":"struct IOperatorStatusRegistry.OperatorState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"lastHeartbeat","type":"uint256"},{"internalType":"uint64","name":"consecutiveBeats","type":"uint64"},{"internalType":"uint8","name":"missedBeats","type":"uint8"},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"status","type":"uint8"},{"internalType":"bytes32","name":"lastMetricsHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashableOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSlashableOperatorsPaginated","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"goOffline"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"goOnline"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"heartbeatConfigs","outputs":[{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"},{"internalType":"bool","name":"customMetrics","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isHeartbeatCurrent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOnline","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function","name":"metricValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metricsRecorder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operatorStates","outputs":[{"internalType":"uint256","name":"lastHeartbeat","type":"uint256"},{"internalType":"uint64","name":"consecutiveBeats","type":"uint64"},{"internalType":"uint8","name":"missedBeats","type":"uint8"},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"status","type":"uint8"},{"internalType":"bytes32","name":"lastMetricsHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerServiceOwner"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeInactiveOperator"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"reportForSlashing"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"serviceMetrics","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"serviceOwners","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","name":"definitions","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setMetricDefinitions"},{"inputs":[{"internalType":"address","name":"recorder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMetricsRecorder"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlashingOracle"},{"inputs":[],"stateMutability":"view","type":"function","name":"slashingOracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"statusCode","type":"uint8"},{"internalType":"bytes","name":"metrics","type":"bytes"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitHeartbeat"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"statusCode","type":"uint8"},{"internalType":"bytes","name":"metrics","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitHeartbeatDirect"},{"inputs":[],"stateMutability":"view","type":"function","name":"tangleCore","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct IOperatorStatusRegistry.MetricPair[]","name":"pairs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"uint256","name":"pairsLen","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"validateAndStoreMetrics"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"checkOperatorStatus(uint64,address)":{"details":"Should be called periodically (e.g., by keepers or during other operations)"},"configureHeartbeat(uint64,uint64,uint8)":{"params":{"interval":"Heartbeat interval in seconds","maxMissed":"Max missed heartbeats before offline","serviceId":"The service ID"}},"decodeMetricPairs(bytes)":{"details":"External + try/catch wrapper target so malformed payloads don't brick heartbeats."},"deregisterOperator(uint64,address)":{"details":"Only callable by Tangle core. Does not clear operator state so historical data (last heartbeat, metrics) remains queryable."},"getSlashableOperators(uint64)":{"params":{"serviceId":"The service ID"},"returns":{"operators":"Array of slashable operators (capped at MAX_PAGE_SIZE)"}},"getSlashableOperatorsPaginated(uint64,uint256,uint256)":{"params":{"limit":"Max results per page (capped at MAX_PAGE_SIZE)","offset":"Starting index","serviceId":"The service ID"},"returns":{"operators":"Array of slashable operators in this page","total":"Total operators in the set (for pagination)"}},"goOffline(uint64)":{"details":"Sets status to Exiting but does NOT exempt from slashing — operators remain slashable until properly deregistered through the service lifecycle.","params":{"serviceId":"The service ID"}},"goOnline(uint64)":{"details":"Must submit a heartbeat after coming online to be marked Healthy","params":{"serviceId":"The service ID"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"registerOperator(uint64,address)":{"details":"Only callable by Tangle core — operator assignment is determined by the service lifecycle (request → approve → activate), not by service owners."},"registerServiceOwner(uint64,address)":{"details":"Only callable by the Tangle core contract"},"removeInactiveOperator(uint64,address)":{"details":"Only callable by service owner or contract owner. Operator must be Slashed or have been offline beyond 10x the heartbeat threshold to prevent premature removal."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":{"details":"Signature is over the EIP-712 typed struct `Heartbeat` defined above. The `timestamp` field bounds the freshness so replays of stale \"healthy\" heartbeats cannot mask an offline operator. The domain separator includes `chainId` and `address(this)` so signatures cannot replay across forks or deployments."},"submitHeartbeatDirect(uint64,uint64,uint8,bytes)":{"details":"Can only be called by registered operators"},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":{"details":"External so it can be called via try/catch from _processMetrics. Must only be called from _processMetrics (not user-facing despite being external)."}},"version":1},"userdoc":{"kind":"user","methods":{"DEFAULT_HEARTBEAT_INTERVAL()":{"notice":"Default heartbeat interval (5 minutes)"},"DEFAULT_MAX_MISSED_HEARTBEATS()":{"notice":"Default max missed heartbeats before offline"},"DOMAIN_SEPARATOR()":{"notice":"Domain separator for EIP-712 signatures (kept for backwards compatibility)"},"HEARTBEAT_MAX_AGE()":{"notice":"Maximum staleness for a heartbeat signature."},"HEARTBEAT_TYPEHASH()":{"notice":"EIP-712 typehash for `Heartbeat`. Binds operator + service + blueprint + status + metrics + timestamp; the domain separator binds it to chainId + verifying contract. Closes cross-fork / cross-service / replay surface."},"MAX_METRIC_DEFINITIONS()":{"notice":"Maximum metric definitions per service to bound validation gas"},"MAX_METRIC_NAME_LENGTH()":{"notice":"Add a custom metric definitionMaximum metric name length to bound hashing gas costs"},"MAX_PAGE_SIZE()":{"notice":"Maximum page size for paginated queries to bound gas usage"},"SLASH_ALERT_COOLDOWN()":{"notice":"Cooldown between successive critical heartbeat alerts per service/operator"},"addMetricDefinition(uint64,string,uint256,uint256,bool)":{"notice":"Add a custom metric definition"},"checkOperatorStatus(uint64,address)":{"notice":"Check and update operator status based on heartbeat timing"},"checkOperatorsStatus(uint64,address[])":{"notice":"Batch check multiple operators"},"configureHeartbeat(uint64,uint64,uint8)":{"notice":"Configure heartbeat settings for a service"},"decodeMetricPairs(bytes)":{"notice":"Decode metric pairs from ABI-encoded payload."},"deregisterOperator(uint64,address)":{"notice":"Deregister an operator from a service instance"},"enableCustomMetrics(uint64,bool)":{"notice":"Enable custom metrics for a service"},"getAllOperatorCount(uint64)":{"notice":"Get the total count of tracked operators for a service"},"getHeartbeatConfig(uint64)":{"notice":"Get heartbeat config for a service"},"getLastCriticalHeartbeat(uint64,address)":{"notice":"Get the last critical heartbeat timestamp for an operator"},"getLastHeartbeat(uint64,address)":{"notice":"Get last heartbeat timestamp for an operator"},"getMetricDefinitions(uint64)":{"notice":"Get metric definitions for a service"},"getMetricValue(uint64,address,string)":{"notice":"Get a metric value for an operator"},"getOnlineOperatorCount(uint64)":{"notice":"Get online operator count"},"getOnlineOperators(uint64)":{"notice":"Get all online operators for a service"},"getOperatorState(uint64,address)":{"notice":"Get full operator state"},"getOperatorStatus(uint64,address)":{"notice":"Get operator status for a service"},"getSlashableOperators(uint64)":{"notice":"Get offline operators that should be slashed (convenience wrapper)"},"getSlashableOperatorsPaginated(uint64,uint256,uint256)":{"notice":"Paginated version of getSlashableOperators to prevent gas DoS"},"goOffline(uint64)":{"notice":"Operator voluntarily goes offline"},"goOnline(uint64)":{"notice":"Operator comes back online after voluntary offline period"},"heartbeatConfigs(uint64)":{"notice":"Heartbeat config per service: serviceId => config"},"isHeartbeatCurrent(uint64,address)":{"notice":"Check if operator has submitted heartbeat recently"},"isOnline(uint64,address)":{"notice":"Check if an operator is online for a service"},"isRegisteredOperator(uint64,address)":{"notice":"Check if an operator is registered for a service"},"metricValues(uint64,address,string)":{"notice":"Last reported metric values: serviceId => operator => metricName => value"},"metricsRecorder()":{"notice":"Metrics recorder for reward distribution"},"operatorStates(uint64,address)":{"notice":"Operator state per service: serviceId => operator => state"},"registerOperator(uint64,address)":{"notice":"Register an operator for a service instance"},"registerServiceOwner(uint64,address)":{"notice":"Register service owner"},"removeInactiveOperator(uint64,address)":{"notice":"Remove an operator from the _allOperators tracking set"},"reportForSlashing(uint64,address,string)":{"notice":"Report an operator for slashing (called by slashing oracle)"},"serviceMetrics(uint64,uint256)":{"notice":"Custom metrics per service: serviceId => metric definitions"},"serviceOwners(uint64)":{"notice":"Service owners who can configure heartbeat settings"},"setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])":{"notice":"Batch set metric definitions for a service (replaces existing)"},"setMetricsRecorder(address)":{"notice":"Set metrics recorder address for reward tracking"},"setSlashingOracle(address)":{"notice":"Set slashing oracle address"},"slashingOracle()":{"notice":"Slashing callback interface"},"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":{"notice":"Submit a heartbeat to prove operator is online (EIP-712 signed)."},"submitHeartbeatDirect(uint64,uint64,uint8,bytes)":{"notice":"Submit heartbeat without signature (for trusted contexts)"},"tangleCore()":{"notice":"Tangle core contract address for service validation"},"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":{"notice":"Validate metrics against definitions and store valid ones."}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/staking/OperatorStatusRegistry.sol":"OperatorStatusRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/interfaces/IMetricsRecorder.sol":{"keccak256":"0x4936a66e1f3f82253c2881ac1262f23e5a8da6b67722bda2a9f572df8f17dd09","urls":["bzz-raw://72f63ddb4efeb4a16f97a7d1a0c408126c5c86b18f3e4bdd5575d24cf1f27e45","dweb:/ipfs/QmT2fvs5p4r6RjCowx1aysm7Jq6rytWaumwMR7NsD4WrAk"],"license":"MIT"},"src/staking/OperatorStatusRegistry.sol":{"keccak256":"0xe30dff10b402ebd73d3eec2615e8521a74f230c2aed6f3c6677450d916f34319","urls":["bzz-raw://1bd34041ad94af12fc408faf92763c86a611433c8f1051e44600aab45a7c74ec","dweb:/ipfs/QmQZrKr7L9RGSwwnw68HhqMt4AVGXzhaqmuDXiXR8K4A6x"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_tangleCore","type":"address","internalType":"address"},{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_HEARTBEAT_INTERVAL","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_MAX_MISSED_HEARTBEATS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"HEARTBEAT_MAX_AGE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"HEARTBEAT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_METRIC_DEFINITIONS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_METRIC_NAME_LENGTH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_PAGE_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_ALERT_COOLDOWN","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMetricDefinition","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkOperatorStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkOperatorsStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decodeMetricPairs","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pairs","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricPair[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"deregisterOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableCustomMetrics","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllOperatorCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHeartbeatConfig","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IOperatorStatusRegistry.HeartbeatConfig","components":[{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"},{"name":"customMetrics","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getLastCriticalHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetricDefinitions","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getMetricValue","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"metricName","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOnlineOperatorCount","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOnlineOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorState","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IOperatorStatusRegistry.OperatorState","components":[{"name":"lastHeartbeat","type":"uint256","internalType":"uint256"},{"name":"consecutiveBeats","type":"uint64","internalType":"uint64"},{"name":"missedBeats","type":"uint8","internalType":"uint8"},{"name":"status","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"lastMetricsHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"}],"stateMutability":"view"},{"type":"function","name":"getSlashableOperators","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"operators","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSlashableOperatorsPaginated","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operators","type":"address[]","internalType":"address[]"},{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"goOffline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"goOnline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"heartbeatConfigs","inputs":[{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"interval","type":"uint64","internalType":"uint64"},{"name":"maxMissed","type":"uint8","internalType":"uint8"},{"name":"customMetrics","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isHeartbeatCurrent","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOnline","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"metricValues","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"metricsRecorder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operatorStates","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"lastHeartbeat","type":"uint256","internalType":"uint256"},{"name":"consecutiveBeats","type":"uint64","internalType":"uint64"},{"name":"missedBeats","type":"uint8","internalType":"uint8"},{"name":"status","type":"uint8","internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"lastMetricsHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerServiceOwner","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeInactiveOperator","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reportForSlashing","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serviceMetrics","inputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"serviceOwners","inputs":[{"name":"","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMetricDefinitions","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"definitions","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"minValue","type":"uint256","internalType":"uint256"},{"name":"maxValue","type":"uint256","internalType":"uint256"},{"name":"required","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMetricsRecorder","inputs":[{"name":"recorder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlashingOracle","inputs":[{"name":"oracle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashingOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"submitHeartbeat","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"statusCode","type":"uint8","internalType":"uint8"},{"name":"metrics","type":"bytes","internalType":"bytes"},{"name":"timestamp","type":"uint64","internalType":"uint64"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitHeartbeatDirect","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"blueprintId","type":"uint64","internalType":"uint64"},{"name":"statusCode","type":"uint8","internalType":"uint8"},{"name":"metrics","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tangleCore","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAndStoreMetrics","inputs":[{"name":"serviceId","type":"uint64","internalType":"uint64"},{"name":"operator","type":"address","internalType":"address"},{"name":"pairs","type":"tuple[]","internalType":"struct IOperatorStatusRegistry.MetricPair[]","components":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"pairsLen","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"HeartbeatConfigUpdated","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"interval","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"maxMissed","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"HeartbeatReceived","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"blueprintId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"statusCode","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetricReported","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"metricName","type":"string","indexed":false,"internalType":"string"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MetricViolation","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"metricName","type":"string","indexed":false,"internalType":"string"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorCameOnline","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorDeregistered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorWentOffline","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"missedBeats","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SlashingTriggered","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StatusChanged","inputs":[{"name":"serviceId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"oldStatus","type":"uint8","indexed":false,"internalType":"enum IOperatorStatusRegistry.StatusCode"},{"name":"newStatus","type":"uint8","indexed":false,"internalType":"enum IOperatorStatusRegistry.StatusCode"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"HeartbeatFromFuture","inputs":[{"name":"signed","type":"uint64","internalType":"uint64"},{"name":"now_","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"HeartbeatStale","inputs":[{"name":"signed","type":"uint64","internalType":"uint64"},{"name":"now_","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c0604052346100655761001a610014610139565b90610216565b61002261006a565b617a9c6104d38239608051818181610ecf01526138f1015260a05181818161144e015281816126a3015281816133f4015281816156f501526162b00152617a9c90f35b610070565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b9061009c90610074565b810190811060018060401b038211176100b457604052565b61007e565b906100cc6100c561006a565b9283610092565b565b5f80fd5b60018060a01b031690565b6100e6906100d2565b90565b6100f2816100dd565b036100f957565b5f80fd5b9050519061010a826100e9565b565b91906040838203126101345780610128610131925f86016100fd565b936020016100fd565b90565b6100ce565b610157617f6f8038038061014c816100b9565b92833981019061010c565b9091565b90565b61017261016d610177926100d2565b61015b565b6100d2565b90565b6101839061015e565b90565b61018f9061017a565b90565b90565b61019e90610192565b9052565b90565b6101ae906101a2565b9052565b6101bb906100dd565b9052565b9095949261020a946101f9610203926101ef6080966101e560a088019c5f890190610195565b6020870190610195565b6040850190610195565b60608301906101a5565b01906101b2565b565b60200190565b5190565b90610220906102d3565b60a0527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6102bb7f36ffc258c865193ae10c3cf640450ab772fdb8da1dfcae7862ad1205a5567f4c916102ac7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64661029730610186565b916102a061006a565b968795602087016101bf565b60208201810382520382610092565b6102cd6102c782610212565b9161020c565b20608052565b6102dc9061031e565b565b90565b6102f56102f06102fa926102de565b61015b565b6100d2565b90565b610306906102e1565b90565b919061031c905f602085019401906101b2565b565b8061033961033361032e5f6102fd565b6100dd565b916100dd565b1461034957610347906103e7565b565b61036c6103555f6102fd565b5f918291631e4fbdf760e01b835260048301610309565b0390fd5b1b90565b9190600861039491029161038e60018060a01b0384610370565b92610370565b9181191691161790565b6103a79061017a565b90565b90565b91906103c36103be6103cb9361039e565b6103aa565b908354610374565b9055565b5f90565b6103e5916103df6103cf565b916103ad565b565b6103fb906103f65f60016103d3565b610473565b565b5f1c90565b60018060a01b031690565b61041961041e916103fd565b610402565b90565b61042b905461040d565b90565b5f1b90565b9061044460018060a01b039161042e565b9181191691161790565b9061046361045e61046a9261039e565b6103aa565b8254610433565b9055565b5f0190565b61047c5f610421565b610486825f61044e565b906104ba6104b47f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361039e565b9161039e565b916104c361006a565b806104cd8161046e565b0390a356fe60806040526004361015610013575b6124f9565b61001d5f3561039c565b806305778550146103975780630758236f146103925780630c76697a1461038d578063191cbd1a146103885780631e8f5ee514610383578063208129561461037e57806322f1ec93146103795780632bf4d6a7146103745780632c9576881461036f5780632dae18851461036a5780632f4bd7b81461036557806331e3bd1b146103605780633644e5151461035b5780633ac3cbe6146103565780633e6e34a7146103515780633fd62c6d1461034c57806340235a9c1461034757806348f4da20146103425780635685cf681461033d57806356c4e17d1461033857806359dcea12146103335780635a936dc61461032e5780635cce98a6146103295780636076439c1461032457806360cf09911461031f57806361d6b86c1461031a57806362c7e8fc1461031557806365a6936e146103105780636bfe06a61461030b578063715018a61461030657806371e7388c146103015780637639d227146102fc57806379ba5097146102f75780637b9f64b2146102f257806381beac2e146102ed57806384ef7322146102e85780638da5cb5b146102e357806396686c1e146102de5780639cbdae22146102d9578063adff830c146102d4578063ae470a85146102cf578063b074e9dd146102ca578063b99f6759146102c5578063ba1fb103146102c0578063c1ef9ddf146102bb578063c5d960bb146102b6578063cfe34749146102b1578063d551162c146102ac578063da435a7c146102a7578063e30c3978146102a2578063e65cafcb1461029d578063ee1c039014610298578063f2fde38b14610293578063f9107f3b1461028e578063f9f16762146102895763ffcf08f00361000e576124c5565b612490565b61242d565b6123cd565b612397565b612363565b61232e565b6122f6565b612224565b6121ef565b6121ad565b612178565b61204e565b61201a565b611fad565b611f73565b611eaa565b611de7565b611c60565b611baa565b611b77565b611b40565b611aab565b611a78565b611a42565b611a0c565b611950565b61191b565b6118ad565b611672565b611628565b6115a6565b611571565b611503565b611470565b611417565b6113e2565b61137d565b611333565b6112c7565b6111f3565b6111b9565b610f83565b610f16565b610e97565b610d1e565b610cd0565b610c35565b610b8f565b610a62565b6106c0565b61066e565b61063a565b610577565b61051d565b61044e565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060401b031690565b6103c8816103b4565b036103cf57565b5f80fd5b905035906103e0826103bf565b565b60018060a01b031690565b6103f6906103e2565b90565b610402816103ed565b0361040957565b5f80fd5b9050359061041a826103f9565b565b91906040838203126104445780610438610441925f86016103d3565b9360200161040d565b90565b6103ac565b5f0190565b3461047d5761046761046136600461041c565b90612690565b61046f6103a2565b8061047981610449565b0390f35b6103a8565b9060208282031261049b57610498915f016103d3565b90565b6103ac565b6104a9906103b4565b9052565b60ff1690565b6104bc906104ad565b9052565b151590565b6104ce906104c0565b9052565b90604080610506936104ea5f8201515f8601906104a0565b6104fc602082015160208601906104b3565b01519101906104c5565b565b919061051b905f606085019401906104d2565b565b3461054d57610549610538610533366004610482565b61276f565b6105406103a2565b91829182610508565b0390f35b6103a8565b90565b61055e90610552565b9052565b9190610575905f60208501940190610555565b565b346105a8576105a461059361058d36600461041c565b90612788565b61059b6103a2565b91829182610562565b0390f35b6103a8565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156105f15781359160018060401b0383116105ec5760200192602083028401116105e757565b6105b5565b6105b1565b6105ad565b9190916040818403126106355761060f835f83016103d3565b92602082013560018060401b0381116106305761062c92016105b9565b9091565b6103b0565b6103ac565b346106695761065361064d3660046105f6565b916130fe565b61065b6103a2565b8061066581610449565b0390f35b6103a8565b3461069d5761068761068136600461041c565b906133e8565b61068f6103a2565b8061069981610449565b0390f35b6103a8565b906020828203126106bb576106b8915f0161040d565b90565b6103ac565b346106ee576106d86106d33660046106a2565b61351d565b6106e06103a2565b806106ea81610449565b0390f35b6103a8565b6106fc81610552565b0361070357565b5f80fd5b90503590610714826106f3565b565b919060408382031261073e578061073261073b925f86016103d3565b93602001610707565b90565b6103ac565b90565b61075a61075561075f926103b4565b610743565b6103b4565b90565b9061076c90610746565b5f5260205260405f2090565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b5f5260205f2090565b6107ab8161078c565b8210156107c5576107bd600491610790565b910201905f90565b610778565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107fe575b60208310146107f957565b6107ca565b91607f16916107ee565b60209181520190565b5f5260205f2090565b905f929180549061083461082d836107de565b8094610808565b916001811690815f1461088b575060011461084f575b505050565b61085c9192939450610811565b915f925b81841061087357505001905f808061084a565b60018160209295939554848601520191019290610860565b92949550505060ff19168252151560200201905f808061084a565b906108b09161081a565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906108db906108b3565b810190811060018060401b038211176108f357604052565b6108bd565b90610918610911926109086103a2565b938480926108a6565b03836108d1565b565b5f1c90565b90565b61092e6109339161091a565b61091f565b90565b6109409054610922565b90565b60ff1690565b61095561095a9161091a565b610943565b90565b6109679054610949565b90565b610975906008610762565b9061097f8261078c565b8110156109c55761098f916107a2565b509061099c5f83016108f8565b916109a960018201610936565b916109c260036109bb60028501610936565b930161095d565b90565b5f80fd5b5190565b60209181520190565b90825f9392825e0152565b610a00610a09602093610a0e936109f7816109c9565b938480936109cd565b958691016109d6565b6108b3565b0190565b610a1b906104c0565b9052565b610a59610a6094610a4f610a446060959998969960808601908682035f8801526109e1565b986020850190610555565b6040830190610555565b0190610a12565b565b34610a9757610a93610a7e610a78366004610716565b9061096a565b90610a8a9492946103a2565b94859485610a1f565b0390f35b6103a8565b610aa5816104ad565b03610aac57565b5f80fd5b90503590610abd82610a9c565b565b909182601f83011215610af75781359160018060401b038311610af2576020019260018302840111610aed57565b6105b5565b6105b1565b6105ad565b919060c083820312610b8a57610b14815f85016103d3565b92610b2282602083016103d3565b92610b308360408401610ab0565b92606083013560018060401b038111610b855781610b4f918501610abf565b929093610b5f83608083016103d3565b9260a082013560018060401b038111610b8057610b7c9201610abf565b9091565b6103b0565b6103b0565b6103ac565b34610bc757610bb1610ba2366004610afc565b969590959491949392936139ca565b610bb96103a2565b80610bc381610449565b0390f35b6103a8565b5f910312610bd657565b6103ac565b90565b610bf2610bed610bf792610bdb565b610743565b6103b4565b90565b610c0561012c610bde565b90565b610c10610bfa565b90565b610c1c906103b4565b9052565b9190610c33905f60208501940190610c13565b565b34610c6557610c45366004610bcc565b610c61610c50610c08565b610c586103a2565b91829182610c20565b0390f35b6103a8565b1c90565b60018060a01b031690565b610c89906008610c8e9302610c6a565b610c6e565b90565b90610c9c9154610c79565b90565b610cab600b5f90610c91565b90565b610cb7906103ed565b9052565b9190610cce905f60208501940190610cae565b565b34610d0057610ce0366004610bcc565b610cfc610ceb610c9f565b610cf36103a2565b91829182610cbb565b0390f35b6103a8565b610d1061012c610bde565b90565b610d1b610d05565b90565b34610d4e57610d2e366004610bcc565b610d4a610d39610d13565b610d416103a2565b91829182610c20565b0390f35b6103a8565b90602082820312610d82575f82013560018060401b038111610d7d57610d799201610abf565b9091565b6103b0565b6103ac565b5190565b60209181520190565b60200190565b610db9610dc2602093610dc793610db0816109c9565b93848093610808565b958691016109d6565b6108b3565b0190565b610dd490610552565b9052565b90610e0290602080610df7604084015f8701518582035f870152610d9a565b940151910190610dcb565b90565b90610e0f91610dd8565b90565b60200190565b90610e2c610e2583610d87565b8092610d8b565b9081610e3d60208302840194610d94565b925f915b838310610e5057505050505090565b90919293946020610e72610e6c83856001950387528951610e05565b97610e12565b9301930191939290610e41565b610e949160208201915f818403910152610e18565b90565b34610ec857610ec4610eb3610ead366004610d53565b90613a14565b610ebb6103a2565b91829182610e7f565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b90565b610efd90610ef1565b9052565b9190610f14905f60208501940190610ef4565b565b34610f4657610f26366004610bcc565b610f42610f31610ecd565b610f396103a2565b91829182610f01565b0390f35b6103a8565b90565b610f62610f5d610f6792610f4b565b610743565b6103b4565b90565b610f75610e10610f4e565b90565b610f80610f6a565b90565b34610fb357610f93366004610bcc565b610faf610f9e610f78565b610fa66103a2565b91829182610c20565b0390f35b6103a8565b90610fc290610746565b5f5260205260405f2090565b610fe2610fdd610fe7926103e2565b610743565b6103e2565b90565b610ff390610fce565b90565b610fff90610fea565b90565b9061100c90610ff6565b5f5260205260405f2090565b60018060401b031690565b61102f6110349161091a565b611018565b90565b6110419054611023565b90565b60401c90565b60ff1690565b61105c61106191611044565b61104a565b90565b61106e9054611050565b90565b60481c90565b60ff1690565b61108961108e91611071565b611077565b90565b61109b905461107d565b90565b90565b6110ad6110b29161091a565b61109e565b90565b6110bf90546110a1565b90565b906110d16110d6926003610fb8565b611002565b6110e15f8201610936565b916110ee60018301611037565b916110fb60018201611064565b91611114600261110d60018501611091565b93016110b5565b90565b611120906104ad565b9052565b634e487b7160e01b5f52602160045260245ffd5b6005111561114257565b611124565b9061115182611138565b565b61115c90611147565b90565b61116890611153565b9052565b909594926111b7946111a66111b09261119c60809661119260a088019c5f890190610555565b6020870190610c13565b6040850190611117565b606083019061115f565b0190610ef4565b565b346111ee576111ea6111d56111cf36600461041c565b906110c2565b916111e19593956103a2565b9586958661116c565b0390f35b6103a8565b346112235761121f61120e611209366004610482565b613a2e565b6112166103a2565b91829182610562565b0390f35b6103a8565b5190565b60209181520190565b60200190565b611244906103ed565b9052565b906112558160209361123b565b0190565b60200190565b9061127c61127661126f84611228565b809361122c565b92611235565b905f5b81811061128c5750505090565b9091926112a561129f6001928651611248565b94611259565b910191909161127f565b6112c49160208201915f81840391015261125f565b90565b346112f7576112f36112e26112dd366004610482565b613ae6565b6112ea6103a2565b918291826112af565b0390f35b6103a8565b90565b61131361130e611318926112fc565b610743565b610552565b90565b61132560c86112ff565b90565b61133061131b565b90565b3461136357611343366004610bcc565b61135f61134e611328565b6113566103a2565b91829182610562565b0390f35b6103a8565b919061137b905f60208501940190610a12565b565b346113ae576113aa61139961139336600461041c565b90613b86565b6113a16103a2565b91829182611368565b0390f35b6103a8565b906113bd90610746565b5f5260205260405f2090565b6113df906113da6007915f926113b3565b610c91565b90565b346114125761140e6113fd6113f8366004610482565b6113c9565b6114056103a2565b91829182610cbb565b0390f35b6103a8565b346114475761144361143261142d366004610482565b613c0d565b61143a6103a2565b918291826112af565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b346114a057611480366004610bcc565b61149c61148b61144c565b6114936103a2565b91829182610cbb565b0390f35b6103a8565b906080828203126114fe576114bc815f84016103d3565b926114ca82602085016103d3565b926114d88360408301610ab0565b92606082013560018060401b0381116114f9576114f59201610abf565b9091565b6103b0565b6103ac565b346115355761151f6115163660046114a5565b93929092613c7f565b6115276103a2565b8061153181610449565b0390f35b6103a8565b90565b61155161154c6115569261153a565b610743565b610552565b90565b611563603261153d565b90565b61156e611559565b90565b346115a157611581366004610bcc565b61159d61158c611566565b6115946103a2565b91829182610562565b0390f35b6103a8565b346115d7576115d36115c26115bc36600461041c565b90613c8e565b6115ca6103a2565b91829182611368565b0390f35b6103a8565b90565b6115f36115ee6115f8926115dc565b610743565b6104ad565b90565b61160560036115df565b90565b6116106115fb565b90565b9190611626905f60208501940190611117565b565b3461165857611638366004610bcc565b611654611643611608565b61164b6103a2565b91829182611613565b0390f35b6103a8565b9190611670905f6020850194019061115f565b565b346116a35761169f61168e61168836600461041c565b90613cba565b6116966103a2565b9182918261165d565b0390f35b6103a8565b906116bb6116b46103a2565b92836108d1565b565b60018060401b0381116116d35760208091020190565b6108bd565b5f80fd5b5f80fd5b5f80fd5b60018060401b038111611700576116fc6020916108b3565b0190565b6108bd565b90825f939282370152565b90929192611725611720826116e4565b6116a8565b938185526020850190828401116117415761173f92611705565b565b6116e0565b9080601f830112156117645781602061176193359101611710565b90565b6105ad565b9190916040818403126117ba5761178060406116a8565b925f8201359160018060401b0383116117b5576117a2826117ae948301611746565b5f860152602001610707565b6020830152565b6116dc565b6116d8565b9291906117d36117ce826116bd565b6116a8565b93818552602080860192028101918383116118285781905b8382106117f9575050505050565b813560018060401b038111611823576020916118188784938701611769565b8152019101906117eb565b6105ad565b6105b5565b9080601f8301121561184b57816020611848933591016117bf565b90565b6105ad565b6080818303126118a857611866825f83016103d3565b92611874836020840161040d565b9260408301359060018060401b0382116118a357611897816118a093860161182d565b93606001610707565b90565b6103b0565b6103ac565b346118df576118c96118c0366004611850565b9291909161409e565b6118d16103a2565b806118db81610449565b0390f35b6103a8565b90565b6118fb6118f6611900926118e4565b610743565b610552565b90565b61190d60406118e7565b90565b611918611903565b90565b3461194b5761192b366004610bcc565b611947611936611910565b61193e6103a2565b91829182610562565b0390f35b6103a8565b3461197e57611960366004610bcc565b6119686146cd565b6119706103a2565b8061197a81610449565b0390f35b6103a8565b61198c90611153565b9052565b61199990610ef1565b9052565b906080806119f5936119b55f8201515f860190610dcb565b6119c7602082015160208601906104a0565b6119d9604082015160408601906104b3565b6119eb60608201516060860190611983565b0151910190611990565b565b9190611a0a905f60a0850194019061199d565b565b34611a3d57611a39611a28611a2236600461041c565b9061480a565b611a306103a2565b918291826119f7565b0390f35b6103a8565b34611a7357611a6f611a5e611a5836600461041c565b90614862565b611a666103a2565b91829182610c20565b0390f35b6103a8565b34611aa657611a88366004610bcc565b611a9061488a565b611a986103a2565b80611aa281610449565b0390f35b6103a8565b34611adb57611ad7611ac6611ac1366004610482565b6148db565b611ace6103a2565b91829182610562565b0390f35b6103a8565b9091606082840312611b1557611b12611afb845f85016103d3565b93611b098160208601610707565b93604001610707565b90565b6103ac565b92916020611b36611b3e9360408701908782035f89015261125f565b940190610555565b565b34611b7257611b59611b53366004611ae0565b91614979565b90611b6e611b656103a2565b92839283611b1a565b0390f35b6103a8565b34611ba557611b8f611b8a3660046106a2565b614b00565b611b976103a2565b80611ba181610449565b0390f35b6103a8565b34611bda57611bba366004610bcc565b611bd6611bc5614b0f565b611bcd6103a2565b91829182610cbb565b0390f35b6103a8565b909182601f83011215611c175781359160018060401b038311611c12576020019260208302840111611c0d57565b6105b5565b6105b1565b6105ad565b919091604081840312611c5b57611c35835f83016103d3565b92602082013560018060401b038111611c5657611c529201611bdf565b9091565b6103b0565b6103ac565b34611c8f57611c79611c73366004611c1c565b91614b96565b611c816103a2565b80611c8b81610449565b0390f35b6103a8565b91606083830312611cde57611cab825f85016103d3565b92611cb9836020830161040d565b92604082013560018060401b038111611cd957611cd69201611746565b90565b6103b0565b6103ac565b90611ced90610746565b5f5260205260405f2090565b90611d0390610ff6565b5f5260205260405f2090565b905090565b611d39611d3092602092611d27816109c9565b94858093611d0f565b938491016109d6565b0190565b90565b611d4c611d5191610552565b611d3d565b9052565b611d65611d6c9160209493611d14565b8092611d40565b0190565b611d84611d7b6103a2565b92839283611d55565b03902090565b611d9391611d70565b90565b611da6906008611dab9302610c6a565b61091f565b90565b90611db99154611d96565b90565b90611de492611dda611ddf92611dd56009955f96611ce3565b611cf9565b611d8a565b611dae565b90565b34611e1857611e14611e03611dfd366004611c94565b91611dbc565b611e0b6103a2565b91829182610562565b0390f35b6103a8565b909182601f83011215611e555781359160018060401b038311611e50576020019260018302840111611e4b57565b6105b5565b6105b1565b6105ad565b91606083830312611ea557611e71825f85016103d3565b92611e7f836020830161040d565b92604082013560018060401b038111611ea057611e9c9201611e1d565b9091565b6103b0565b6103ac565b34611edc57611ec6611ebd366004611e5a565b92919091614df9565b611ece6103a2565b80611ed881610449565b0390f35b6103a8565b611eea816104c0565b03611ef157565b5f80fd5b90503590611f0282611ee1565b565b91909160a081840312611f6e57611f1d835f83016103d3565b92602082013560018060401b038111611f695781611f3c918401611e1d565b929093611f66611f4f8460408501610707565b93611f5d8160608601610707565b93608001611ef5565b90565b6103b0565b6103ac565b34611fa857611f92611f86366004611f04565b949390939291926150c7565b611f9a6103a2565b80611fa481610449565b0390f35b6103a8565b34611fdb57611fc5611fc0366004610482565b615477565b611fcd6103a2565b80611fd781610449565b0390f35b6103a8565b909160608284031261201557612012611ffb845f85016103d3565b9361200981602086016103d3565b93604001610ab0565b90565b6103ac565b346120495761203361202d366004611fe0565b916156ec565b61203b6103a2565b8061204581610449565b0390f35b6103a8565b3461207d5761206761206136600461041c565b906158ab565b61206f6103a2565b8061207981610449565b0390f35b6103a8565b5190565b60209181520190565b60200190565b906120e3906060806120b4608084015f8701518582035f870152610d9a565b946120c760208201516020860190610dcb565b6120d960408201516040860190610dcb565b01519101906104c5565b90565b906120f091612095565b90565b60200190565b9061210d61210683612082565b8092612086565b908161211e6020830284019461208f565b925f915b83831061213157505050505090565b9091929394602061215361214d838560019503875289516120e6565b976120f3565b9301930191939290612122565b6121759160208201915f8184039101526120f9565b90565b346121a8576121a461219361218e366004610482565b615c20565b61219b6103a2565b91829182612160565b0390f35b6103a8565b346121db576121c56121c0366004610482565b615db0565b6121cd6103a2565b806121d781610449565b0390f35b6103a8565b6121ec600a5f90610c91565b90565b3461221f576121ff366004610bcc565b61221b61220a6121e0565b6122126103a2565b91829182610cbb565b0390f35b6103a8565b346122585761225461224361223a366004611e5a565b92919091615e1d565b61224b6103a2565b91829182610562565b0390f35b6103a8565b9061226790610746565b5f5260205260405f2090565b61227f61228491611071565b610943565b90565b6122919054612273565b90565b61229f90600261225d565b6122aa5f8201611037565b916122c15f6122ba818501611064565b9301612287565b90565b6040906122ed6122f494969593966122e360608401985f850190610c13565b6020830190611117565b0190610a12565b565b346123295761232561231161230c366004610482565b612294565b61231c9391936103a2565b938493846122c4565b0390f35b6103a8565b3461235e5761233e366004610bcc565b61235a612349615e52565b6123516103a2565b91829182610cbb565b0390f35b6103a8565b346123925761237c61237636600461041c565b90615f3c565b6123846103a2565b8061238e81610449565b0390f35b6103a8565b346123c8576123c46123b36123ad36600461041c565b906160d1565b6123bb6103a2565b91829182611368565b0390f35b6103a8565b346123fb576123e56123e03660046106a2565b6161d0565b6123ed6103a2565b806123f781610449565b0390f35b6103a8565b9190604083820312612428578061241c612425925f86016103d3565b93602001611ef5565b90565b6103ac565b3461245c57612446612440366004612400565b906161db565b61244e6103a2565b8061245881610449565b0390f35b6103a8565b7f32721f8dc67e953c540da90f663059c23fc47f70d11e317ed6d5a24c8b85637490565b61248d612461565b90565b346124c0576124a0366004610bcc565b6124bc6124ab612485565b6124b36103a2565b91829182610f01565b0390f35b6103a8565b346124f4576124de6124d836600461041c565b906162a4565b6124e66103a2565b806124f081610449565b0390f35b6103a8565b5f80fd5b5f7f4f6e6c792054616e676c6520636f726500000000000000000000000000000000910152565b61253160106020926109cd565b61253a816124fd565b0190565b6125539060208101905f818303910152612524565b90565b1561255d57565b6125656103a2565b62461bcd60e51b81528061257b6004820161253e565b0390fd5b61258b6125909161091a565b610c6e565b90565b61259d905461257f565b90565b90565b6125b76125b26125bc926125a0565b610743565b6103e2565b90565b6125c8906125a3565b90565b5f7f416c726561647920726567697374657265640000000000000000000000000000910152565b6125ff60126020926109cd565b612608816125cb565b0190565b6126219060208101905f8183039101526125f2565b90565b1561262b57565b6126336103a2565b62461bcd60e51b8152806126496004820161260c565b0390fd5b5f1b90565b9061266360018060a01b039161264d565b9181191691161790565b90565b9061268561268061268c92610ff6565b61266d565b8254612652565b9055565b612712612717926126d3336126cd6126c77f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b61270a6126ea6126e5600786906113b3565b612593565b6127046126fe6126f95f6125bf565b6103ed565b916103ed565b14612624565b9160076113b3565b612670565b565b61272360606116a8565b90565b5f90565b5f90565b5f90565b61273a612719565b906020808084612748612726565b81520161275361272a565b81520161275e61272e565b81525050565b61276c612732565b90565b6127819061277b612764565b506163cc565b90565b5f90565b6127a96127af926127a45f9361279c612784565b506003610fb8565b611002565b01610936565b90565b5f7f4e6f742073657276696365206f776e6572000000000000000000000000000000910152565b6127e660116020926109cd565b6127ef816127b2565b0190565b6128089060208101905f8183039101526127d9565b90565b1561281257565b61281a6103a2565b62461bcd60e51b815280612830600482016127f3565b0390fd5b5090565b5f7f546f6f206d616e7920646566696e6974696f6e73000000000000000000000000910152565b61286c60146020926109cd565b61287581612838565b0190565b61288e9060208101905f81830391015261285f565b90565b1561289857565b6128a06103a2565b62461bcd60e51b8152806128b660048201612879565b0390fd5b634e487b7160e01b5f52601160045260245ffd5b6128dd6128e391939293610552565b92610552565b916128ef838202610552565b9281840414901517156128fe57565b6128ba565b61290e9060046128ce565b90565b90612924905f1990602003600802610c6a565b8154169055565b1b90565b9190600861294a9102916129445f198461292b565b9261292b565b9181191691161790565b61296861296361296d92610552565b610743565b610552565b90565b90565b919061298961298461299193612954565b612970565b90835461292f565b9055565b6129a7916129a1612784565b91612973565b565b5b8181106129b5575050565b806129c25f600193612995565b016129aa565b906129d8905f1990600802610c6a565b191690565b816129e7916129c8565b906002021790565b905f91612a066129fe82610811565b9283546129dd565b905555565b601f602091010490565b919290602082105f14612a6e57601f8411600114612a3e57612a389293506129dd565b90555b5b565b5090612a64612a69936001612a5b612a5585610811565b92612a0b565b820191016129a9565b6129ef565b612a3b565b50612aa58293612a7f600194610811565b612a9e612a8b85612a0b565b820192601f861680612ab0575b50612a0b565b01906129a9565b600202179055612a3c565b612abc90888603612911565b5f612a98565b929091600160401b8211612b1d576020115f14612b0e57602081105f14612af257612aec916129dd565b90555b5b565b60019160ff1916612b0284610811565b55600202019055612aef565b60019150600202019055612af0565b6108bd565b908154612b2e816107de565b90818311612b57575b818310612b45575b50505050565b612b4e93612a15565b5f808080612b3f565b612b6383838387612ac2565b612b37565b5f612b7291612b22565b565b634e487b7160e01b5f525f60045260245ffd5b905f03612b9957612b9790612b68565b565b612b74565b60035f91612bae83808301612b87565b612bbb8360018301612995565b612bc88360028301612995565b0155565b905f03612bde57612bdc90612b9e565b565b612b74565b5b818110612bef575050565b80612bfc5f600493612bcc565b01612be4565b9091828110612c11575b505050565b612c2f612c29612c23612c3a95612903565b92612903565b92610790565b918201910190612be3565b5f8080612c0c565b90600160401b8111612c665781612c5b612c649361078c565b90828155612c02565b565b6108bd565b5f612c7591612c42565b565b905f03612c8957612c8790612c6b565b565b612b74565b612ca2612c9d612ca7926125a0565b610743565b610552565b90565b6001612cb69101610552565b90565b5f80fd5b5f80fd5b5f80fd5b903590600160800381360303821215612cdc570190565b612cb9565b90821015612cfb576020612cf89202810190612cc5565b90565b610778565b903590600160200381360303821215612d40570180359060018060401b038211612d3b57602001916001820236038313612d3657565b612cc1565b612cbd565b612cb9565b91565b5090565b5f7f4e616d6520746f6f206c6f6e6700000000000000000000000000000000000000910152565b612d80600d6020926109cd565b612d8981612d4c565b0190565b612da29060208101905f818303910152612d73565b90565b15612dac57565b612db46103a2565b62461bcd60e51b815280612dca60048201612d8d565b0390fd5b35612dd8816106f3565b90565b5f7f496e76616c696420626f756e6473000000000000000000000000000000000000910152565b612e0f600e6020926109cd565b612e1881612ddb565b0190565b612e319060208101905f818303910152612e02565b90565b15612e3b57565b612e436103a2565b62461bcd60e51b815280612e5960048201612e1c565b0390fd5b90565b5f5260205f2090565b5490565b612e7681612e69565b821015612e9057612e88600491612e60565b910201905f90565b610778565b5090565b9190601f8111612ea9575b505050565b612eb5612eda93610811565b906020612ec184612a0b565b83019310612ee2575b612ed390612a0b565b01906129a9565b5f8080612ea4565b9150612ed381929050612eca565b91612efb9082612e95565b9060018060401b038211612fb857612f1d82612f1785546107de565b85612e99565b5f90601f8311600114612f5057918091612f3f935f92612f44575b50506129dd565b90555b565b90915001355f80612f38565b601f19831691612f5f85610811565b925f5b818110612fa057509160029391856001969410612f86575b50505002019055612f42565b612f96910135601f8416906129c8565b90555f8080612f7a565b91936020600181928787013581550195019201612f62565b6108bd565b90612fc89291612ef0565b565b90612fd65f199161264d565b9181191691161790565b90612ff5612ff0612ffc92612954565b612970565b8254612fca565b9055565b3561300a81611ee1565b90565b9061301960ff9161264d565b9181191691161790565b61302c906104c0565b90565b90565b9061304761304261304e92613023565b61302f565b825461300d565b9055565b906130b0606060036130b6946130765f82016130705f880188612d00565b91612fbd565b61308f6001820161308960208801612dce565b90612fe0565b6130a8600282016130a260408801612dce565b90612fe0565b019201613000565b90613032565b565b91906130c9576130c791613052565b565b612b74565b90815491600160401b8310156130f957826130f19160016130f795018155612e6d565b906130b8565b565b6108bd565b929190926131313361312b61312561312061311b600787906113b3565b612593565b6103ed565b916103ed565b1461280b565b61315f61313f858490612834565b61315861315261314d611559565b610552565b91610552565b1115612891565b6131745f61316f60088490610762565b612c77565b61317d5f612c8e565b5b8061319b613195613190888790612834565b610552565b91610552565b101561326e57613269906131f26131d26131cc6131c66131bd8a898791612ce1565b5f810190612d00565b90612d45565b90612d48565b6131eb6131e56131e0611903565b610552565b91610552565b1115612da5565b61323b61320c604061320689888691612ce1565b01612dce565b61323461322e61322960206132238c8b8991612ce1565b01612dce565b610552565b91610552565b1015612e34565b61326461325261324d60088690610762565b612e5d565b61325e88878591612ce1565b906130ce565b612caa565b61317e565b5050509050565b5f7f5a65726f20616464726573730000000000000000000000000000000000000000910152565b6132a9600c6020926109cd565b6132b281613275565b0190565b6132cb9060208101905f81830391015261329c565b90565b156132d557565b6132dd6103a2565b62461bcd60e51b8152806132f3600482016132b6565b0390fd5b9061330190610746565b5f5260205260405f2090565b90565b61331990610ef1565b90565b6133259061091a565b90565b919061333e61333961334693613310565b61331c565b90835461292f565b9055565b5f90565b6133609161335a61334a565b91613328565b565b5f60026133819261337583808301612995565b8260018201550161334e565b565b905f036133955761339390613362565b565b612b74565b60481b90565b906133af60ff60481b9161339a565b9181191691161790565b6133c290611147565b90565b90565b906133dd6133d86133e4926133b9565b6133c5565b82546133a0565b9055565b6134243361341e6134187f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6134498261344261343c6134375f6125bf565b6103ed565b916103ed565b14156132ce565b61346f61346a61346361345e600685906132f7565b61330d565b84906164aa565b612624565b61348e5f61348961348260038590610fb8565b8590611002565b613383565b6134b1600260016134ab6134a460038690610fb8565b8690611002565b016133c8565b906134e56134df7f8e2d88795a3c66719a287658cbf68b3eb2b8e183cb18f46f4813913fc8aafc4b93610746565b91610ff6565b916134ee6103a2565b806134f881610449565b0390a3565b61350e906135096164e4565b613510565b565b61351b90600b612670565b565b613526906134fd565b565b5f7f4e6f742072656769737465726564206f70657261746f72000000000000000000910152565b61355c60176020926109cd565b61356581613528565b0190565b61357e9060208101905f81830391015261354f565b90565b1561358857565b6135906103a2565b62461bcd60e51b8152806135a660048201613569565b0390fd5b906135df979695949392916135da6135d56135ce6135c98460066132f7565b61330d565b3390616532565b613581565b61381e565b565b6135f56135f06135fa926103b4565b610743565b610552565b90565b61361161360c61361692610552565b610743565b6103b4565b90565b91602061363a92949361363360408201965f830190610c13565b0190610c13565b565b61364b61365191939293610552565b92610552565b820391821161365c57565b6128ba565b60018060401b03811161367d576136796020916108b3565b0190565b6108bd565b9092919261369761369282613661565b6116a8565b938185526020850190828401116136b3576136b192611705565b565b6116e0565b6136c3913691613682565b90565b60200190565b5190565b949290979695939160e08601985f87016136e991610ef4565b602086016136f691610cae565b6040850161370391610c13565b6060840161371091610c13565b6080830161371d91611117565b60a0820161372a91610ef4565b60c00161373691610c13565b565b5f61190160f01b910152565b61375060028092611d0f565b61375981613738565b0190565b90565b61376c61377191610ef1565b61375d565b9052565b602080939261379061378961379894613744565b8092613760565b018092613760565b0190565b5f7f496e76616c6964207369676e6174757265000000000000000000000000000000910152565b6137d060116020926109cd565b6137d98161379c565b0190565b6137f29060208101905f8183039101526137c3565b90565b156137fc57565b6138046103a2565b62461bcd60e51b81528061381a600482016137dd565b0390fd5b9192939497969095978061383a61383442610552565b916135e1565b116139a2576138524261384c836135e1565b9061363c565b61386b613865613860610d05565b6135e1565b91610552565b1161397a57613978979861394f61396d93856138d98a6138ca8d613955988d8d6138a1613896612461565b9633999592936136b8565b6138b36138ad826136cc565b916136c6565b2092936138be6103a2565b988997602089016136d0565b602082018103825203826108d1565b6138eb6138e5826136cc565b916136c6565b206139367f000000000000000000000000000000000000000000000000000000000000000061392761391b6103a2565b93849260208401613775565b602082018103825203826108d1565b613948613942826136cc565b916136c6565b20926136b8565b9061656c565b613967613961336103ed565b916103ed565b146137f5565b9333919293946166e9565b565b613983426135fd565b9061399e5f9283926318355b7560e21b845260048401613619565b0390fd5b6139ab426135fd565b906139c65f9283926357ea02e960e01b845260048401613619565b0390fd5b906139da979695949392916135aa565b565b606090565b90602082820312613a0f575f82013560018060401b038111613a0a57613a07920161182d565b90565b6103b0565b6103ac565b90613a2b91613a216139dc565b50908101906139e1565b90565b613a4d613a48613a5292613a40612784565b5060056132f7565b61330d565b616afb565b90565b606090565b60018060401b038111613a705760208091020190565b6108bd565b90613a87613a8283613a5a565b6116a8565b918252565b369037565b90613ab6613a9e83613a75565b92602080613aac8693613a5a565b9201910390613a8c565b565b90613ac282611228565b811015613ad3576020809102010190565b610778565b90613ae2906103ed565b9052565b90613aef613a55565b50613b0c613b07613b02600485906132f7565b61330d565b616afb565b91613b1683613a91565b91613b205f612c8e565b5b80613b34613b2e87610552565b91610552565b1015613b7b57613b7690613b71613b5f613b58613b53600488906132f7565b61330d565b8390616b4a565b613b6c8791849092613ab8565b613ad8565b612caa565b613b21565b5092505090565b5f90565b90613b8f613b82565b50613bb16001613bab613ba460038690610fb8565b8490611002565b01611091565b613bc3613bbd5f611147565b91611147565b14918215613bd1575b505090565b613bf29250600191613be7613bec926003610fb8565b611002565b01611091565b613c05613bff6001611147565b91611147565b145f80613bcc565b613c3390613c19613a55565b505f90613c2d613c2761131b565b92612c8e565b90614979565b5090565b90613c6994939291613c64613c5f613c58613c538460066132f7565b61330d565b3390616532565b613581565b613c6b565b565b91613c7d9492939133919293946166e9565b565b90613c8c94939291613c37565b565b90613cae613ca9613cb393613ca1613b82565b5060066132f7565b61330d565b616532565b90565b5f90565b613cdc613ce292613cd7600193613ccf613cb6565b506003610fb8565b611002565b01611091565b90565b613cee90610fea565b90565b5f7f496e7465726e616c206f6e6c7900000000000000000000000000000000000000910152565b613d25600d6020926109cd565b613d2e81613cf1565b0190565b613d479060208101905f818303910152613d18565b90565b15613d5157565b613d596103a2565b62461bcd60e51b815280613d6f60048201613d32565b0390fd5b60018060401b038111613d895760208091020190565b6108bd565b90613da0613d9b83613d73565b6116a8565b918252565b369037565b90613dcf613db783613d8e565b92602080613dc58693613d73565b9201910390613da5565b565b90613ddb82610d87565b811015613dec576020809102010190565b610778565b90565b5190565b90613e0282613df4565b811015613e13576020809102010190565b610778565b90613e2290610ef1565b9052565b606090565b90565b60209181520190565b905f9291805490613e51613e4a836107de565b8094613e2e565b916001811690815f14613ea85750600114613e6c575b505050565b613e799192939450610799565b915f925b818410613e9057505001905f8080613e67565b60018160209295939554848601520191019290613e7d565b92949550505060ff19168252151560200201905f8080613e67565b90613ecd91613e37565b90565b90613ef0613ee992613ee06103a2565b93848092613ec3565b03836108d1565b565b613efb90613ed0565b90565b613f089051610ef1565b90565b613f159051610552565b90565b5f7f56616c7565206f7574206f6620626f756e647300000000000000000000000000910152565b613f4c60136020926109cd565b613f5581613f18565b0190565b613f71613f7f9260408301908382035f8501526109e1565b906020818303910152613f3f565b90565b92916020613f9e613fa69360408701908782035f8901526109e1565b940190610555565b565b905f9291805490613fc2613fbb836107de565b80946109cd565b916001811690815f146140195750600114613fdd575b505050565b613fea9192939450610811565b915f925b81841061400157505001905f8080613fd8565b60018160209295939554848601520191019290613fee565b92949550505060ff19168252151560200201905f8080613fd8565b5f7f5265717569726564206d6574726963206d697373696e67000000000000000000910152565b61406860176020926109cd565b61407181614034565b0190565b61408d61409b9260408301908382035f850152613fa8565b90602081830391015261405b565b90565b929390936140c6336140c06140ba6140b530613ce5565b6103ed565b916103ed565b14613d4a565b6140da6140d560088690610762565b612e5d565b946140e482613daa565b946140ee5f612c8e565b5b806141026140fc86610552565b91610552565b1015614155576141509061414b6141265f61411e8a8590613dd1565b510151613df1565b614138614132826136cc565b916136c6565b206141468a91849092613df8565b613e18565b612caa565b6140ef565b50919490929561416481612e69565b6141766141705f612c8e565b91610552565b1196614180613e26565b9088614600575b6141905f612c8e565b5b806141a461419e8b610552565b91610552565b10156144635760015f8b614297575b50908887896141c9946141ce575b505050612caa565b614191565b825f61420c614204614215946141ff6141f760206141f061421a9b8d90613dd1565b5101613f0b565b976009611ce3565b611cf9565b928790613dd1565b51015190611d8a565b612fe0565b88878990614244602061423d5f614232878990613dd1565b510151958790613dd1565b5101613f0b565b6142776142717f23ed02bd3605bdea6a8afa76c46f00d274860ba6cea980f2585b696df9e182bd93610746565b93610ff6565b9361428c6142836103a2565b92839283613f82565b0390a38887896141c1565b9a90959291996142a65f612c8e565b5b806142c26142bc6142b78a612e69565b610552565b91610552565b101561444d576142da6142d58d87613df8565b613efe565b6142fe6142f86142f36142ee8a8690613df8565b613efe565b610ef1565b91610ef1565b146143115761430c90612caa565b6142a7565b8a919b929c50896141c99495988a926001908a61433b6020614334898b90613dd1565b5101613f0b565b61436361435d6143586001614351868890612e6d565b5001610936565b610552565b91610552565b109188888415614403575b50505050614398575b614382905b156104c0565b614391575b93945050506141b3565b505f614387565b905082825f6143a8878990613dd1565b510151916143f46143e26143dc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936143eb6103a2565b91829182613f59565b0390a36143825f919050614377565b61444393945061443161443d9361442b602061442461443896600296613dd1565b5101613f0b565b96612e6d565b5001610936565b610552565b91610552565b118a5f888861436e565b5099909a87896141c99495986143828d9461437c565b5097505092935093506144755f612c8e565b935b8461449261448c61448786612e69565b610552565b91610552565b10156145f9576144b86144b260036144ab868990612e6d565b500161095d565b156104c0565b6145ee576144da6144d55f6144ce868990612e6d565b5001613e2b565b613ef2565b6144ec6144e6826136cc565b916136c6565b20905f966144f95f612c8e565b5b8061451561450f61450a86613df4565b610552565b91610552565b10156145dc5761452e614529848390613df8565b613efe565b61454061453a86610ef1565b91610ef1565b146145535761454e90612caa565b6144fa565b5095909650614574915061456960015b156104c0565b61457b575b5b612caa565b9394614477565b82855f614589878590612e6d565b5001916145d46145c26145bc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936145cb6103a2565b91829182614075565b0390a361456e565b50959096614574925061456990614563565b94936145749061456f565b5050505050565b9693905061461a614615839794999693612e69565b613daa565b976146245f612c8e565b5b8061464061463a6146358b612e69565b610552565b91610552565b101561469a576146959061469061466b6146665f61465f8d8690612e6d565b5001613e2b565b613ef2565b61467d614677826136cc565b916136c6565b2061468b8d91849092613df8565b613e18565b612caa565b614625565b509295919497909396614187565b6146b06164e4565b6146b86146ba565b565b6146cb6146c65f6125bf565b616be2565b565b6146d56146a8565b565b6146e160a06116a8565b90565b5f90565b5f90565b5f90565b6146f86146d7565b90602080808080866147086146e4565b815201614713612726565b81520161471e61272a565b8152016147296146e8565b8152016147346146ec565b81525050565b6147426146f0565b90565b9061474f90610552565b9052565b9061475d906103b4565b9052565b9061476b906104ad565b9052565b9061477990611147565b9052565b906147fc6147f3600261478e6146d7565b946147a561479d5f8301610936565b5f8801614745565b6147bd6147b460018301611037565b60208801614753565b6147d56147cc60018301611064565b60408801614761565b6147ed6147e460018301611091565b6060880161476f565b016110b5565b60808401613e18565b565b6148079061477d565b90565b61482f9161482561482a9261481d61473a565b506003610fb8565b611002565b6147fe565b90565b5f90565b9061484090610746565b5f5260205260405f2090565b9061485690610ff6565b5f5260205260405f2090565b6148879161487d61488292614875614832565b50600c614836565b61484c565b611037565b90565b614892616bf8565b61489a615e52565b6148ac6148a6836103ed565b916103ed565b036148bc576148ba90616be2565b565b6148d7905f91829163118cdaa760e01b835260048301610cbb565b0390fd5b6148fa6148f56148ff926148ed612784565b5060046132f7565b61330d565b616afb565b90565b61490c90516104ad565b90565b61492361491e614928926125a0565b610743565b6104ad565b90565b61493590516103b4565b90565b61494c614947614951926104ad565b610743565b610552565b90565b61496361496991939293610552565b92610552565b820180921161497457565b6128ba565b90929192614985613a55565b5061498e612784565b50614998826163cc565b936149b56149b06149ab600586906132f7565b61330d565b616afb565b926149c260208701614902565b6149d46149ce5f61490f565b916104ad565b148015614ac6575b8015614aab575b614a9157614a1d86614a17614a126020614a0b614a065f614a7a9b9c9d0161492b565b6135e1565b9301614902565b614938565b906128ce565b9180614a38614a32614a2d61131b565b610552565b91610552565b115f14614a8c5750614a4861131b565b5b614a54848290614954565b614a66614a6088610552565b91610552565b115f14614a7d5750845b9092909192616c2e565b91565b614a879084614954565b614a70565b614a49565b5050509150614aa7614aa25f612c8e565b613a91565b9190565b5082614abf614ab986610552565b91610552565b10156149e3565b5083614ada614ad45f612c8e565b91610552565b146149dc565b614af190614aec6164e4565b614af3565b565b614afe90600a612670565b565b614b0990614ae0565b565b5f90565b614b17614b0b565b50614b215f612593565b90565b5090565b9190811015614b38576020020190565b610778565b35614b47816103f9565b90565b5f80fd5b60e01b90565b5f910312614b5e57565b6103ac565b916020614b84929493614b7d60408201965f830190610c13565b0190610cae565b565b614b8e6103a2565b3d5f823e3d90fd5b90929192614ba35f612c8e565b5b80614bc1614bbb614bb6858990614b24565b610552565b91610552565b1015614c7057614bd030613ce5565b9063ba1fb10384614beb614be6868a8691614b28565b614b3d565b93803b15614c6b57614c105f8094614c1b614c046103a2565b98899687958694614b4e565b845260048401614b63565b03925af1918215614c6657614c3592614c3a575b50612caa565b614ba4565b614c59905f3d8111614c5f575b614c5181836108d1565b810190614b54565b5f614c2f565b503d614c47565b614b86565b614b4a565b5050509050565b5f7f4e6f7420736c617368696e67206f7261636c6500000000000000000000000000910152565b614cab60136020926109cd565b614cb481614c77565b0190565b614ccd9060208101905f818303910152614c9e565b90565b15614cd757565b614cdf6103a2565b62461bcd60e51b815280614cf560048201614cb8565b0390fd5b5f7f4f70657261746f7220756e6b6e6f776e00000000000000000000000000000000910152565b614d2d60106020926109cd565b614d3681614cf9565b0190565b614d4f9060208101905f818303910152614d20565b90565b15614d5957565b614d616103a2565b62461bcd60e51b815280614d7760048201614d3a565b0390fd5b90565b90614d8f60018060401b039161264d565b9181191691161790565b90565b90614db1614dac614db892610746565b614d99565b8254614d7e565b9055565b9190614dd681614dcf81614ddb956109cd565b8095611705565b6108b3565b0190565b9091614df69260208301925f818503910152614dbc565b90565b614e1e33614e18614e12614e0d600a612593565b6103ed565b916103ed565b14614cd0565b614e44614e3f614e38614e33600585906132f7565b61330d565b8490616532565b614d52565b614e70614e65614e60614e5960038590610fb8565b8590611002565b614d7b565b6001600391016133c8565b614e8e614e87614e82600484906132f7565b61330d565b8390616d4a565b50614eb6614e9b426135fd565b614eb1614eaa600c8590614836565b859061484c565b614d9c565b909192614eec614ee67f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b93610ff6565b93614f01614ef86103a2565b92839283614ddf565b0390a3565b614f1060806116a8565b90565b614f1e913691611710565b90565b52565b90614f2e906104c0565b9052565b5190565b90614f40816109c9565b9060018060401b038211614ffe57614f6282614f5c85546107de565b85612e99565b602090601f8311600114614f9657918091614f85935f92614f8a575b50506129dd565b90555b565b90915001515f80614f7e565b601f19831691614fa585610811565b925f5b818110614fe657509160029391856001969410614fcc575b50505002019055614f88565b614fdc910151601f8416906129c8565b90555f8080614fc0565b91936020600181928787015181550195019201614fa8565b6108bd565b9061500d91614f36565b565b61501990516104c0565b90565b906150796060600361507f9461503f5f82016150395f8801614f32565b90615003565b6150586001820161505260208801613f0b565b90612fe0565b6150716002820161506b60408801613f0b565b90612fe0565b01920161500f565b90613032565b565b9190615092576150909161501c565b565b612b74565b90815491600160401b8310156150c257826150ba9160016150c095018155612e6d565b90615081565b565b6108bd565b6151e5956151ce84966151c56151bd6151a96151a46151d79761514a61512a6151246151e09d8d9f9d61511f3361511961511361510e61510960078c906113b3565b612593565b6103ed565b916103ed565b1461280b565b612d45565b90612d48565b61514361513d615138611903565b610552565b91610552565b1115612da5565b6151678661516061515a8d610552565b91610552565b1015612e34565b61519d61517e61517960088490610762565b61078c565b61519761519161518c611559565b610552565b91610552565b10612891565b6008610762565b612e5d565b9899969294966151b7614f06565b9a614f13565b5f8a01614f21565b60208801614745565b60408601614745565b60608401614f24565b615097565b565b6152159061521061520b6152046151ff8460066132f7565b61330d565b3390616532565b613581565b6152f1565b565b5f7f43616e6e6f7420676f206f6e6c696e65207768696c6520736c61736865640000910152565b61524b601e6020926109cd565b61525481615217565b0190565b61526d9060208101905f81830391015261523e565b90565b60401b90565b9061528560ff60401b91615270565b9181191691161790565b6152a361529e6152a8926104ad565b610743565b6104ad565b90565b90565b906152c36152be6152ca9261528f565b6152ab565b8254615276565b9055565b9160206152ef9294936152e860408201965f83019061115f565b019061115f565b565b61530f61530a61530360038490610fb8565b3390611002565b614d7b565b9061531c60018301611091565b918261533161532b6003611147565b91611147565b1461545557826153496153435f611147565b91611147565b14801561543a575b615435576153789061536660018083016133c8565b60016153715f61490f565b91016152ae565b61539661538f61538a600484906132f7565b61330d565b33906164aa565b5080336153cc6153c67fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b916153d56103a2565b806153df81610449565b0390a390339091600161541b6154157f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936154306154276103a2565b928392836152ce565b0390a3565b505050565b508261544f6154496001611147565b91611147565b14615351565b61545d6103a2565b62461bcd60e51b81528061547360048201615258565b0390fd5b615480906151e7565b565b5f7f4e6f7420617574686f72697a6564000000000000000000000000000000000000910152565b6154b6600e6020926109cd565b6154bf81615482565b0190565b6154d89060208101905f8183039101526154a9565b90565b156154e257565b6154ea6103a2565b62461bcd60e51b815280615500600482016154c3565b0390fd5b90565b61551b61551661552092615504565b610743565b6103b4565b90565b5f7f496e74657276616c20746f6f2073686f72740000000000000000000000000000910152565b61555760126020926109cd565b61556081615523565b0190565b6155799060208101905f81830391015261554a565b90565b1561558357565b61558b6103a2565b62461bcd60e51b8152806155a160048201615564565b0390fd5b90565b6155bc6155b76155c1926155a5565b610743565b6104ad565b90565b5f7f4d6178206d6973736564206d757374206265203e3d2031000000000000000000910152565b6155f860176020926109cd565b615601816155c4565b0190565b61561a9060208101905f8183039101526155eb565b90565b1561562457565b61562c6103a2565b62461bcd60e51b81528061564260048201615605565b0390fd5b61565060606116a8565b90565b9061566861566361566f92613023565b61302f565b82546133a0565b9055565b906156b560405f6156bb9461569582820161568f84880161492b565b90614d9c565b6156ad8282016156a760208801614902565b906152ae565b01920161500f565b90615653565b565b906156c791615673565b565b9160206156ea9294936156e360408201965f830190610c13565b0190611117565b565b3361571f6157197f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14801561580b575b615730906154db565b61574e82615747615741603c615507565b916103b4565b101561557c565b61576c8361576561575f60016155a8565b916104ad565b101561561d565b6157c5826157b4856157ab61578d5f6157876002899061225d565b01612287565b916157a2615799615646565b955f8701614753565b60208501614761565b60408301614f24565b6157c06002849061225d565b6156bd565b90916157f17fc9599ed962624a858ec59bae0ed86c75f4db65fe04570021277edbedd04ea56492610746565b926158066157fd6103a2565b928392836156c9565b0390a2565b506157303361583561582f61582a615825600787906113b3565b612593565b6103ed565b916103ed565b149050615727565b634e487b7160e01b5f52601260045260245ffd5b61585d61586391610552565b91610552565b90811561586e570490565b61583d565b61588761588261588c92610552565b610743565b6104ad565b90565b6158a361589e6158a8926125a0565b610743565b6103b4565b90565b6158c96158c46158bd60038490610fb8565b8490611002565b614d7b565b906158d3816163cc565b6158df60018401611091565b6158f26158ec6003611147565b91611147565b14615b06576159025f8401610936565b61591461590e5f612c8e565b91610552565b14615b005761594a6159314261592b5f8701610936565b9061363c565b61594461593f5f850161492b565b6135e1565b90615851565b8061595e61595860ff614938565b91610552565b115f14615af2575060ff5b908161598861598261597d60018801611064565b6104ad565b916104ad565b11615995575b5050505050565b6159a282600186016152ae565b6159b76159ae5f61588f565b60018601614d9c565b6159d56159cf6159ca6020859401614902565b6104ad565b916104ad565b101580615acb575b6159e8575b8061598e565b615a036159f760018501611091565b936001600291016133c8565b615a21615a1a615a15600485906132f7565b61330d565b8590616d4a565b508190849091615a6f615a5d615a577f44fd32b677704ce68e7763897c49733b8f5289018ac60a5c926802d63759db4d93610746565b93610ff6565b93615a666103a2565b91829182611613565b0390a39190916002615aaa615aa47f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615abf615ab66103a2565b928392836152ce565b0390a35f8080806159e2565b50615ad860018401611091565b615aeb615ae56002611147565b91611147565b14156159dd565b615afb90615873565b615969565b50505050565b50505050565b606090565b60018060401b038111615b275760208091020190565b6108bd565b90615b3e615b3983615b11565b6116a8565b918252565b615b4d60806116a8565b90565b90615bb7615bae6003615b61615b43565b94615b78615b705f83016108f8565b5f8801614f21565b615b90615b8760018301610936565b60208801614745565b615ba8615b9f60028301610936565b60408801614745565b0161095d565b60608401614f24565b565b615bc290615b50565b90565b90615bcf8261078c565b615bd881615b2c565b92615be66020850191610790565b5f915b838310615bf65750505050565b60046020600192615c0685615bb9565b815201920192019190615be9565b615c1d90615bc5565b90565b615c37615c3c91615c2f615b0c565b506008610762565b615c14565b90565b615c6d90615c68615c63615c5c615c578460066132f7565b61330d565b3390616532565b613581565b615cc8565b565b5f7f43616e6e6f7420676f206f66666c696e65207768696c6520736c617368656400910152565b615ca3601f6020926109cd565b615cac81615c6f565b0190565b615cc59060208101905f818303910152615c96565b90565b615ce6615ce1615cda60038490610fb8565b3390611002565b614d7b565b90615cf360018301611091565b9182615d08615d026003611147565b91611147565b14615d8e57615d1c906001600491016133c8565b615d3a615d33615d2e600484906132f7565b61330d565b3390616d4a565b50903390916004615d74615d6e7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615d89615d806103a2565b928392836152ce565b0390a3565b615d966103a2565b62461bcd60e51b815280615dac60048201615cb0565b0390fd5b615db990615c3f565b565b909182615dcb81615dd293611d0f565b8093611705565b0190565b615de79060209493615dee93615dbb565b8092611d40565b0190565b9091615e0990615e006103a2565b93849384615dd6565b03902090565b9091615e1a92615df2565b90565b92615e42615e4a9392615e3d615e4f96615e35612784565b506009611ce3565b611cf9565b919091615e0f565b610936565b90565b615e5a614b0b565b50615e656001612593565b90565b615e729051611147565b90565b90565b615e8c615e87615e9192615e75565b610743565b610552565b90565b60207f6c00000000000000000000000000000000000000000000000000000000000000917f4f70657261746f72206e6f7420656c696769626c6520666f722072656d6f76615f8201520152565b615eee60216040926109cd565b615ef781615e94565b0190565b615f109060208101905f818303910152615ee1565b90565b15615f1a57565b615f226103a2565b62461bcd60e51b815280615f3860048201615efb565b0390fd5b90615fed615fe8615ff29333615f6d615f67615f62615f5d600786906113b3565b612593565b6103ed565b916103ed565b1480156160ab575b615f7e906154db565b615f9c615f97615f9060038490610fb8565b8690611002565b6147fe565b615fa860608201615e68565b615fbb615fb56003611147565b91611147565b03615ff5575b50615fe0615fd9615fd4600584906132f7565b61330d565b8590616d4a565b5060046132f7565b61330d565b616d4a565b50565b61607190616045616035616008856163cc565b61602f61602a602061602361601e5f860161492b565b6135e1565b9301614902565b614938565b906128ce565b61603f600a615e78565b906128ce565b6160505f8301613f0b565b61606261605c5f612c8e565b91610552565b119182616077575b5050615f13565b5f615fc1565b6160a291925061609661609c916160905f429201613f0b565b9061363c565b92610552565b91610552565b10155f8061606a565b50615f7e336160c96160c36160be614b0f565b6103ed565b916103ed565b149050615f75565b906160fb616100916160e1613b82565b506160f66160ee856163cc565b946003610fb8565b611002565b6147fe565b61610b5f8201613f0b565b61611d6161175f612c8e565b91610552565b146161585761614e6161495f6161426161549461613c83429201613f0b565b9061363c565b940161492b565b6135e1565b91610552565b1090565b50505f90565b61616f9061616a6164e4565b616171565b565b61617c816001612670565b616184614b0f565b906161b86161b27f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270093610ff6565b91610ff6565b916161c16103a2565b806161cb81610449565b0390a3565b6161d99061615e565b565b5f61621a616220936162123361620c6162066162016161fc60078a906113b3565b612593565b6103ed565b916103ed565b1461280b565b92600261225d565b01615653565b565b5f7f4e6f742072656769737465726564000000000000000000000000000000000000910152565b616256600e6020926109cd565b61625f81616222565b0190565b6162789060208101905f818303910152616249565b90565b1561628257565b61628a6103a2565b62461bcd60e51b8152806162a060048201616263565b0390fd5b6162e0336162da6162d47f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6163066163016162fa6162f5600685906132f7565b61330d565b8490616d4a565b61627b565b61632461631d616318600484906132f7565b61330d565b8390616d4a565b50906163596163537f08bb93e5444209b15155078a13f6e341299d748d0c299f722c9cbc0723f0fe9e93610746565b91610ff6565b916163626103a2565b8061636c81610449565b0390a3565b906163be6163b55f616381612719565b94616398616390838301611037565b838801614753565b6163af6163a6838301611064565b60208801614761565b01612287565b60408401614f24565b565b6163c990616371565b90565b6163e36163e8916163db612764565b50600261225d565b6163c0565b6163f35f820161492b565b6164056163ff5f61588f565b916103b4565b1461644b575b61641760208201614902565b6164296164235f61490f565b916104ad565b14616432575b90565b61644661643d6115fb565b60208301614761565b61642f565b61645e616456610bfa565b5f8301614753565b61640b565b61646c90610fce565b90565b61648361647e616488926103e2565b610743565b610552565b90565b61649f61649a6164a492610552565b61264d565b610ef1565b90565b90565b906164dc6164d66164d16164cc5f6164e1966164c4613b82565b500194616463565b61646f565b61648b565b916164a7565b616e06565b90565b6164ec614b0f565b6165056164ff6164fa616bf8565b6103ed565b916103ed565b0361650c57565b61652e616517616bf8565b5f91829163118cdaa760e01b835260048301610cbb565b0390fd5b9061656461655e6165596165545f6165699661654c613b82565b500194616463565b61646f565b61648b565b916164a7565b616e69565b90565b61658b916165829161657c614b0b565b50616ec5565b90929192616f85565b90565b5f7f4f70657261746f7220697320736c617368656400000000000000000000000000910152565b6165c260136020926109cd565b6165cb8161658e565b0190565b6165e49060208101905f8183039101526165b5565b90565b156165ee57565b6165f66103a2565b62461bcd60e51b81528061660c600482016165cf565b0390fd5b9061662561662061662c92613310565b61331c565b8254612fca565b9055565b616639906103b4565b60018060401b03811461664c5760010190565b6128ba565b90565b61666861666361666d92616651565b610743565b6104ad565b90565b91602061669192949361668a60408201965f830190611117565b0190610555565b565b61669c90610fce565b90565b6166a890616693565b90565b6166b490610fea565b90565b6040906166e06166e794969593966166d660608401985f850190610cae565b6020830190610c13565b0190610c13565b565b949293919361670c61670761670060038990610fb8565b8790611002565b614d7b565b93616716876163cc565b9361674061672660018801611091565b6167396167336003611147565b91611147565b14156165e7565b61675e61675761675260058b906132f7565b61330d565b88906164aa565b50616833604061677060018901611091565b9661677d425f8b01612fe0565b6167a761678b8587906136b8565b61679d616797826136cc565b916136c6565b2060028b01616610565b6167bc6167b35f61490f565b60018b016152ae565b6167da60018a016167d46167cf82611037565b616630565b90614d9c565b6167e2613cb6565b50856167f66167f05f61490f565b916104ad565b145f14616ab75761680d5f995b60018b91016133c8565b8761682161681b6002611147565b91611147565b1480616a9b575b616a2d575b0161500f565b80616a09575b6169f3575b505085918591924261688261687c6168767f658918e3147f13dd068ec21437b4c25c21682a8dc2129348671ead000db3e7b994610746565b94610746565b94610ff6565b9461689761688e6103a2565b92839283616670565b0390a4806168ad6168a784611147565b91611147565b0361699d575b50506168bf600b612593565b6168d96168d36168ce5f6125bf565b6103ed565b916103ed565b036168e3575b5050565b6168fd6168f86168f3600b612593565b61669f565b6166ab565b9163d47853b691909261690f426135fd565b92813b15616998575f6169359161694082966169296103a2565b98899788968795614b4e565b8552600485016166b7565b03925af1908161696c575b50155f14616967576001616962575b5b5f806168df565b61695a565b61695b565b61698b905f3d8111616991575b61698381836108d1565b810190614b54565b5f61694b565b503d616979565b614b4a565b838391926169d46169ce7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936169e96169e06103a2565b928392836152ce565b0390a35f806168b3565b616a029188918890919261743a565b5f8061683e565b50616a15818390612d48565b616a27616a215f612c8e565b91610552565b11616839565b616a4a616a43616a3e8d60046132f7565b61330d565b8b906164aa565b508a8a616a80616a7a7fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b91616a896103a2565b80616a9381610449565b0390a361682d565b5088616ab0616aaa6002611147565b91611147565b1415616828565b85616acb616ac56064616654565b916104ad565b105f14616ade5761680d6001995b616803565b61680d600199616af68d8d8b908b908a928c946170f4565b616ad9565b616b125f616b1792616b0b612784565b50016164a7565b6175f8565b90565b616b26616b2b9161091a565b612954565b90565b616b42616b3d616b4792610552565b610743565b6103e2565b90565b616b75616b70616b7f93616b6b5f616b7a95616b64614b0b565b50016164a7565b617666565b616b1a565b616b2e565b610fea565b90565b91906008616ba2910291616b9c60018060a01b038461292b565b9261292b565b9181191691161790565b9190616bc2616bbd616bca93610ff6565b61266d565b908354616b82565b9055565b616be091616bda614b0b565b91616bac565b565b616bf690616bf15f6001616bce565b617687565b565b616c00614b0b565b503390565b616c0e90610552565b5f198114616c1c5760010190565b6128ba565b616c2b90516103ed565b90565b93919293616c3a613a55565b50616c4e616c4985849061363c565b613a91565b92616c585f612c8e565b925b80616c6d616c6788610552565b91610552565b1015616cdb57616c91616c8a616c85600586906132f7565b61330d565b8290616b4a565b616c9d84828a916176e6565b616cb1575b50616cac90612caa565b616c5a565b616cac9194616ccf616cd492616cca8991849092613ab8565b613ad8565b616c05565b9390616ca2565b509450509150616cea82613a91565b92616cf45f612c8e565b5b80616d08616d0286610552565b91610552565b1015616d4457616d3f90616d3a616d28616d23868490613ab8565b616c21565b616d358891849092613ab8565b613ad8565b612caa565b616cf5565b50915050565b90616d7c616d76616d71616d6c5f616d8196616d64613b82565b500194616463565b61646f565b61648b565b916164a7565b61781e565b90565b90565b5f5260205f2090565b5490565b616d9d81616d90565b821015616db757616daf600191616d87565b910201905f90565b610778565b90815491600160401b831015616de75782616ddf916001616de595018155616d94565b90613328565b565b6108bd565b5490565b90616dfa90613310565b5f5260205260405f2090565b616e0e613b82565b50616e23616e1d828490616e69565b156104c0565b5f14616e6357616e59616e5e92616e45616e3e5f8501616d84565b8290616dbc565b6001616e525f8501616dec565b9301616df0565b612fe0565b600190565b50505f90565b616e87916001616e8292616e7b613b82565b5001616df0565b610936565b616e99616e935f612c8e565b91610552565b141590565b5f90565b90565b616eb9616eb4616ebe92616ea2565b610743565b610552565b90565b5f90565b919091616ed0614b0b565b50616ed9616e9e565b50616ee261334a565b50616eec836136cc565b616eff616ef96041616ea5565b91610552565b145f14616f4657616f3f9192616f1361334a565b50616f1c61334a565b50616f25616ec1565b506020810151606060408301519201515f1a90919261799d565b9192909190565b50616f505f6125bf565b90616f64616f5f6002946136cc565b61648b565b91929190565b60041115616f7457565b611124565b90616f8382616f6a565b565b80616f98616f925f616f79565b91616f79565b145f14616fa3575050565b80616fb7616fb16001616f79565b91616f79565b145f14616fda575f63f645eedf60e01b815280616fd660048201610449565b0390fd5b80616fee616fe86002616f79565b91616f79565b145f1461701c5761701861700183616b1a565b5f91829163fce698f760e01b835260048301610562565b0390fd5b61702f6170296003616f79565b91616f79565b146170375750565b617052905f9182916335e2f38360e21b835260048301610f01565b0390fd5b61706a61706561706f926112fc565b610743565b6104ad565b90565b61707e617084916103b4565b916103b4565b90039060018060401b03821161709657565b6128ba565b5f7f50726f746f636f6c2076696f6c6174696f6e207265706f727465640000000000910152565b6170cf601b6020926109cd565b6170d88161709b565b0190565b6170f19060208101905f8183039101526170c2565b90565b935050925061710c61710660c8617056565b916104ad565b1015617117575b5050565b617120426135fd565b61713e617139617132600c8590614836565b859061484c565b611037565b8061715161714b5f61588f565b916103b4565b149081156171d7575b50617166575b50617113565b61718590617180617179600c8590614836565b859061484c565b614d9c565b906171b96171b37f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b91610ff6565b916171c26103a2565b806171cc816170dc565b0390a35f8080617160565b6171e2915082617072565b6171fb6171f56171f0610f6a565b6103b4565b916103b4565b10155f61715a565b90565b61721a61721561721f92617203565b610743565b610552565b90565b90929192617237617232826116e4565b6116a8565b9381855260208501908284011161725357617251926109d6565b565b6116e0565b9080601f830112156172765781602061727393519101617222565b90565b6105ad565b90505190617288826106f3565b565b9190916040818403126172db576172a160406116a8565b925f8201519160018060401b0383116172d6576172c3826172cf948301617258565b5f86015260200161727b565b6020830152565b6116dc565b6116d8565b9291906172f46172ef826116bd565b6116a8565b93818552602080860192028101918383116173495781905b83821061731a575050505050565b815160018060401b03811161734457602091617339878493870161728a565b81520191019061730c565b6105ad565b6105b5565b9080601f8301121561736c57816020617369935191016172e0565b90565b6105ad565b9060208282031261739f575f82015160018060401b03811161739a57617397920161734e565b90565b6103b0565b6103ac565b60209181520190565b91906173c7816173c0816173cc956173a4565b8095611705565b6108b3565b0190565b90916173e79260208301925f8185039101526173ad565b90565b6173f4603261153d565b90565b949391606091617438946174236174309361741960808b01945f8c0190610c13565b60208a0190610cae565b8782036040890152610e18565b940190610555565b565b91617446818590612d48565b6174586174525f612c8e565b91610552565b146175f257617468818590612d48565b61747c61747661c350617206565b91610552565b116175ec575f61748a6139dc565b9461749430613ce5565b6174b66331e3bd1b9492946174c16174aa6103a2565b96879586948594614b4e565b8452600484016173d0565b03915afa80915f926175c8575b50155f146175bf575060016175ba575b6174e783610d87565b6175006174fa6174f56173ea565b610552565b91610552565b115f146175ac5761750f6173ea565b5b61751930613ce5565b906365a6936e93929490823b156175a7575f9461755486926175499461753d6103a2565b998a9889978896614b4e565b8652600486016173f7565b03925af1908161757b575b50155f14617576576001617571575b5b565b61756e565b61756f565b61759a905f3d81116175a0575b61759281836108d1565b810190614b54565b5f61755f565b503d617588565b614b4a565b6175b583610d87565b617510565b505050565b909250916174de565b6175e59192503d805f833e6175dd81836108d1565b810190617371565b905f6174ce565b50505050565b50505050565b5f61760c91617605612784565b5001616dec565b90565b5f5260205f2090565b61762181616dec565b82101561763b5761763360019161760f565b910201905f90565b610778565b6176509060086176559302610c6a565b61109e565b90565b906176639154617640565b90565b617684915f61767e9261767761334a565b5001617618565b90617658565b90565b6176905f612593565b61769a825f612670565b906176ce6176c87f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610ff6565b91610ff6565b916176d76103a2565b806176e181610449565b0390a3565b6176ee613b82565b50617716617710617709617704600685906132f7565b61330d565b8490616532565b156104c0565b6177b8576177369161772c617731926003610fb8565b611002565b6147fe565b6177415f8201613f0b565b61775361774d5f612c8e565b91610552565b148015617792575b61778c5761778161777b617787926177755f429201613f0b565b9061363c565b92610552565b91610552565b101590565b50505f90565b5061779f60608201615e68565b6177b26177ac6003611147565b91611147565b1461775b565b5050505f90565b6177d36177ce6177d8926155a5565b610743565b610552565b90565b634e487b7160e01b5f52603160045260245ffd5b6177f881616d90565b80156178195760019003906178166178108383616d94565b9061334e565b55565b6177db565b617826613b82565b5061783d617838600183018490616df0565b610936565b908161785161784b5f612c8e565b91610552565b14155f1461791d576178cf9260016178ca92846178785f96617872856177bf565b9061363c565b617895617886888501616dec565b61788f866177bf565b9061363c565b816178a86178a283610552565b91610552565b036178d4575b5050506178c46178bf868301616d84565b6177ef565b01616df0565b612995565b600190565b617915926179076178f36178ed617910948c8901617618565b90617658565b9361790185918c8901617618565b90613328565b91858501616df0565b612fe0565b5f80806178ae565b5050505f90565b90565b61793b61793661794092617924565b610743565b610552565b90565b61797861797f9461796e606094989795617964608086019a5f870190610ef4565b6020850190611117565b6040830190610ef4565b0190610ef4565b565b61799561799061799a926125a0565b61264d565b610ef1565b90565b9392936179a8614b0b565b506179b1616e9e565b506179ba61334a565b506179c485616b1a565b6179ec6179e66fa2a8918ca85bafe22016d0b997e4df60600160ff1b03617927565b91610552565b11617a795790617a0f602094955f94939293617a066103a2565b94859485617943565b838052039060015afa15617a7457617a275f5161264d565b80617a42617a3c617a375f6125bf565b6103ed565b916103ed565b14617a58575f91617a525f617981565b91929190565b50617a625f6125bf565b600191617a6e5f617981565b91929190565b614b86565b505050617a855f6125bf565b906003929192919056fea164736f6c634300081a000a","sourceMap":"6415:38701:193:-:0;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;:::o;13060:465::-;;;;;:::i;:::-;13147:24;;13252:95;13224:284;13365:35;13418:14;13224:284;13418:14;13450:13;13481;13489:4;13481:13;:::i;:::-;13224:284;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;13201:317;;;;:::i;:::-;;;:::i;:::-;;13182:336;;13060:465::o;984:1491:3:-;;;;:::i;:::-;:::o;6415:38701:193:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;1225:187:2:-;1273:12;:26;;1289:10;1297:1;1289:10;:::i;:::-;1273:26;:::i;:::-;;;:::i;:::-;;1269:95;;1392:12;;;:::i;:::-;1225:187::o;1269:95::-;1322:31;1342:10;1350:1;1342:10;:::i;:::-;1322:31;;;;;;;;;;;;;:::i;:::-;;;;6415:38701:193;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;2011:153:3:-;2148:8;2011:153;2093:20;;;;:::i;:::-;2148:8;:::i;:::-;2011:153::o;6415:38701:193:-;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;2912:187:2:-;3004:6;;;:::i;:::-;3020:17;3029:8;3020:17;;:::i;:::-;3083:8;3052:40;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2912:187::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610013575b6124f9565b61001d5f3561039c565b806305778550146103975780630758236f146103925780630c76697a1461038d578063191cbd1a146103885780631e8f5ee514610383578063208129561461037e57806322f1ec93146103795780632bf4d6a7146103745780632c9576881461036f5780632dae18851461036a5780632f4bd7b81461036557806331e3bd1b146103605780633644e5151461035b5780633ac3cbe6146103565780633e6e34a7146103515780633fd62c6d1461034c57806340235a9c1461034757806348f4da20146103425780635685cf681461033d57806356c4e17d1461033857806359dcea12146103335780635a936dc61461032e5780635cce98a6146103295780636076439c1461032457806360cf09911461031f57806361d6b86c1461031a57806362c7e8fc1461031557806365a6936e146103105780636bfe06a61461030b578063715018a61461030657806371e7388c146103015780637639d227146102fc57806379ba5097146102f75780637b9f64b2146102f257806381beac2e146102ed57806384ef7322146102e85780638da5cb5b146102e357806396686c1e146102de5780639cbdae22146102d9578063adff830c146102d4578063ae470a85146102cf578063b074e9dd146102ca578063b99f6759146102c5578063ba1fb103146102c0578063c1ef9ddf146102bb578063c5d960bb146102b6578063cfe34749146102b1578063d551162c146102ac578063da435a7c146102a7578063e30c3978146102a2578063e65cafcb1461029d578063ee1c039014610298578063f2fde38b14610293578063f9107f3b1461028e578063f9f16762146102895763ffcf08f00361000e576124c5565b612490565b61242d565b6123cd565b612397565b612363565b61232e565b6122f6565b612224565b6121ef565b6121ad565b612178565b61204e565b61201a565b611fad565b611f73565b611eaa565b611de7565b611c60565b611baa565b611b77565b611b40565b611aab565b611a78565b611a42565b611a0c565b611950565b61191b565b6118ad565b611672565b611628565b6115a6565b611571565b611503565b611470565b611417565b6113e2565b61137d565b611333565b6112c7565b6111f3565b6111b9565b610f83565b610f16565b610e97565b610d1e565b610cd0565b610c35565b610b8f565b610a62565b6106c0565b61066e565b61063a565b610577565b61051d565b61044e565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060401b031690565b6103c8816103b4565b036103cf57565b5f80fd5b905035906103e0826103bf565b565b60018060a01b031690565b6103f6906103e2565b90565b610402816103ed565b0361040957565b5f80fd5b9050359061041a826103f9565b565b91906040838203126104445780610438610441925f86016103d3565b9360200161040d565b90565b6103ac565b5f0190565b3461047d5761046761046136600461041c565b90612690565b61046f6103a2565b8061047981610449565b0390f35b6103a8565b9060208282031261049b57610498915f016103d3565b90565b6103ac565b6104a9906103b4565b9052565b60ff1690565b6104bc906104ad565b9052565b151590565b6104ce906104c0565b9052565b90604080610506936104ea5f8201515f8601906104a0565b6104fc602082015160208601906104b3565b01519101906104c5565b565b919061051b905f606085019401906104d2565b565b3461054d57610549610538610533366004610482565b61276f565b6105406103a2565b91829182610508565b0390f35b6103a8565b90565b61055e90610552565b9052565b9190610575905f60208501940190610555565b565b346105a8576105a461059361058d36600461041c565b90612788565b61059b6103a2565b91829182610562565b0390f35b6103a8565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156105f15781359160018060401b0383116105ec5760200192602083028401116105e757565b6105b5565b6105b1565b6105ad565b9190916040818403126106355761060f835f83016103d3565b92602082013560018060401b0381116106305761062c92016105b9565b9091565b6103b0565b6103ac565b346106695761065361064d3660046105f6565b916130fe565b61065b6103a2565b8061066581610449565b0390f35b6103a8565b3461069d5761068761068136600461041c565b906133e8565b61068f6103a2565b8061069981610449565b0390f35b6103a8565b906020828203126106bb576106b8915f0161040d565b90565b6103ac565b346106ee576106d86106d33660046106a2565b61351d565b6106e06103a2565b806106ea81610449565b0390f35b6103a8565b6106fc81610552565b0361070357565b5f80fd5b90503590610714826106f3565b565b919060408382031261073e578061073261073b925f86016103d3565b93602001610707565b90565b6103ac565b90565b61075a61075561075f926103b4565b610743565b6103b4565b90565b9061076c90610746565b5f5260205260405f2090565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b5f5260205f2090565b6107ab8161078c565b8210156107c5576107bd600491610790565b910201905f90565b610778565b634e487b7160e01b5f52602260045260245ffd5b90600160028304921680156107fe575b60208310146107f957565b6107ca565b91607f16916107ee565b60209181520190565b5f5260205f2090565b905f929180549061083461082d836107de565b8094610808565b916001811690815f1461088b575060011461084f575b505050565b61085c9192939450610811565b915f925b81841061087357505001905f808061084a565b60018160209295939554848601520191019290610860565b92949550505060ff19168252151560200201905f808061084a565b906108b09161081a565b90565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906108db906108b3565b810190811060018060401b038211176108f357604052565b6108bd565b90610918610911926109086103a2565b938480926108a6565b03836108d1565b565b5f1c90565b90565b61092e6109339161091a565b61091f565b90565b6109409054610922565b90565b60ff1690565b61095561095a9161091a565b610943565b90565b6109679054610949565b90565b610975906008610762565b9061097f8261078c565b8110156109c55761098f916107a2565b509061099c5f83016108f8565b916109a960018201610936565b916109c260036109bb60028501610936565b930161095d565b90565b5f80fd5b5190565b60209181520190565b90825f9392825e0152565b610a00610a09602093610a0e936109f7816109c9565b938480936109cd565b958691016109d6565b6108b3565b0190565b610a1b906104c0565b9052565b610a59610a6094610a4f610a446060959998969960808601908682035f8801526109e1565b986020850190610555565b6040830190610555565b0190610a12565b565b34610a9757610a93610a7e610a78366004610716565b9061096a565b90610a8a9492946103a2565b94859485610a1f565b0390f35b6103a8565b610aa5816104ad565b03610aac57565b5f80fd5b90503590610abd82610a9c565b565b909182601f83011215610af75781359160018060401b038311610af2576020019260018302840111610aed57565b6105b5565b6105b1565b6105ad565b919060c083820312610b8a57610b14815f85016103d3565b92610b2282602083016103d3565b92610b308360408401610ab0565b92606083013560018060401b038111610b855781610b4f918501610abf565b929093610b5f83608083016103d3565b9260a082013560018060401b038111610b8057610b7c9201610abf565b9091565b6103b0565b6103b0565b6103ac565b34610bc757610bb1610ba2366004610afc565b969590959491949392936139ca565b610bb96103a2565b80610bc381610449565b0390f35b6103a8565b5f910312610bd657565b6103ac565b90565b610bf2610bed610bf792610bdb565b610743565b6103b4565b90565b610c0561012c610bde565b90565b610c10610bfa565b90565b610c1c906103b4565b9052565b9190610c33905f60208501940190610c13565b565b34610c6557610c45366004610bcc565b610c61610c50610c08565b610c586103a2565b91829182610c20565b0390f35b6103a8565b1c90565b60018060a01b031690565b610c89906008610c8e9302610c6a565b610c6e565b90565b90610c9c9154610c79565b90565b610cab600b5f90610c91565b90565b610cb7906103ed565b9052565b9190610cce905f60208501940190610cae565b565b34610d0057610ce0366004610bcc565b610cfc610ceb610c9f565b610cf36103a2565b91829182610cbb565b0390f35b6103a8565b610d1061012c610bde565b90565b610d1b610d05565b90565b34610d4e57610d2e366004610bcc565b610d4a610d39610d13565b610d416103a2565b91829182610c20565b0390f35b6103a8565b90602082820312610d82575f82013560018060401b038111610d7d57610d799201610abf565b9091565b6103b0565b6103ac565b5190565b60209181520190565b60200190565b610db9610dc2602093610dc793610db0816109c9565b93848093610808565b958691016109d6565b6108b3565b0190565b610dd490610552565b9052565b90610e0290602080610df7604084015f8701518582035f870152610d9a565b940151910190610dcb565b90565b90610e0f91610dd8565b90565b60200190565b90610e2c610e2583610d87565b8092610d8b565b9081610e3d60208302840194610d94565b925f915b838310610e5057505050505090565b90919293946020610e72610e6c83856001950387528951610e05565b97610e12565b9301930191939290610e41565b610e949160208201915f818403910152610e18565b90565b34610ec857610ec4610eb3610ead366004610d53565b90613a14565b610ebb6103a2565b91829182610e7f565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b90565b610efd90610ef1565b9052565b9190610f14905f60208501940190610ef4565b565b34610f4657610f26366004610bcc565b610f42610f31610ecd565b610f396103a2565b91829182610f01565b0390f35b6103a8565b90565b610f62610f5d610f6792610f4b565b610743565b6103b4565b90565b610f75610e10610f4e565b90565b610f80610f6a565b90565b34610fb357610f93366004610bcc565b610faf610f9e610f78565b610fa66103a2565b91829182610c20565b0390f35b6103a8565b90610fc290610746565b5f5260205260405f2090565b610fe2610fdd610fe7926103e2565b610743565b6103e2565b90565b610ff390610fce565b90565b610fff90610fea565b90565b9061100c90610ff6565b5f5260205260405f2090565b60018060401b031690565b61102f6110349161091a565b611018565b90565b6110419054611023565b90565b60401c90565b60ff1690565b61105c61106191611044565b61104a565b90565b61106e9054611050565b90565b60481c90565b60ff1690565b61108961108e91611071565b611077565b90565b61109b905461107d565b90565b90565b6110ad6110b29161091a565b61109e565b90565b6110bf90546110a1565b90565b906110d16110d6926003610fb8565b611002565b6110e15f8201610936565b916110ee60018301611037565b916110fb60018201611064565b91611114600261110d60018501611091565b93016110b5565b90565b611120906104ad565b9052565b634e487b7160e01b5f52602160045260245ffd5b6005111561114257565b611124565b9061115182611138565b565b61115c90611147565b90565b61116890611153565b9052565b909594926111b7946111a66111b09261119c60809661119260a088019c5f890190610555565b6020870190610c13565b6040850190611117565b606083019061115f565b0190610ef4565b565b346111ee576111ea6111d56111cf36600461041c565b906110c2565b916111e19593956103a2565b9586958661116c565b0390f35b6103a8565b346112235761121f61120e611209366004610482565b613a2e565b6112166103a2565b91829182610562565b0390f35b6103a8565b5190565b60209181520190565b60200190565b611244906103ed565b9052565b906112558160209361123b565b0190565b60200190565b9061127c61127661126f84611228565b809361122c565b92611235565b905f5b81811061128c5750505090565b9091926112a561129f6001928651611248565b94611259565b910191909161127f565b6112c49160208201915f81840391015261125f565b90565b346112f7576112f36112e26112dd366004610482565b613ae6565b6112ea6103a2565b918291826112af565b0390f35b6103a8565b90565b61131361130e611318926112fc565b610743565b610552565b90565b61132560c86112ff565b90565b61133061131b565b90565b3461136357611343366004610bcc565b61135f61134e611328565b6113566103a2565b91829182610562565b0390f35b6103a8565b919061137b905f60208501940190610a12565b565b346113ae576113aa61139961139336600461041c565b90613b86565b6113a16103a2565b91829182611368565b0390f35b6103a8565b906113bd90610746565b5f5260205260405f2090565b6113df906113da6007915f926113b3565b610c91565b90565b346114125761140e6113fd6113f8366004610482565b6113c9565b6114056103a2565b91829182610cbb565b0390f35b6103a8565b346114475761144361143261142d366004610482565b613c0d565b61143a6103a2565b918291826112af565b0390f35b6103a8565b7f000000000000000000000000000000000000000000000000000000000000000090565b346114a057611480366004610bcc565b61149c61148b61144c565b6114936103a2565b91829182610cbb565b0390f35b6103a8565b906080828203126114fe576114bc815f84016103d3565b926114ca82602085016103d3565b926114d88360408301610ab0565b92606082013560018060401b0381116114f9576114f59201610abf565b9091565b6103b0565b6103ac565b346115355761151f6115163660046114a5565b93929092613c7f565b6115276103a2565b8061153181610449565b0390f35b6103a8565b90565b61155161154c6115569261153a565b610743565b610552565b90565b611563603261153d565b90565b61156e611559565b90565b346115a157611581366004610bcc565b61159d61158c611566565b6115946103a2565b91829182610562565b0390f35b6103a8565b346115d7576115d36115c26115bc36600461041c565b90613c8e565b6115ca6103a2565b91829182611368565b0390f35b6103a8565b90565b6115f36115ee6115f8926115dc565b610743565b6104ad565b90565b61160560036115df565b90565b6116106115fb565b90565b9190611626905f60208501940190611117565b565b3461165857611638366004610bcc565b611654611643611608565b61164b6103a2565b91829182611613565b0390f35b6103a8565b9190611670905f6020850194019061115f565b565b346116a35761169f61168e61168836600461041c565b90613cba565b6116966103a2565b9182918261165d565b0390f35b6103a8565b906116bb6116b46103a2565b92836108d1565b565b60018060401b0381116116d35760208091020190565b6108bd565b5f80fd5b5f80fd5b5f80fd5b60018060401b038111611700576116fc6020916108b3565b0190565b6108bd565b90825f939282370152565b90929192611725611720826116e4565b6116a8565b938185526020850190828401116117415761173f92611705565b565b6116e0565b9080601f830112156117645781602061176193359101611710565b90565b6105ad565b9190916040818403126117ba5761178060406116a8565b925f8201359160018060401b0383116117b5576117a2826117ae948301611746565b5f860152602001610707565b6020830152565b6116dc565b6116d8565b9291906117d36117ce826116bd565b6116a8565b93818552602080860192028101918383116118285781905b8382106117f9575050505050565b813560018060401b038111611823576020916118188784938701611769565b8152019101906117eb565b6105ad565b6105b5565b9080601f8301121561184b57816020611848933591016117bf565b90565b6105ad565b6080818303126118a857611866825f83016103d3565b92611874836020840161040d565b9260408301359060018060401b0382116118a357611897816118a093860161182d565b93606001610707565b90565b6103b0565b6103ac565b346118df576118c96118c0366004611850565b9291909161409e565b6118d16103a2565b806118db81610449565b0390f35b6103a8565b90565b6118fb6118f6611900926118e4565b610743565b610552565b90565b61190d60406118e7565b90565b611918611903565b90565b3461194b5761192b366004610bcc565b611947611936611910565b61193e6103a2565b91829182610562565b0390f35b6103a8565b3461197e57611960366004610bcc565b6119686146cd565b6119706103a2565b8061197a81610449565b0390f35b6103a8565b61198c90611153565b9052565b61199990610ef1565b9052565b906080806119f5936119b55f8201515f860190610dcb565b6119c7602082015160208601906104a0565b6119d9604082015160408601906104b3565b6119eb60608201516060860190611983565b0151910190611990565b565b9190611a0a905f60a0850194019061199d565b565b34611a3d57611a39611a28611a2236600461041c565b9061480a565b611a306103a2565b918291826119f7565b0390f35b6103a8565b34611a7357611a6f611a5e611a5836600461041c565b90614862565b611a666103a2565b91829182610c20565b0390f35b6103a8565b34611aa657611a88366004610bcc565b611a9061488a565b611a986103a2565b80611aa281610449565b0390f35b6103a8565b34611adb57611ad7611ac6611ac1366004610482565b6148db565b611ace6103a2565b91829182610562565b0390f35b6103a8565b9091606082840312611b1557611b12611afb845f85016103d3565b93611b098160208601610707565b93604001610707565b90565b6103ac565b92916020611b36611b3e9360408701908782035f89015261125f565b940190610555565b565b34611b7257611b59611b53366004611ae0565b91614979565b90611b6e611b656103a2565b92839283611b1a565b0390f35b6103a8565b34611ba557611b8f611b8a3660046106a2565b614b00565b611b976103a2565b80611ba181610449565b0390f35b6103a8565b34611bda57611bba366004610bcc565b611bd6611bc5614b0f565b611bcd6103a2565b91829182610cbb565b0390f35b6103a8565b909182601f83011215611c175781359160018060401b038311611c12576020019260208302840111611c0d57565b6105b5565b6105b1565b6105ad565b919091604081840312611c5b57611c35835f83016103d3565b92602082013560018060401b038111611c5657611c529201611bdf565b9091565b6103b0565b6103ac565b34611c8f57611c79611c73366004611c1c565b91614b96565b611c816103a2565b80611c8b81610449565b0390f35b6103a8565b91606083830312611cde57611cab825f85016103d3565b92611cb9836020830161040d565b92604082013560018060401b038111611cd957611cd69201611746565b90565b6103b0565b6103ac565b90611ced90610746565b5f5260205260405f2090565b90611d0390610ff6565b5f5260205260405f2090565b905090565b611d39611d3092602092611d27816109c9565b94858093611d0f565b938491016109d6565b0190565b90565b611d4c611d5191610552565b611d3d565b9052565b611d65611d6c9160209493611d14565b8092611d40565b0190565b611d84611d7b6103a2565b92839283611d55565b03902090565b611d9391611d70565b90565b611da6906008611dab9302610c6a565b61091f565b90565b90611db99154611d96565b90565b90611de492611dda611ddf92611dd56009955f96611ce3565b611cf9565b611d8a565b611dae565b90565b34611e1857611e14611e03611dfd366004611c94565b91611dbc565b611e0b6103a2565b91829182610562565b0390f35b6103a8565b909182601f83011215611e555781359160018060401b038311611e50576020019260018302840111611e4b57565b6105b5565b6105b1565b6105ad565b91606083830312611ea557611e71825f85016103d3565b92611e7f836020830161040d565b92604082013560018060401b038111611ea057611e9c9201611e1d565b9091565b6103b0565b6103ac565b34611edc57611ec6611ebd366004611e5a565b92919091614df9565b611ece6103a2565b80611ed881610449565b0390f35b6103a8565b611eea816104c0565b03611ef157565b5f80fd5b90503590611f0282611ee1565b565b91909160a081840312611f6e57611f1d835f83016103d3565b92602082013560018060401b038111611f695781611f3c918401611e1d565b929093611f66611f4f8460408501610707565b93611f5d8160608601610707565b93608001611ef5565b90565b6103b0565b6103ac565b34611fa857611f92611f86366004611f04565b949390939291926150c7565b611f9a6103a2565b80611fa481610449565b0390f35b6103a8565b34611fdb57611fc5611fc0366004610482565b615477565b611fcd6103a2565b80611fd781610449565b0390f35b6103a8565b909160608284031261201557612012611ffb845f85016103d3565b9361200981602086016103d3565b93604001610ab0565b90565b6103ac565b346120495761203361202d366004611fe0565b916156ec565b61203b6103a2565b8061204581610449565b0390f35b6103a8565b3461207d5761206761206136600461041c565b906158ab565b61206f6103a2565b8061207981610449565b0390f35b6103a8565b5190565b60209181520190565b60200190565b906120e3906060806120b4608084015f8701518582035f870152610d9a565b946120c760208201516020860190610dcb565b6120d960408201516040860190610dcb565b01519101906104c5565b90565b906120f091612095565b90565b60200190565b9061210d61210683612082565b8092612086565b908161211e6020830284019461208f565b925f915b83831061213157505050505090565b9091929394602061215361214d838560019503875289516120e6565b976120f3565b9301930191939290612122565b6121759160208201915f8184039101526120f9565b90565b346121a8576121a461219361218e366004610482565b615c20565b61219b6103a2565b91829182612160565b0390f35b6103a8565b346121db576121c56121c0366004610482565b615db0565b6121cd6103a2565b806121d781610449565b0390f35b6103a8565b6121ec600a5f90610c91565b90565b3461221f576121ff366004610bcc565b61221b61220a6121e0565b6122126103a2565b91829182610cbb565b0390f35b6103a8565b346122585761225461224361223a366004611e5a565b92919091615e1d565b61224b6103a2565b91829182610562565b0390f35b6103a8565b9061226790610746565b5f5260205260405f2090565b61227f61228491611071565b610943565b90565b6122919054612273565b90565b61229f90600261225d565b6122aa5f8201611037565b916122c15f6122ba818501611064565b9301612287565b90565b6040906122ed6122f494969593966122e360608401985f850190610c13565b6020830190611117565b0190610a12565b565b346123295761232561231161230c366004610482565b612294565b61231c9391936103a2565b938493846122c4565b0390f35b6103a8565b3461235e5761233e366004610bcc565b61235a612349615e52565b6123516103a2565b91829182610cbb565b0390f35b6103a8565b346123925761237c61237636600461041c565b90615f3c565b6123846103a2565b8061238e81610449565b0390f35b6103a8565b346123c8576123c46123b36123ad36600461041c565b906160d1565b6123bb6103a2565b91829182611368565b0390f35b6103a8565b346123fb576123e56123e03660046106a2565b6161d0565b6123ed6103a2565b806123f781610449565b0390f35b6103a8565b9190604083820312612428578061241c612425925f86016103d3565b93602001611ef5565b90565b6103ac565b3461245c57612446612440366004612400565b906161db565b61244e6103a2565b8061245881610449565b0390f35b6103a8565b7f32721f8dc67e953c540da90f663059c23fc47f70d11e317ed6d5a24c8b85637490565b61248d612461565b90565b346124c0576124a0366004610bcc565b6124bc6124ab612485565b6124b36103a2565b91829182610f01565b0390f35b6103a8565b346124f4576124de6124d836600461041c565b906162a4565b6124e66103a2565b806124f081610449565b0390f35b6103a8565b5f80fd5b5f7f4f6e6c792054616e676c6520636f726500000000000000000000000000000000910152565b61253160106020926109cd565b61253a816124fd565b0190565b6125539060208101905f818303910152612524565b90565b1561255d57565b6125656103a2565b62461bcd60e51b81528061257b6004820161253e565b0390fd5b61258b6125909161091a565b610c6e565b90565b61259d905461257f565b90565b90565b6125b76125b26125bc926125a0565b610743565b6103e2565b90565b6125c8906125a3565b90565b5f7f416c726561647920726567697374657265640000000000000000000000000000910152565b6125ff60126020926109cd565b612608816125cb565b0190565b6126219060208101905f8183039101526125f2565b90565b1561262b57565b6126336103a2565b62461bcd60e51b8152806126496004820161260c565b0390fd5b5f1b90565b9061266360018060a01b039161264d565b9181191691161790565b90565b9061268561268061268c92610ff6565b61266d565b8254612652565b9055565b612712612717926126d3336126cd6126c77f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b61270a6126ea6126e5600786906113b3565b612593565b6127046126fe6126f95f6125bf565b6103ed565b916103ed565b14612624565b9160076113b3565b612670565b565b61272360606116a8565b90565b5f90565b5f90565b5f90565b61273a612719565b906020808084612748612726565b81520161275361272a565b81520161275e61272e565b81525050565b61276c612732565b90565b6127819061277b612764565b506163cc565b90565b5f90565b6127a96127af926127a45f9361279c612784565b506003610fb8565b611002565b01610936565b90565b5f7f4e6f742073657276696365206f776e6572000000000000000000000000000000910152565b6127e660116020926109cd565b6127ef816127b2565b0190565b6128089060208101905f8183039101526127d9565b90565b1561281257565b61281a6103a2565b62461bcd60e51b815280612830600482016127f3565b0390fd5b5090565b5f7f546f6f206d616e7920646566696e6974696f6e73000000000000000000000000910152565b61286c60146020926109cd565b61287581612838565b0190565b61288e9060208101905f81830391015261285f565b90565b1561289857565b6128a06103a2565b62461bcd60e51b8152806128b660048201612879565b0390fd5b634e487b7160e01b5f52601160045260245ffd5b6128dd6128e391939293610552565b92610552565b916128ef838202610552565b9281840414901517156128fe57565b6128ba565b61290e9060046128ce565b90565b90612924905f1990602003600802610c6a565b8154169055565b1b90565b9190600861294a9102916129445f198461292b565b9261292b565b9181191691161790565b61296861296361296d92610552565b610743565b610552565b90565b90565b919061298961298461299193612954565b612970565b90835461292f565b9055565b6129a7916129a1612784565b91612973565b565b5b8181106129b5575050565b806129c25f600193612995565b016129aa565b906129d8905f1990600802610c6a565b191690565b816129e7916129c8565b906002021790565b905f91612a066129fe82610811565b9283546129dd565b905555565b601f602091010490565b919290602082105f14612a6e57601f8411600114612a3e57612a389293506129dd565b90555b5b565b5090612a64612a69936001612a5b612a5585610811565b92612a0b565b820191016129a9565b6129ef565b612a3b565b50612aa58293612a7f600194610811565b612a9e612a8b85612a0b565b820192601f861680612ab0575b50612a0b565b01906129a9565b600202179055612a3c565b612abc90888603612911565b5f612a98565b929091600160401b8211612b1d576020115f14612b0e57602081105f14612af257612aec916129dd565b90555b5b565b60019160ff1916612b0284610811565b55600202019055612aef565b60019150600202019055612af0565b6108bd565b908154612b2e816107de565b90818311612b57575b818310612b45575b50505050565b612b4e93612a15565b5f808080612b3f565b612b6383838387612ac2565b612b37565b5f612b7291612b22565b565b634e487b7160e01b5f525f60045260245ffd5b905f03612b9957612b9790612b68565b565b612b74565b60035f91612bae83808301612b87565b612bbb8360018301612995565b612bc88360028301612995565b0155565b905f03612bde57612bdc90612b9e565b565b612b74565b5b818110612bef575050565b80612bfc5f600493612bcc565b01612be4565b9091828110612c11575b505050565b612c2f612c29612c23612c3a95612903565b92612903565b92610790565b918201910190612be3565b5f8080612c0c565b90600160401b8111612c665781612c5b612c649361078c565b90828155612c02565b565b6108bd565b5f612c7591612c42565b565b905f03612c8957612c8790612c6b565b565b612b74565b612ca2612c9d612ca7926125a0565b610743565b610552565b90565b6001612cb69101610552565b90565b5f80fd5b5f80fd5b5f80fd5b903590600160800381360303821215612cdc570190565b612cb9565b90821015612cfb576020612cf89202810190612cc5565b90565b610778565b903590600160200381360303821215612d40570180359060018060401b038211612d3b57602001916001820236038313612d3657565b612cc1565b612cbd565b612cb9565b91565b5090565b5f7f4e616d6520746f6f206c6f6e6700000000000000000000000000000000000000910152565b612d80600d6020926109cd565b612d8981612d4c565b0190565b612da29060208101905f818303910152612d73565b90565b15612dac57565b612db46103a2565b62461bcd60e51b815280612dca60048201612d8d565b0390fd5b35612dd8816106f3565b90565b5f7f496e76616c696420626f756e6473000000000000000000000000000000000000910152565b612e0f600e6020926109cd565b612e1881612ddb565b0190565b612e319060208101905f818303910152612e02565b90565b15612e3b57565b612e436103a2565b62461bcd60e51b815280612e5960048201612e1c565b0390fd5b90565b5f5260205f2090565b5490565b612e7681612e69565b821015612e9057612e88600491612e60565b910201905f90565b610778565b5090565b9190601f8111612ea9575b505050565b612eb5612eda93610811565b906020612ec184612a0b565b83019310612ee2575b612ed390612a0b565b01906129a9565b5f8080612ea4565b9150612ed381929050612eca565b91612efb9082612e95565b9060018060401b038211612fb857612f1d82612f1785546107de565b85612e99565b5f90601f8311600114612f5057918091612f3f935f92612f44575b50506129dd565b90555b565b90915001355f80612f38565b601f19831691612f5f85610811565b925f5b818110612fa057509160029391856001969410612f86575b50505002019055612f42565b612f96910135601f8416906129c8565b90555f8080612f7a565b91936020600181928787013581550195019201612f62565b6108bd565b90612fc89291612ef0565b565b90612fd65f199161264d565b9181191691161790565b90612ff5612ff0612ffc92612954565b612970565b8254612fca565b9055565b3561300a81611ee1565b90565b9061301960ff9161264d565b9181191691161790565b61302c906104c0565b90565b90565b9061304761304261304e92613023565b61302f565b825461300d565b9055565b906130b0606060036130b6946130765f82016130705f880188612d00565b91612fbd565b61308f6001820161308960208801612dce565b90612fe0565b6130a8600282016130a260408801612dce565b90612fe0565b019201613000565b90613032565b565b91906130c9576130c791613052565b565b612b74565b90815491600160401b8310156130f957826130f19160016130f795018155612e6d565b906130b8565b565b6108bd565b929190926131313361312b61312561312061311b600787906113b3565b612593565b6103ed565b916103ed565b1461280b565b61315f61313f858490612834565b61315861315261314d611559565b610552565b91610552565b1115612891565b6131745f61316f60088490610762565b612c77565b61317d5f612c8e565b5b8061319b613195613190888790612834565b610552565b91610552565b101561326e57613269906131f26131d26131cc6131c66131bd8a898791612ce1565b5f810190612d00565b90612d45565b90612d48565b6131eb6131e56131e0611903565b610552565b91610552565b1115612da5565b61323b61320c604061320689888691612ce1565b01612dce565b61323461322e61322960206132238c8b8991612ce1565b01612dce565b610552565b91610552565b1015612e34565b61326461325261324d60088690610762565b612e5d565b61325e88878591612ce1565b906130ce565b612caa565b61317e565b5050509050565b5f7f5a65726f20616464726573730000000000000000000000000000000000000000910152565b6132a9600c6020926109cd565b6132b281613275565b0190565b6132cb9060208101905f81830391015261329c565b90565b156132d557565b6132dd6103a2565b62461bcd60e51b8152806132f3600482016132b6565b0390fd5b9061330190610746565b5f5260205260405f2090565b90565b61331990610ef1565b90565b6133259061091a565b90565b919061333e61333961334693613310565b61331c565b90835461292f565b9055565b5f90565b6133609161335a61334a565b91613328565b565b5f60026133819261337583808301612995565b8260018201550161334e565b565b905f036133955761339390613362565b565b612b74565b60481b90565b906133af60ff60481b9161339a565b9181191691161790565b6133c290611147565b90565b90565b906133dd6133d86133e4926133b9565b6133c5565b82546133a0565b9055565b6134243361341e6134187f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6134498261344261343c6134375f6125bf565b6103ed565b916103ed565b14156132ce565b61346f61346a61346361345e600685906132f7565b61330d565b84906164aa565b612624565b61348e5f61348961348260038590610fb8565b8590611002565b613383565b6134b1600260016134ab6134a460038690610fb8565b8690611002565b016133c8565b906134e56134df7f8e2d88795a3c66719a287658cbf68b3eb2b8e183cb18f46f4813913fc8aafc4b93610746565b91610ff6565b916134ee6103a2565b806134f881610449565b0390a3565b61350e906135096164e4565b613510565b565b61351b90600b612670565b565b613526906134fd565b565b5f7f4e6f742072656769737465726564206f70657261746f72000000000000000000910152565b61355c60176020926109cd565b61356581613528565b0190565b61357e9060208101905f81830391015261354f565b90565b1561358857565b6135906103a2565b62461bcd60e51b8152806135a660048201613569565b0390fd5b906135df979695949392916135da6135d56135ce6135c98460066132f7565b61330d565b3390616532565b613581565b61381e565b565b6135f56135f06135fa926103b4565b610743565b610552565b90565b61361161360c61361692610552565b610743565b6103b4565b90565b91602061363a92949361363360408201965f830190610c13565b0190610c13565b565b61364b61365191939293610552565b92610552565b820391821161365c57565b6128ba565b60018060401b03811161367d576136796020916108b3565b0190565b6108bd565b9092919261369761369282613661565b6116a8565b938185526020850190828401116136b3576136b192611705565b565b6116e0565b6136c3913691613682565b90565b60200190565b5190565b949290979695939160e08601985f87016136e991610ef4565b602086016136f691610cae565b6040850161370391610c13565b6060840161371091610c13565b6080830161371d91611117565b60a0820161372a91610ef4565b60c00161373691610c13565b565b5f61190160f01b910152565b61375060028092611d0f565b61375981613738565b0190565b90565b61376c61377191610ef1565b61375d565b9052565b602080939261379061378961379894613744565b8092613760565b018092613760565b0190565b5f7f496e76616c6964207369676e6174757265000000000000000000000000000000910152565b6137d060116020926109cd565b6137d98161379c565b0190565b6137f29060208101905f8183039101526137c3565b90565b156137fc57565b6138046103a2565b62461bcd60e51b81528061381a600482016137dd565b0390fd5b9192939497969095978061383a61383442610552565b916135e1565b116139a2576138524261384c836135e1565b9061363c565b61386b613865613860610d05565b6135e1565b91610552565b1161397a57613978979861394f61396d93856138d98a6138ca8d613955988d8d6138a1613896612461565b9633999592936136b8565b6138b36138ad826136cc565b916136c6565b2092936138be6103a2565b988997602089016136d0565b602082018103825203826108d1565b6138eb6138e5826136cc565b916136c6565b206139367f000000000000000000000000000000000000000000000000000000000000000061392761391b6103a2565b93849260208401613775565b602082018103825203826108d1565b613948613942826136cc565b916136c6565b20926136b8565b9061656c565b613967613961336103ed565b916103ed565b146137f5565b9333919293946166e9565b565b613983426135fd565b9061399e5f9283926318355b7560e21b845260048401613619565b0390fd5b6139ab426135fd565b906139c65f9283926357ea02e960e01b845260048401613619565b0390fd5b906139da979695949392916135aa565b565b606090565b90602082820312613a0f575f82013560018060401b038111613a0a57613a07920161182d565b90565b6103b0565b6103ac565b90613a2b91613a216139dc565b50908101906139e1565b90565b613a4d613a48613a5292613a40612784565b5060056132f7565b61330d565b616afb565b90565b606090565b60018060401b038111613a705760208091020190565b6108bd565b90613a87613a8283613a5a565b6116a8565b918252565b369037565b90613ab6613a9e83613a75565b92602080613aac8693613a5a565b9201910390613a8c565b565b90613ac282611228565b811015613ad3576020809102010190565b610778565b90613ae2906103ed565b9052565b90613aef613a55565b50613b0c613b07613b02600485906132f7565b61330d565b616afb565b91613b1683613a91565b91613b205f612c8e565b5b80613b34613b2e87610552565b91610552565b1015613b7b57613b7690613b71613b5f613b58613b53600488906132f7565b61330d565b8390616b4a565b613b6c8791849092613ab8565b613ad8565b612caa565b613b21565b5092505090565b5f90565b90613b8f613b82565b50613bb16001613bab613ba460038690610fb8565b8490611002565b01611091565b613bc3613bbd5f611147565b91611147565b14918215613bd1575b505090565b613bf29250600191613be7613bec926003610fb8565b611002565b01611091565b613c05613bff6001611147565b91611147565b145f80613bcc565b613c3390613c19613a55565b505f90613c2d613c2761131b565b92612c8e565b90614979565b5090565b90613c6994939291613c64613c5f613c58613c538460066132f7565b61330d565b3390616532565b613581565b613c6b565b565b91613c7d9492939133919293946166e9565b565b90613c8c94939291613c37565b565b90613cae613ca9613cb393613ca1613b82565b5060066132f7565b61330d565b616532565b90565b5f90565b613cdc613ce292613cd7600193613ccf613cb6565b506003610fb8565b611002565b01611091565b90565b613cee90610fea565b90565b5f7f496e7465726e616c206f6e6c7900000000000000000000000000000000000000910152565b613d25600d6020926109cd565b613d2e81613cf1565b0190565b613d479060208101905f818303910152613d18565b90565b15613d5157565b613d596103a2565b62461bcd60e51b815280613d6f60048201613d32565b0390fd5b60018060401b038111613d895760208091020190565b6108bd565b90613da0613d9b83613d73565b6116a8565b918252565b369037565b90613dcf613db783613d8e565b92602080613dc58693613d73565b9201910390613da5565b565b90613ddb82610d87565b811015613dec576020809102010190565b610778565b90565b5190565b90613e0282613df4565b811015613e13576020809102010190565b610778565b90613e2290610ef1565b9052565b606090565b90565b60209181520190565b905f9291805490613e51613e4a836107de565b8094613e2e565b916001811690815f14613ea85750600114613e6c575b505050565b613e799192939450610799565b915f925b818410613e9057505001905f8080613e67565b60018160209295939554848601520191019290613e7d565b92949550505060ff19168252151560200201905f8080613e67565b90613ecd91613e37565b90565b90613ef0613ee992613ee06103a2565b93848092613ec3565b03836108d1565b565b613efb90613ed0565b90565b613f089051610ef1565b90565b613f159051610552565b90565b5f7f56616c7565206f7574206f6620626f756e647300000000000000000000000000910152565b613f4c60136020926109cd565b613f5581613f18565b0190565b613f71613f7f9260408301908382035f8501526109e1565b906020818303910152613f3f565b90565b92916020613f9e613fa69360408701908782035f8901526109e1565b940190610555565b565b905f9291805490613fc2613fbb836107de565b80946109cd565b916001811690815f146140195750600114613fdd575b505050565b613fea9192939450610811565b915f925b81841061400157505001905f8080613fd8565b60018160209295939554848601520191019290613fee565b92949550505060ff19168252151560200201905f8080613fd8565b5f7f5265717569726564206d6574726963206d697373696e67000000000000000000910152565b61406860176020926109cd565b61407181614034565b0190565b61408d61409b9260408301908382035f850152613fa8565b90602081830391015261405b565b90565b929390936140c6336140c06140ba6140b530613ce5565b6103ed565b916103ed565b14613d4a565b6140da6140d560088690610762565b612e5d565b946140e482613daa565b946140ee5f612c8e565b5b806141026140fc86610552565b91610552565b1015614155576141509061414b6141265f61411e8a8590613dd1565b510151613df1565b614138614132826136cc565b916136c6565b206141468a91849092613df8565b613e18565b612caa565b6140ef565b50919490929561416481612e69565b6141766141705f612c8e565b91610552565b1196614180613e26565b9088614600575b6141905f612c8e565b5b806141a461419e8b610552565b91610552565b10156144635760015f8b614297575b50908887896141c9946141ce575b505050612caa565b614191565b825f61420c614204614215946141ff6141f760206141f061421a9b8d90613dd1565b5101613f0b565b976009611ce3565b611cf9565b928790613dd1565b51015190611d8a565b612fe0565b88878990614244602061423d5f614232878990613dd1565b510151958790613dd1565b5101613f0b565b6142776142717f23ed02bd3605bdea6a8afa76c46f00d274860ba6cea980f2585b696df9e182bd93610746565b93610ff6565b9361428c6142836103a2565b92839283613f82565b0390a38887896141c1565b9a90959291996142a65f612c8e565b5b806142c26142bc6142b78a612e69565b610552565b91610552565b101561444d576142da6142d58d87613df8565b613efe565b6142fe6142f86142f36142ee8a8690613df8565b613efe565b610ef1565b91610ef1565b146143115761430c90612caa565b6142a7565b8a919b929c50896141c99495988a926001908a61433b6020614334898b90613dd1565b5101613f0b565b61436361435d6143586001614351868890612e6d565b5001610936565b610552565b91610552565b109188888415614403575b50505050614398575b614382905b156104c0565b614391575b93945050506141b3565b505f614387565b905082825f6143a8878990613dd1565b510151916143f46143e26143dc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936143eb6103a2565b91829182613f59565b0390a36143825f919050614377565b61444393945061443161443d9361442b602061442461443896600296613dd1565b5101613f0b565b96612e6d565b5001610936565b610552565b91610552565b118a5f888861436e565b5099909a87896141c99495986143828d9461437c565b5097505092935093506144755f612c8e565b935b8461449261448c61448786612e69565b610552565b91610552565b10156145f9576144b86144b260036144ab868990612e6d565b500161095d565b156104c0565b6145ee576144da6144d55f6144ce868990612e6d565b5001613e2b565b613ef2565b6144ec6144e6826136cc565b916136c6565b20905f966144f95f612c8e565b5b8061451561450f61450a86613df4565b610552565b91610552565b10156145dc5761452e614529848390613df8565b613efe565b61454061453a86610ef1565b91610ef1565b146145535761454e90612caa565b6144fa565b5095909650614574915061456960015b156104c0565b61457b575b5b612caa565b9394614477565b82855f614589878590612e6d565b5001916145d46145c26145bc7fe08f42896ce3aec2ff7da95a00372f33cf677e75ad602590832a8dffcdad631593610746565b93610ff6565b936145cb6103a2565b91829182614075565b0390a361456e565b50959096614574925061456990614563565b94936145749061456f565b5050505050565b9693905061461a614615839794999693612e69565b613daa565b976146245f612c8e565b5b8061464061463a6146358b612e69565b610552565b91610552565b101561469a576146959061469061466b6146665f61465f8d8690612e6d565b5001613e2b565b613ef2565b61467d614677826136cc565b916136c6565b2061468b8d91849092613df8565b613e18565b612caa565b614625565b509295919497909396614187565b6146b06164e4565b6146b86146ba565b565b6146cb6146c65f6125bf565b616be2565b565b6146d56146a8565b565b6146e160a06116a8565b90565b5f90565b5f90565b5f90565b6146f86146d7565b90602080808080866147086146e4565b815201614713612726565b81520161471e61272a565b8152016147296146e8565b8152016147346146ec565b81525050565b6147426146f0565b90565b9061474f90610552565b9052565b9061475d906103b4565b9052565b9061476b906104ad565b9052565b9061477990611147565b9052565b906147fc6147f3600261478e6146d7565b946147a561479d5f8301610936565b5f8801614745565b6147bd6147b460018301611037565b60208801614753565b6147d56147cc60018301611064565b60408801614761565b6147ed6147e460018301611091565b6060880161476f565b016110b5565b60808401613e18565b565b6148079061477d565b90565b61482f9161482561482a9261481d61473a565b506003610fb8565b611002565b6147fe565b90565b5f90565b9061484090610746565b5f5260205260405f2090565b9061485690610ff6565b5f5260205260405f2090565b6148879161487d61488292614875614832565b50600c614836565b61484c565b611037565b90565b614892616bf8565b61489a615e52565b6148ac6148a6836103ed565b916103ed565b036148bc576148ba90616be2565b565b6148d7905f91829163118cdaa760e01b835260048301610cbb565b0390fd5b6148fa6148f56148ff926148ed612784565b5060046132f7565b61330d565b616afb565b90565b61490c90516104ad565b90565b61492361491e614928926125a0565b610743565b6104ad565b90565b61493590516103b4565b90565b61494c614947614951926104ad565b610743565b610552565b90565b61496361496991939293610552565b92610552565b820180921161497457565b6128ba565b90929192614985613a55565b5061498e612784565b50614998826163cc565b936149b56149b06149ab600586906132f7565b61330d565b616afb565b926149c260208701614902565b6149d46149ce5f61490f565b916104ad565b148015614ac6575b8015614aab575b614a9157614a1d86614a17614a126020614a0b614a065f614a7a9b9c9d0161492b565b6135e1565b9301614902565b614938565b906128ce565b9180614a38614a32614a2d61131b565b610552565b91610552565b115f14614a8c5750614a4861131b565b5b614a54848290614954565b614a66614a6088610552565b91610552565b115f14614a7d5750845b9092909192616c2e565b91565b614a879084614954565b614a70565b614a49565b5050509150614aa7614aa25f612c8e565b613a91565b9190565b5082614abf614ab986610552565b91610552565b10156149e3565b5083614ada614ad45f612c8e565b91610552565b146149dc565b614af190614aec6164e4565b614af3565b565b614afe90600a612670565b565b614b0990614ae0565b565b5f90565b614b17614b0b565b50614b215f612593565b90565b5090565b9190811015614b38576020020190565b610778565b35614b47816103f9565b90565b5f80fd5b60e01b90565b5f910312614b5e57565b6103ac565b916020614b84929493614b7d60408201965f830190610c13565b0190610cae565b565b614b8e6103a2565b3d5f823e3d90fd5b90929192614ba35f612c8e565b5b80614bc1614bbb614bb6858990614b24565b610552565b91610552565b1015614c7057614bd030613ce5565b9063ba1fb10384614beb614be6868a8691614b28565b614b3d565b93803b15614c6b57614c105f8094614c1b614c046103a2565b98899687958694614b4e565b845260048401614b63565b03925af1918215614c6657614c3592614c3a575b50612caa565b614ba4565b614c59905f3d8111614c5f575b614c5181836108d1565b810190614b54565b5f614c2f565b503d614c47565b614b86565b614b4a565b5050509050565b5f7f4e6f7420736c617368696e67206f7261636c6500000000000000000000000000910152565b614cab60136020926109cd565b614cb481614c77565b0190565b614ccd9060208101905f818303910152614c9e565b90565b15614cd757565b614cdf6103a2565b62461bcd60e51b815280614cf560048201614cb8565b0390fd5b5f7f4f70657261746f7220756e6b6e6f776e00000000000000000000000000000000910152565b614d2d60106020926109cd565b614d3681614cf9565b0190565b614d4f9060208101905f818303910152614d20565b90565b15614d5957565b614d616103a2565b62461bcd60e51b815280614d7760048201614d3a565b0390fd5b90565b90614d8f60018060401b039161264d565b9181191691161790565b90565b90614db1614dac614db892610746565b614d99565b8254614d7e565b9055565b9190614dd681614dcf81614ddb956109cd565b8095611705565b6108b3565b0190565b9091614df69260208301925f818503910152614dbc565b90565b614e1e33614e18614e12614e0d600a612593565b6103ed565b916103ed565b14614cd0565b614e44614e3f614e38614e33600585906132f7565b61330d565b8490616532565b614d52565b614e70614e65614e60614e5960038590610fb8565b8590611002565b614d7b565b6001600391016133c8565b614e8e614e87614e82600484906132f7565b61330d565b8390616d4a565b50614eb6614e9b426135fd565b614eb1614eaa600c8590614836565b859061484c565b614d9c565b909192614eec614ee67f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b93610ff6565b93614f01614ef86103a2565b92839283614ddf565b0390a3565b614f1060806116a8565b90565b614f1e913691611710565b90565b52565b90614f2e906104c0565b9052565b5190565b90614f40816109c9565b9060018060401b038211614ffe57614f6282614f5c85546107de565b85612e99565b602090601f8311600114614f9657918091614f85935f92614f8a575b50506129dd565b90555b565b90915001515f80614f7e565b601f19831691614fa585610811565b925f5b818110614fe657509160029391856001969410614fcc575b50505002019055614f88565b614fdc910151601f8416906129c8565b90555f8080614fc0565b91936020600181928787015181550195019201614fa8565b6108bd565b9061500d91614f36565b565b61501990516104c0565b90565b906150796060600361507f9461503f5f82016150395f8801614f32565b90615003565b6150586001820161505260208801613f0b565b90612fe0565b6150716002820161506b60408801613f0b565b90612fe0565b01920161500f565b90613032565b565b9190615092576150909161501c565b565b612b74565b90815491600160401b8310156150c257826150ba9160016150c095018155612e6d565b90615081565b565b6108bd565b6151e5956151ce84966151c56151bd6151a96151a46151d79761514a61512a6151246151e09d8d9f9d61511f3361511961511361510e61510960078c906113b3565b612593565b6103ed565b916103ed565b1461280b565b612d45565b90612d48565b61514361513d615138611903565b610552565b91610552565b1115612da5565b6151678661516061515a8d610552565b91610552565b1015612e34565b61519d61517e61517960088490610762565b61078c565b61519761519161518c611559565b610552565b91610552565b10612891565b6008610762565b612e5d565b9899969294966151b7614f06565b9a614f13565b5f8a01614f21565b60208801614745565b60408601614745565b60608401614f24565b615097565b565b6152159061521061520b6152046151ff8460066132f7565b61330d565b3390616532565b613581565b6152f1565b565b5f7f43616e6e6f7420676f206f6e6c696e65207768696c6520736c61736865640000910152565b61524b601e6020926109cd565b61525481615217565b0190565b61526d9060208101905f81830391015261523e565b90565b60401b90565b9061528560ff60401b91615270565b9181191691161790565b6152a361529e6152a8926104ad565b610743565b6104ad565b90565b90565b906152c36152be6152ca9261528f565b6152ab565b8254615276565b9055565b9160206152ef9294936152e860408201965f83019061115f565b019061115f565b565b61530f61530a61530360038490610fb8565b3390611002565b614d7b565b9061531c60018301611091565b918261533161532b6003611147565b91611147565b1461545557826153496153435f611147565b91611147565b14801561543a575b615435576153789061536660018083016133c8565b60016153715f61490f565b91016152ae565b61539661538f61538a600484906132f7565b61330d565b33906164aa565b5080336153cc6153c67fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b916153d56103a2565b806153df81610449565b0390a390339091600161541b6154157f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936154306154276103a2565b928392836152ce565b0390a3565b505050565b508261544f6154496001611147565b91611147565b14615351565b61545d6103a2565b62461bcd60e51b81528061547360048201615258565b0390fd5b615480906151e7565b565b5f7f4e6f7420617574686f72697a6564000000000000000000000000000000000000910152565b6154b6600e6020926109cd565b6154bf81615482565b0190565b6154d89060208101905f8183039101526154a9565b90565b156154e257565b6154ea6103a2565b62461bcd60e51b815280615500600482016154c3565b0390fd5b90565b61551b61551661552092615504565b610743565b6103b4565b90565b5f7f496e74657276616c20746f6f2073686f72740000000000000000000000000000910152565b61555760126020926109cd565b61556081615523565b0190565b6155799060208101905f81830391015261554a565b90565b1561558357565b61558b6103a2565b62461bcd60e51b8152806155a160048201615564565b0390fd5b90565b6155bc6155b76155c1926155a5565b610743565b6104ad565b90565b5f7f4d6178206d6973736564206d757374206265203e3d2031000000000000000000910152565b6155f860176020926109cd565b615601816155c4565b0190565b61561a9060208101905f8183039101526155eb565b90565b1561562457565b61562c6103a2565b62461bcd60e51b81528061564260048201615605565b0390fd5b61565060606116a8565b90565b9061566861566361566f92613023565b61302f565b82546133a0565b9055565b906156b560405f6156bb9461569582820161568f84880161492b565b90614d9c565b6156ad8282016156a760208801614902565b906152ae565b01920161500f565b90615653565b565b906156c791615673565b565b9160206156ea9294936156e360408201965f830190610c13565b0190611117565b565b3361571f6157197f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14801561580b575b615730906154db565b61574e82615747615741603c615507565b916103b4565b101561557c565b61576c8361576561575f60016155a8565b916104ad565b101561561d565b6157c5826157b4856157ab61578d5f6157876002899061225d565b01612287565b916157a2615799615646565b955f8701614753565b60208501614761565b60408301614f24565b6157c06002849061225d565b6156bd565b90916157f17fc9599ed962624a858ec59bae0ed86c75f4db65fe04570021277edbedd04ea56492610746565b926158066157fd6103a2565b928392836156c9565b0390a2565b506157303361583561582f61582a615825600787906113b3565b612593565b6103ed565b916103ed565b149050615727565b634e487b7160e01b5f52601260045260245ffd5b61585d61586391610552565b91610552565b90811561586e570490565b61583d565b61588761588261588c92610552565b610743565b6104ad565b90565b6158a361589e6158a8926125a0565b610743565b6103b4565b90565b6158c96158c46158bd60038490610fb8565b8490611002565b614d7b565b906158d3816163cc565b6158df60018401611091565b6158f26158ec6003611147565b91611147565b14615b06576159025f8401610936565b61591461590e5f612c8e565b91610552565b14615b005761594a6159314261592b5f8701610936565b9061363c565b61594461593f5f850161492b565b6135e1565b90615851565b8061595e61595860ff614938565b91610552565b115f14615af2575060ff5b908161598861598261597d60018801611064565b6104ad565b916104ad565b11615995575b5050505050565b6159a282600186016152ae565b6159b76159ae5f61588f565b60018601614d9c565b6159d56159cf6159ca6020859401614902565b6104ad565b916104ad565b101580615acb575b6159e8575b8061598e565b615a036159f760018501611091565b936001600291016133c8565b615a21615a1a615a15600485906132f7565b61330d565b8590616d4a565b508190849091615a6f615a5d615a577f44fd32b677704ce68e7763897c49733b8f5289018ac60a5c926802d63759db4d93610746565b93610ff6565b93615a666103a2565b91829182611613565b0390a39190916002615aaa615aa47f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615abf615ab66103a2565b928392836152ce565b0390a35f8080806159e2565b50615ad860018401611091565b615aeb615ae56002611147565b91611147565b14156159dd565b615afb90615873565b615969565b50505050565b50505050565b606090565b60018060401b038111615b275760208091020190565b6108bd565b90615b3e615b3983615b11565b6116a8565b918252565b615b4d60806116a8565b90565b90615bb7615bae6003615b61615b43565b94615b78615b705f83016108f8565b5f8801614f21565b615b90615b8760018301610936565b60208801614745565b615ba8615b9f60028301610936565b60408801614745565b0161095d565b60608401614f24565b565b615bc290615b50565b90565b90615bcf8261078c565b615bd881615b2c565b92615be66020850191610790565b5f915b838310615bf65750505050565b60046020600192615c0685615bb9565b815201920192019190615be9565b615c1d90615bc5565b90565b615c37615c3c91615c2f615b0c565b506008610762565b615c14565b90565b615c6d90615c68615c63615c5c615c578460066132f7565b61330d565b3390616532565b613581565b615cc8565b565b5f7f43616e6e6f7420676f206f66666c696e65207768696c6520736c617368656400910152565b615ca3601f6020926109cd565b615cac81615c6f565b0190565b615cc59060208101905f818303910152615c96565b90565b615ce6615ce1615cda60038490610fb8565b3390611002565b614d7b565b90615cf360018301611091565b9182615d08615d026003611147565b91611147565b14615d8e57615d1c906001600491016133c8565b615d3a615d33615d2e600484906132f7565b61330d565b3390616d4a565b50903390916004615d74615d6e7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b93615d89615d806103a2565b928392836152ce565b0390a3565b615d966103a2565b62461bcd60e51b815280615dac60048201615cb0565b0390fd5b615db990615c3f565b565b909182615dcb81615dd293611d0f565b8093611705565b0190565b615de79060209493615dee93615dbb565b8092611d40565b0190565b9091615e0990615e006103a2565b93849384615dd6565b03902090565b9091615e1a92615df2565b90565b92615e42615e4a9392615e3d615e4f96615e35612784565b506009611ce3565b611cf9565b919091615e0f565b610936565b90565b615e5a614b0b565b50615e656001612593565b90565b615e729051611147565b90565b90565b615e8c615e87615e9192615e75565b610743565b610552565b90565b60207f6c00000000000000000000000000000000000000000000000000000000000000917f4f70657261746f72206e6f7420656c696769626c6520666f722072656d6f76615f8201520152565b615eee60216040926109cd565b615ef781615e94565b0190565b615f109060208101905f818303910152615ee1565b90565b15615f1a57565b615f226103a2565b62461bcd60e51b815280615f3860048201615efb565b0390fd5b90615fed615fe8615ff29333615f6d615f67615f62615f5d600786906113b3565b612593565b6103ed565b916103ed565b1480156160ab575b615f7e906154db565b615f9c615f97615f9060038490610fb8565b8690611002565b6147fe565b615fa860608201615e68565b615fbb615fb56003611147565b91611147565b03615ff5575b50615fe0615fd9615fd4600584906132f7565b61330d565b8590616d4a565b5060046132f7565b61330d565b616d4a565b50565b61607190616045616035616008856163cc565b61602f61602a602061602361601e5f860161492b565b6135e1565b9301614902565b614938565b906128ce565b61603f600a615e78565b906128ce565b6160505f8301613f0b565b61606261605c5f612c8e565b91610552565b119182616077575b5050615f13565b5f615fc1565b6160a291925061609661609c916160905f429201613f0b565b9061363c565b92610552565b91610552565b10155f8061606a565b50615f7e336160c96160c36160be614b0f565b6103ed565b916103ed565b149050615f75565b906160fb616100916160e1613b82565b506160f66160ee856163cc565b946003610fb8565b611002565b6147fe565b61610b5f8201613f0b565b61611d6161175f612c8e565b91610552565b146161585761614e6161495f6161426161549461613c83429201613f0b565b9061363c565b940161492b565b6135e1565b91610552565b1090565b50505f90565b61616f9061616a6164e4565b616171565b565b61617c816001612670565b616184614b0f565b906161b86161b27f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270093610ff6565b91610ff6565b916161c16103a2565b806161cb81610449565b0390a3565b6161d99061615e565b565b5f61621a616220936162123361620c6162066162016161fc60078a906113b3565b612593565b6103ed565b916103ed565b1461280b565b92600261225d565b01615653565b565b5f7f4e6f742072656769737465726564000000000000000000000000000000000000910152565b616256600e6020926109cd565b61625f81616222565b0190565b6162789060208101905f818303910152616249565b90565b1561628257565b61628a6103a2565b62461bcd60e51b8152806162a060048201616263565b0390fd5b6162e0336162da6162d47f00000000000000000000000000000000000000000000000000000000000000006103ed565b916103ed565b14612556565b6163066163016162fa6162f5600685906132f7565b61330d565b8490616d4a565b61627b565b61632461631d616318600484906132f7565b61330d565b8390616d4a565b50906163596163537f08bb93e5444209b15155078a13f6e341299d748d0c299f722c9cbc0723f0fe9e93610746565b91610ff6565b916163626103a2565b8061636c81610449565b0390a3565b906163be6163b55f616381612719565b94616398616390838301611037565b838801614753565b6163af6163a6838301611064565b60208801614761565b01612287565b60408401614f24565b565b6163c990616371565b90565b6163e36163e8916163db612764565b50600261225d565b6163c0565b6163f35f820161492b565b6164056163ff5f61588f565b916103b4565b1461644b575b61641760208201614902565b6164296164235f61490f565b916104ad565b14616432575b90565b61644661643d6115fb565b60208301614761565b61642f565b61645e616456610bfa565b5f8301614753565b61640b565b61646c90610fce565b90565b61648361647e616488926103e2565b610743565b610552565b90565b61649f61649a6164a492610552565b61264d565b610ef1565b90565b90565b906164dc6164d66164d16164cc5f6164e1966164c4613b82565b500194616463565b61646f565b61648b565b916164a7565b616e06565b90565b6164ec614b0f565b6165056164ff6164fa616bf8565b6103ed565b916103ed565b0361650c57565b61652e616517616bf8565b5f91829163118cdaa760e01b835260048301610cbb565b0390fd5b9061656461655e6165596165545f6165699661654c613b82565b500194616463565b61646f565b61648b565b916164a7565b616e69565b90565b61658b916165829161657c614b0b565b50616ec5565b90929192616f85565b90565b5f7f4f70657261746f7220697320736c617368656400000000000000000000000000910152565b6165c260136020926109cd565b6165cb8161658e565b0190565b6165e49060208101905f8183039101526165b5565b90565b156165ee57565b6165f66103a2565b62461bcd60e51b81528061660c600482016165cf565b0390fd5b9061662561662061662c92613310565b61331c565b8254612fca565b9055565b616639906103b4565b60018060401b03811461664c5760010190565b6128ba565b90565b61666861666361666d92616651565b610743565b6104ad565b90565b91602061669192949361668a60408201965f830190611117565b0190610555565b565b61669c90610fce565b90565b6166a890616693565b90565b6166b490610fea565b90565b6040906166e06166e794969593966166d660608401985f850190610cae565b6020830190610c13565b0190610c13565b565b949293919361670c61670761670060038990610fb8565b8790611002565b614d7b565b93616716876163cc565b9361674061672660018801611091565b6167396167336003611147565b91611147565b14156165e7565b61675e61675761675260058b906132f7565b61330d565b88906164aa565b50616833604061677060018901611091565b9661677d425f8b01612fe0565b6167a761678b8587906136b8565b61679d616797826136cc565b916136c6565b2060028b01616610565b6167bc6167b35f61490f565b60018b016152ae565b6167da60018a016167d46167cf82611037565b616630565b90614d9c565b6167e2613cb6565b50856167f66167f05f61490f565b916104ad565b145f14616ab75761680d5f995b60018b91016133c8565b8761682161681b6002611147565b91611147565b1480616a9b575b616a2d575b0161500f565b80616a09575b6169f3575b505085918591924261688261687c6168767f658918e3147f13dd068ec21437b4c25c21682a8dc2129348671ead000db3e7b994610746565b94610746565b94610ff6565b9461689761688e6103a2565b92839283616670565b0390a4806168ad6168a784611147565b91611147565b0361699d575b50506168bf600b612593565b6168d96168d36168ce5f6125bf565b6103ed565b916103ed565b036168e3575b5050565b6168fd6168f86168f3600b612593565b61669f565b6166ab565b9163d47853b691909261690f426135fd565b92813b15616998575f6169359161694082966169296103a2565b98899788968795614b4e565b8552600485016166b7565b03925af1908161696c575b50155f14616967576001616962575b5b5f806168df565b61695a565b61695b565b61698b905f3d8111616991575b61698381836108d1565b810190614b54565b5f61694b565b503d616979565b614b4a565b838391926169d46169ce7f228824b86c256469125f525ce18c6c2d0a9e133d13b8ec7a2c96a193b0c28a0993610746565b93610ff6565b936169e96169e06103a2565b928392836152ce565b0390a35f806168b3565b616a029188918890919261743a565b5f8061683e565b50616a15818390612d48565b616a27616a215f612c8e565b91610552565b11616839565b616a4a616a43616a3e8d60046132f7565b61330d565b8b906164aa565b508a8a616a80616a7a7fc9862c5f02eefbdcea01c207ae538e1d304dc93026870f48951e48a0f4c8470c93610746565b91610ff6565b91616a896103a2565b80616a9381610449565b0390a361682d565b5088616ab0616aaa6002611147565b91611147565b1415616828565b85616acb616ac56064616654565b916104ad565b105f14616ade5761680d6001995b616803565b61680d600199616af68d8d8b908b908a928c946170f4565b616ad9565b616b125f616b1792616b0b612784565b50016164a7565b6175f8565b90565b616b26616b2b9161091a565b612954565b90565b616b42616b3d616b4792610552565b610743565b6103e2565b90565b616b75616b70616b7f93616b6b5f616b7a95616b64614b0b565b50016164a7565b617666565b616b1a565b616b2e565b610fea565b90565b91906008616ba2910291616b9c60018060a01b038461292b565b9261292b565b9181191691161790565b9190616bc2616bbd616bca93610ff6565b61266d565b908354616b82565b9055565b616be091616bda614b0b565b91616bac565b565b616bf690616bf15f6001616bce565b617687565b565b616c00614b0b565b503390565b616c0e90610552565b5f198114616c1c5760010190565b6128ba565b616c2b90516103ed565b90565b93919293616c3a613a55565b50616c4e616c4985849061363c565b613a91565b92616c585f612c8e565b925b80616c6d616c6788610552565b91610552565b1015616cdb57616c91616c8a616c85600586906132f7565b61330d565b8290616b4a565b616c9d84828a916176e6565b616cb1575b50616cac90612caa565b616c5a565b616cac9194616ccf616cd492616cca8991849092613ab8565b613ad8565b616c05565b9390616ca2565b509450509150616cea82613a91565b92616cf45f612c8e565b5b80616d08616d0286610552565b91610552565b1015616d4457616d3f90616d3a616d28616d23868490613ab8565b616c21565b616d358891849092613ab8565b613ad8565b612caa565b616cf5565b50915050565b90616d7c616d76616d71616d6c5f616d8196616d64613b82565b500194616463565b61646f565b61648b565b916164a7565b61781e565b90565b90565b5f5260205f2090565b5490565b616d9d81616d90565b821015616db757616daf600191616d87565b910201905f90565b610778565b90815491600160401b831015616de75782616ddf916001616de595018155616d94565b90613328565b565b6108bd565b5490565b90616dfa90613310565b5f5260205260405f2090565b616e0e613b82565b50616e23616e1d828490616e69565b156104c0565b5f14616e6357616e59616e5e92616e45616e3e5f8501616d84565b8290616dbc565b6001616e525f8501616dec565b9301616df0565b612fe0565b600190565b50505f90565b616e87916001616e8292616e7b613b82565b5001616df0565b610936565b616e99616e935f612c8e565b91610552565b141590565b5f90565b90565b616eb9616eb4616ebe92616ea2565b610743565b610552565b90565b5f90565b919091616ed0614b0b565b50616ed9616e9e565b50616ee261334a565b50616eec836136cc565b616eff616ef96041616ea5565b91610552565b145f14616f4657616f3f9192616f1361334a565b50616f1c61334a565b50616f25616ec1565b506020810151606060408301519201515f1a90919261799d565b9192909190565b50616f505f6125bf565b90616f64616f5f6002946136cc565b61648b565b91929190565b60041115616f7457565b611124565b90616f8382616f6a565b565b80616f98616f925f616f79565b91616f79565b145f14616fa3575050565b80616fb7616fb16001616f79565b91616f79565b145f14616fda575f63f645eedf60e01b815280616fd660048201610449565b0390fd5b80616fee616fe86002616f79565b91616f79565b145f1461701c5761701861700183616b1a565b5f91829163fce698f760e01b835260048301610562565b0390fd5b61702f6170296003616f79565b91616f79565b146170375750565b617052905f9182916335e2f38360e21b835260048301610f01565b0390fd5b61706a61706561706f926112fc565b610743565b6104ad565b90565b61707e617084916103b4565b916103b4565b90039060018060401b03821161709657565b6128ba565b5f7f50726f746f636f6c2076696f6c6174696f6e207265706f727465640000000000910152565b6170cf601b6020926109cd565b6170d88161709b565b0190565b6170f19060208101905f8183039101526170c2565b90565b935050925061710c61710660c8617056565b916104ad565b1015617117575b5050565b617120426135fd565b61713e617139617132600c8590614836565b859061484c565b611037565b8061715161714b5f61588f565b916103b4565b149081156171d7575b50617166575b50617113565b61718590617180617179600c8590614836565b859061484c565b614d9c565b906171b96171b37f1e2909cf45d70cf003f334b73c93330ce7e572782dfc82fab79deb8855a7c79193610746565b91610ff6565b916171c26103a2565b806171cc816170dc565b0390a35f8080617160565b6171e2915082617072565b6171fb6171f56171f0610f6a565b6103b4565b916103b4565b10155f61715a565b90565b61721a61721561721f92617203565b610743565b610552565b90565b90929192617237617232826116e4565b6116a8565b9381855260208501908284011161725357617251926109d6565b565b6116e0565b9080601f830112156172765781602061727393519101617222565b90565b6105ad565b90505190617288826106f3565b565b9190916040818403126172db576172a160406116a8565b925f8201519160018060401b0383116172d6576172c3826172cf948301617258565b5f86015260200161727b565b6020830152565b6116dc565b6116d8565b9291906172f46172ef826116bd565b6116a8565b93818552602080860192028101918383116173495781905b83821061731a575050505050565b815160018060401b03811161734457602091617339878493870161728a565b81520191019061730c565b6105ad565b6105b5565b9080601f8301121561736c57816020617369935191016172e0565b90565b6105ad565b9060208282031261739f575f82015160018060401b03811161739a57617397920161734e565b90565b6103b0565b6103ac565b60209181520190565b91906173c7816173c0816173cc956173a4565b8095611705565b6108b3565b0190565b90916173e79260208301925f8185039101526173ad565b90565b6173f4603261153d565b90565b949391606091617438946174236174309361741960808b01945f8c0190610c13565b60208a0190610cae565b8782036040890152610e18565b940190610555565b565b91617446818590612d48565b6174586174525f612c8e565b91610552565b146175f257617468818590612d48565b61747c61747661c350617206565b91610552565b116175ec575f61748a6139dc565b9461749430613ce5565b6174b66331e3bd1b9492946174c16174aa6103a2565b96879586948594614b4e565b8452600484016173d0565b03915afa80915f926175c8575b50155f146175bf575060016175ba575b6174e783610d87565b6175006174fa6174f56173ea565b610552565b91610552565b115f146175ac5761750f6173ea565b5b61751930613ce5565b906365a6936e93929490823b156175a7575f9461755486926175499461753d6103a2565b998a9889978896614b4e565b8652600486016173f7565b03925af1908161757b575b50155f14617576576001617571575b5b565b61756e565b61756f565b61759a905f3d81116175a0575b61759281836108d1565b810190614b54565b5f61755f565b503d617588565b614b4a565b6175b583610d87565b617510565b505050565b909250916174de565b6175e59192503d805f833e6175dd81836108d1565b810190617371565b905f6174ce565b50505050565b50505050565b5f61760c91617605612784565b5001616dec565b90565b5f5260205f2090565b61762181616dec565b82101561763b5761763360019161760f565b910201905f90565b610778565b6176509060086176559302610c6a565b61109e565b90565b906176639154617640565b90565b617684915f61767e9261767761334a565b5001617618565b90617658565b90565b6176905f612593565b61769a825f612670565b906176ce6176c87f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610ff6565b91610ff6565b916176d76103a2565b806176e181610449565b0390a3565b6176ee613b82565b50617716617710617709617704600685906132f7565b61330d565b8490616532565b156104c0565b6177b8576177369161772c617731926003610fb8565b611002565b6147fe565b6177415f8201613f0b565b61775361774d5f612c8e565b91610552565b148015617792575b61778c5761778161777b617787926177755f429201613f0b565b9061363c565b92610552565b91610552565b101590565b50505f90565b5061779f60608201615e68565b6177b26177ac6003611147565b91611147565b1461775b565b5050505f90565b6177d36177ce6177d8926155a5565b610743565b610552565b90565b634e487b7160e01b5f52603160045260245ffd5b6177f881616d90565b80156178195760019003906178166178108383616d94565b9061334e565b55565b6177db565b617826613b82565b5061783d617838600183018490616df0565b610936565b908161785161784b5f612c8e565b91610552565b14155f1461791d576178cf9260016178ca92846178785f96617872856177bf565b9061363c565b617895617886888501616dec565b61788f866177bf565b9061363c565b816178a86178a283610552565b91610552565b036178d4575b5050506178c46178bf868301616d84565b6177ef565b01616df0565b612995565b600190565b617915926179076178f36178ed617910948c8901617618565b90617658565b9361790185918c8901617618565b90613328565b91858501616df0565b612fe0565b5f80806178ae565b5050505f90565b90565b61793b61793661794092617924565b610743565b610552565b90565b61797861797f9461796e606094989795617964608086019a5f870190610ef4565b6020850190611117565b6040830190610ef4565b0190610ef4565b565b61799561799061799a926125a0565b61264d565b610ef1565b90565b9392936179a8614b0b565b506179b1616e9e565b506179ba61334a565b506179c485616b1a565b6179ec6179e66fa2a8918ca85bafe22016d0b997e4df60600160ff1b03617927565b91610552565b11617a795790617a0f602094955f94939293617a066103a2565b94859485617943565b838052039060015afa15617a7457617a275f5161264d565b80617a42617a3c617a375f6125bf565b6103ed565b916103ed565b14617a58575f91617a525f617981565b91929190565b50617a625f6125bf565b600191617a6e5f617981565b91929190565b614b86565b505050617a855f6125bf565b906003929192919056fea164736f6c634300081a000a","sourceMap":"6415:38701:193:-:0;;;;;;;;;-1:-1:-1;6415:38701:193;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;11660:59::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;:::-;;;;6415:38701;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;7851:61::-;7903:9;;;:::i;:::-;7851:61;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;12224:30::-;;;;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;14180:52::-;14223:9;;;:::i;:::-;14180:52;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;8133:41::-;;;:::o;6415:38701::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;12352:53::-;12398:7;;;:::i;:::-;12352:53;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;10898:74::-;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;6415:38701::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;6415:38701:193;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;39843:43::-;39883:3;;;:::i;:::-;39843:43;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;11530:47::-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;12045:35::-;;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;32979:51::-;33028:2;;;:::i;:::-;32979:51;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;7980:55::-;8034:1;;;:::i;:::-;7980:55;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;33154:51::-;33203:2;;;:::i;:::-;33154:51;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;11816:85::-;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;12131:29::-;;;;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;10758:58::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;8447:189::-;8492:144;8447:189;:::o;:::-;;;:::i;:::-;;:::o;6415:38701::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;30254:263::-;30478:24;:32;30254:263;30336:53;30344:10;:24;;30358:10;30344:24;:::i;:::-;;;:::i;:::-;;30336:53;:::i;:::-;30399:69;30407:24;;:13;30421:9;30407:24;;:::i;:::-;;:::i;:::-;:38;;30435:10;30443:1;30435:10;:::i;:::-;30407:38;:::i;:::-;;;:::i;:::-;;30399:69;:::i;:::-;30478:13;;:24;:::i;:::-;:32;:::i;:::-;30254:263::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;37647:147::-;37766:21;37647:147;37725:22;;:::i;:::-;37777:9;37766:21;:::i;:::-;37759:28;:::o;6415:38701::-;;;:::o;36547:176::-;36667:35;:49;36547:176;36667:25;:49;36547:176;36641:7;;:::i;:::-;36667:14;;:25;:::i;:::-;:35;:::i;:::-;:49;;:::i;:::-;36660:56;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;6415:38701:193;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;33980:640::-;;;;;34097:68;34105:10;:38;;34119:24;;:13;34133:9;34119:24;;:::i;:::-;;:::i;:::-;34105:38;:::i;:::-;;;:::i;:::-;;34097:68;:::i;:::-;34175:77;34183:18;:11;;:18;;:::i;:::-;:44;;34205:22;;:::i;:::-;34183:44;:::i;:::-;;;:::i;:::-;;;34175:77;:::i;:::-;34262:32;;34269:25;:14;34284:9;34269:25;;:::i;:::-;34262:32;:::i;:::-;34309:13;34321:1;34309:13;:::i;:::-;34348:3;34324:1;:22;;34328:18;:11;;:18;;:::i;:::-;34324:22;:::i;:::-;;;:::i;:::-;;;;;34348:3;34381:11;34367:85;34375:33;:26;34381:19;:14;:11;;34393:1;34381:14;;:::i;:::-;:19;;;;;:::i;:::-;34375:26;;:::i;:::-;:33;;:::i;:::-;:59;;34412:22;;:::i;:::-;34375:59;:::i;:::-;;;:::i;:::-;;;34367:85;:::i;:::-;34466:77;34474:23;;:14;:11;;34486:1;34474:14;;:::i;:::-;:23;;:::i;:::-;:50;;34501:23;;:14;:11;;34513:1;34501:14;;:::i;:::-;:23;;:::i;:::-;34474:50;:::i;:::-;;;:::i;:::-;;;34466:77;:::i;:::-;34557:46;:30;:25;:14;34572:9;34557:25;;:::i;:::-;:30;:::i;:::-;34588:14;:11;;34600:1;34588:14;;:::i;:::-;34557:46;;:::i;:::-;34348:3;:::i;:::-;34309:13;;34324:22;;;;;;33980:640::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;30760:1036::-;30850:53;30858:10;:24;;30872:10;30858:24;:::i;:::-;;;:::i;:::-;;30850:53;:::i;:::-;30913:47;30921:8;:22;;30933:10;30941:1;30933:10;:::i;:::-;30921:22;:::i;:::-;;;:::i;:::-;;;30913:47;:::i;:::-;30970:76;30978:45;:35;:31;:20;30999:9;30978:31;;:::i;:::-;:35;:::i;:::-;31014:8;30978:45;;:::i;:::-;30970:76;:::i;:::-;31439:42;;31446:35;:25;:14;31461:9;31446:25;;:::i;:::-;31472:8;31446:35;;:::i;:::-;31439:42;:::i;:::-;31672:63;31717:18;31672:42;:35;:25;:14;31687:9;31672:25;;:::i;:::-;31698:8;31672:35;;:::i;:::-;:42;:63;:::i;:::-;31780:8;31750:39;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;30760:1036::o;1500:62:2:-;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;34923:188:193:-;35078:26;34923:188;35078:26;;:::i;:::-;34923:188::o;:::-;;;;:::i;:::-;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;7140:166;;7298:1;7140:166;;;;;;;7200:88;7208:52;:40;:31;15071:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;14803:1133;;;;;;;;;;15100:9;:27;;15112:15;15100:27;:::i;:::-;;;:::i;:::-;;15096:95;;15205:27;:15;:27;15223:9;15205:27;:::i;:::-;;;:::i;:::-;:47;;15235:17;;:::i;:::-;15205:47;:::i;:::-;;;:::i;:::-;;15201:135;;15921:7;15418:18;;15759:25;15794:50;15418:18;;15390:235;15418:18;15390:235;15418:18;15759:25;15418:18;;;15566;15418;;:::i;:::-;15454:10;;15482:9;15509:11;15538:10;15576:7;15566:18;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;15602:9;15390:235;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15367:268;;;;:::i;:::-;;;:::i;:::-;;15672:58;15701:16;15672:58;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15662:69;;;;:::i;:::-;;;:::i;:::-;;15774:9;15759:25;:::i;:::-;;;:::i;:::-;15802:20;;15812:10;15802:20;:::i;:::-;;;:::i;:::-;;15794:50;:::i;:::-;15884:11;15897:10;15909;15921:7;;;;:::i;:::-;14803:1133::o;15201:135::-;15301:23;15308:15;15301:23;:::i;:::-;15275:50;;;;;;;;;;;;;;;:::i;:::-;;;;15096:95;15167:23;15174:15;15167:23;:::i;:::-;15136:55;;;;;;;;;;;;;;;:::i;:::-;;;;14803:1133;;;;;;;;;;;:::i;:::-;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;35274:160::-;;35392:35;35274:160;35348:25;;:::i;:::-;35403:7;;35392:35;;;;:::i;:::-;35385:42;:::o;43895:136::-;43991:31;:24;:33;43895:136;43965:7;;:::i;:::-;43991:13;;:24;:::i;:::-;:31;:::i;:::-;:33;:::i;:::-;43984:40;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;37041:359::-;;37119:16;;:::i;:::-;37163;:36;:34;:27;:16;37180:9;37163:27;;:::i;:::-;:34;:::i;:::-;:36;:::i;:::-;37249:5;37235:20;37249:5;37235:20;:::i;:::-;37282:1;37270:13;37282:1;37270:13;:::i;:::-;37296:3;37285:1;:9;;37289:5;37285:9;:::i;:::-;;;:::i;:::-;;;;;37296:3;37327:16;37315:45;37327:33;:30;:27;:16;37344:9;37327:27;;:::i;:::-;:30;:::i;:::-;37358:1;37327:33;;:::i;:::-;37315:45;:6;37322:1;;37315:45;;;:::i;:::-;;:::i;:::-;37296:3;:::i;:::-;37270:13;;37285:9;;;;;37380:13;:::o;6415:38701::-;;;:::o;35990:261::-;;36076:4;;:::i;:::-;36099:14;:42;;:35;:25;:14;36114:9;36099:25;;:::i;:::-;36125:8;36099:35;;:::i;:::-;:42;;:::i;:::-;:64;;36145:18;36099:64;:::i;:::-;;;:::i;:::-;;:145;;;;;35990:261;36092:152;;;:::o;36099:145::-;36179:42;:14;;:42;:14;:25;:35;:14;;:25;:::i;:::-;:35;:::i;:::-;:42;;:::i;:::-;:65;;36225:19;36179:65;:::i;:::-;;;:::i;:::-;;36099:145;;;;40097:200;40231:59;40097:200;40178:26;;:::i;:::-;40262:9;40273:1;40276:13;40231:59;40276:13;;:::i;:::-;40231:59;;:::i;:::-;;;:::i;:::-;40216:74;40097:200;:::o;7140:166::-;;7298:1;7140:166;;;;7200:88;7208:52;:40;:31;16286:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;16072:320::-;;16377:7;16072:320;;;;16353:10;16365;16377:7;;;;:::i;:::-;16072:320::o;:::-;;;;;;;;:::i;:::-;:::o;32433:178::-;;32554:40;:31;:50;32433:178;32531:4;;:::i;:::-;32554:20;;:31;:::i;:::-;:40;:::i;:::-;:50;:::i;:::-;32547:57;:::o;6415:38701::-;;;:::o;36307:173::-;36431:35;:42;36307:173;36431:25;:42;36307:173;36402:10;;:::i;:::-;36431:14;;:25;:::i;:::-;:35;:::i;:::-;:42;;:::i;:::-;36424:49;:::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;20231:2843::-;;;;;20414:53;20422:10;:27;;20436:13;20444:4;20436:13;:::i;:::-;20422:27;:::i;:::-;;;:::i;:::-;;20414:53;:::i;:::-;20478:66;20519:25;:14;20534:9;20519:25;;:::i;:::-;20478:66;:::i;:::-;20651:8;20637:23;20651:8;20637:23;:::i;:::-;20687:1;20675:13;20687:1;20675:13;:::i;:::-;20704:3;20690:1;:12;;20694:8;20690:12;:::i;:::-;;;:::i;:::-;;;;;20704:3;20755:5;20723:47;20749:20;20755:13;:8;:5;20761:1;20755:8;;:::i;:::-;;:13;;20749:20;:::i;:::-;20739:31;;;;:::i;:::-;;;:::i;:::-;;20723:47;:10;20734:1;;20723:47;;;:::i;:::-;;:::i;:::-;20704:3;:::i;:::-;20675:13;;20690:12;;;;;;;20813:18;:11;:18;:::i;:::-;:22;;20834:1;20813:22;:::i;:::-;;;:::i;:::-;;20914:26;;;:::i;:::-;20954:14;;20950:237;;20670:111;21267:13;21279:1;21267:13;:::i;:::-;21296:3;21282:1;:12;;21286:8;21282:12;:::i;:::-;;;:::i;:::-;;;;;21328:4;21371:5;21449:14;21445:737;;21296:3;22244:5;;;;;21296:3;22244:5;22240:198;;21296:3;;;;;:::i;:::-;21267:13;;22240:198;22320:5;22303:13;:8;22269:33;:48;22320:5;22269:23;22320:14;;:8;22269:65;22320:5;22326:1;22320:8;;:::i;:::-;;:14;;:::i;:::-;22269:12;;:23;:::i;:::-;:33;:::i;:::-;22303:5;22309:1;22303:8;;:::i;:::-;;:13;;22269:48;;:::i;:::-;:65;:::i;:::-;22372:9;;22383:8;22393:5;22408:14;;:8;22393:13;:8;:5;22399:1;22393:8;;:::i;:::-;;:13;;22408:5;22414:1;22408:8;;:::i;:::-;;:14;;:::i;:::-;22357:66;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;22240:198;;;;;21445:737;21500:1;;;;;;21488:13;21500:1;21488:13;:::i;:::-;21527:3;21503:1;:22;;21507:18;:11;:18;:::i;:::-;21503:22;:::i;:::-;;;:::i;:::-;;;;;21558:13;;:10;;:13;:::i;:::-;;:::i;:::-;:29;;21575:12;;:9;21585:1;21575:12;;:::i;:::-;;:::i;:::-;21558:29;:::i;:::-;;;:::i;:::-;;21554:433;;21527:3;;;:::i;:::-;21488:13;;21554:433;21635:4;;;;;;;21296:3;21635:4;;;;;;21669:5;;:14;;:8;:5;21675:1;21669:8;;:::i;:::-;;:14;;:::i;:::-;:40;;21686:23;;:14;:11;21698:1;21686:14;;:::i;:::-;;:23;;:::i;:::-;21669:40;:::i;:::-;;;:::i;:::-;;:84;;;;;;;21554:433;21665:269;;;;;;21554:433;22094:18;21959:5;21483:522;22094:18;;:::i;:::-;22090:78;;21483:522;21445:737;;;;;;;22090:78;22144:5;;22090:78;;21665:269;21806:9;;;21817:8;21827:13;:8;:5;21833:1;21827:8;;:::i;:::-;;:13;;21790:74;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;22094:18;21902:5;21665:269;;;;;21669:84;21713:40;:5;;;21730:14;21713:40;:5;:14;;:8;21730:23;21713:5;21730:23;21713:5;:8;:::i;:::-;;:14;;:::i;:::-;21730:11;:14;:::i;:::-;;:23;;:::i;:::-;21713:40;:::i;:::-;;;:::i;:::-;;21669:84;;;;;;21503:22;;;;;;;21296:3;21503:22;;;22094:18;21503:22;;;;21282:12;;;;;;;;;;22509:13;22521:1;22509:13;:::i;:::-;22504:564;22548:3;22524:1;:22;;22528:18;:11;:18;:::i;:::-;22524:22;:::i;:::-;;;:::i;:::-;;;;;22571:24;22572:23;;:14;:11;22584:1;22572:14;;:::i;:::-;;:23;;:::i;:::-;22571:24;;:::i;:::-;22567:38;;22638:37;22648:26;22654:19;:14;:11;22666:1;22654:14;;:::i;:::-;;:19;22648:26;:::i;:::-;22638:37;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;22702:5;;22738:1;22726:13;22738:1;22726:13;:::i;:::-;22764:3;22741:1;:21;;22745:17;:10;:17;:::i;:::-;22741:21;:::i;:::-;;;:::i;:::-;;;;;22791:13;;:10;22802:1;22791:13;;:::i;:::-;;:::i;:::-;:24;;22808:7;22791:24;:::i;:::-;;;:::i;:::-;;22787:110;;22764:3;;;:::i;:::-;22726:13;;22787:110;22847:4;;;;;22548:3;22847:4;;22928:6;22847:4;22721:190;22928:6;;:::i;:::-;22924:134;;22721:190;22509:13;22548:3;:::i;:::-;22509:13;;;;22924:134;22975:9;22986:8;22996:19;:14;:11;23008:1;22996:14;;:::i;:::-;;:19;22959:84;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;22924:134;;22741:21;;;;;22548:3;22741:21;;22928:6;22741:21;;;22567:38;22597:8;;22548:3;22597:8;;;22524:22;;;;;;20231:2843::o;20950:237::-;21010:11;;;;20996:33;21010:18;:11;;;;;;:18;:::i;:::-;20996:33;:::i;:::-;21060:1;21048:13;21060:1;21048:13;:::i;:::-;21087:3;21063:1;:22;;21067:18;:11;:18;:::i;:::-;21063:22;:::i;:::-;;;:::i;:::-;;;;;21087:3;21141:11;21110:52;21125:37;21135:26;21141:19;:14;:11;21153:1;21141:14;;:::i;:::-;;:19;21135:26;:::i;:::-;21125:37;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;21110:52;:9;21120:1;;21110:52;;;:::i;:::-;;:::i;:::-;21087:3;:::i;:::-;21048:13;;21063:22;;;;;;;;;;20950:237;;1500:62:2;;;:::i;:::-;1554:1;;:::i;:::-;1500:62::o;2293:101::-;2376:10;;2384:1;2376:10;:::i;:::-;;:::i;:::-;2293:101::o;:::-;;;:::i;:::-;:::o;6415:38701:193:-;;;;:::i;:::-;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;36769:211::-;36931:42;36769:211;36938:25;:35;36769:211;36895:20;;:::i;:::-;36938:14;;:25;:::i;:::-;:35;:::i;:::-;36931:42;:::i;:::-;;:::o;6415:38701::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;44950:164::-;45068:39;44950:164;45068:29;:39;44950:164;45043:6;;:::i;:::-;45068:18;;:29;:::i;:::-;:39;:::i;:::-;;:::i;:::-;45061:46;:::o;2244:229:3:-;2313:12;;:::i;:::-;2339:14;;:::i;:::-;:24;;2357:6;2339:24;:::i;:::-;;;:::i;:::-;;2335:96;;2459:6;;;:::i;:::-;2244:229::o;2335:96::-;2386:34;2413:6;2386:34;;;;;;;;;;;;;:::i;:::-;;;;37448:142:193;37547:34;:27;:36;37448:142;37521:7;;:::i;:::-;37547:16;;:27;:::i;:::-;:34;:::i;:::-;:36;:::i;:::-;37540:43;:::o;6415:38701::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;40660:780::-;;;;;40824:26;;:::i;:::-;40852:13;;;:::i;:::-;40924:9;40913:21;40924:9;40913:21;:::i;:::-;40952:13;:33;:31;:24;:13;40966:9;40952:24;;:::i;:::-;:31;:::i;:::-;:33;:::i;:::-;41000:6;:16;;:6;:16;;:::i;:::-;:21;;41020:1;41000:21;:::i;:::-;;;:::i;:::-;;:35;;;;40660:780;41000:54;;;;40660:780;40996:117;;41143:52;41151:6;41170:25;41178:16;;41143:24;41151:15;;41372:61;41151:6;;;:15;;:::i;:::-;41143:24;:::i;:::-;41178:6;:16;;:::i;:::-;41170:25;:::i;:::-;41143:52;;:::i;:::-;41225:5;;:21;;41233:13;;:::i;:::-;41225:21;:::i;:::-;;;:::i;:::-;;:45;;;;41249:13;;;:::i;:::-;41225:45;41294:18;:6;41303:9;41294:18;;:::i;:::-;:26;;41315:5;41294:26;:::i;:::-;;;:::i;:::-;;:55;;;;41323:5;;41294:55;41399:9;41410:6;41418:3;41423:9;41372:61;;:::i;:::-;40660:780;:::o;41294:55::-;41331:18;:6;;:18;:::i;:::-;41294:55;;41225:45;;;40996:117;41092:1;;;;;41078:16;;41092:1;41078:16;:::i;:::-;;:::i;:::-;41070:32;;:::o;41000:54::-;41039:6;;:15;;41049:5;41039:15;:::i;:::-;;;:::i;:::-;;;41000:54;;:35;41025:5;;:10;;41034:1;41025:10;:::i;:::-;;;:::i;:::-;;41000:35;;1500:62:2;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;34670:182:193:-;34822:23;34670:182;34822:23;;:::i;:::-;34670:182::o;:::-;;;;:::i;:::-;:::o;6415:38701::-;;;:::o;1638:85:2:-;1684:7;;:::i;:::-;1710:6;;;;:::i;:::-;1703:13;:::o;6415:38701:193:-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;:::i;:::-;;;;;;;;26227:224;;;;;26329:13;26341:1;26329:13;:::i;:::-;26366:3;26344:1;:20;;26348:16;:9;;:16;;:::i;:::-;26344:20;:::i;:::-;;;:::i;:::-;;;;;26385:24;:4;:24;:::i;:::-;;;26410:9;26421:12;;:9;;26431:1;26421:12;;:::i;:::-;;:::i;:::-;26385:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;26366:3;26385:49;;;26366:3;;;:::i;:::-;26329:13;;26385:49;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;26344:20::-;;;;;;26227:224::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;44113:757::-;44228:60;44236:10;:28;;44250:14;;;:::i;:::-;44236:28;:::i;:::-;;;:::i;:::-;;44228:60;:::i;:::-;44481:72;44489:43;:33;:24;:13;44503:9;44489:24;;:::i;:::-;:33;:::i;:::-;44523:8;44489:43;;:::i;:::-;44481:72;:::i;:::-;44639:33;44564:65;44594:35;:25;:14;44609:9;44594:25;;:::i;:::-;44620:8;44594:35;;:::i;:::-;44564:65;:::i;:::-;44639:12;44654:18;44639:5;:12;:33;:::i;:::-;44682:44;:34;:27;:16;44699:9;44682:27;;:::i;:::-;:34;:::i;:::-;44717:8;44682:44;;:::i;:::-;;44736:65;44778:23;44785:15;44778:23;:::i;:::-;44736:39;:29;:18;44755:9;44736:29;;:::i;:::-;44766:8;44736:39;;:::i;:::-;:65;:::i;:::-;44846:8;44856:6;;44817:46;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;44113:757::o;6415:38701::-;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::o;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;33212:683::-;33742:146;33212:683;33786:92;33212:683;;33786:92;;33742:30;:25;33786:92;33212:683;33504:70;33512:18;:11;33786:92;33212:683;;;;33426:68;33434:10;:38;;33448:24;;:13;33462:9;33448:24;;:::i;:::-;;:::i;:::-;33434:38;:::i;:::-;;;:::i;:::-;;33426:68;:::i;:::-;33512:11;:::i;:::-;:18;;:::i;:::-;:44;;33534:22;;:::i;:::-;33512:44;:::i;:::-;;;:::i;:::-;;;33504:70;:::i;:::-;33584:47;33592:8;:20;;33604:8;33592:20;:::i;:::-;;;:::i;:::-;;;33584:47;:::i;:::-;33641:90;33649:32;:25;:14;33664:9;33649:25;;:::i;:::-;:32;:::i;:::-;:57;;33684:22;;:::i;:::-;33649:57;:::i;:::-;;;:::i;:::-;;33641:90;:::i;:::-;33742:14;:25;:::i;:::-;:30;:::i;:::-;33811:4;;33827:8;33847;33867;33786:92;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;33742:146;:::i;:::-;33212:683::o;7140:166::-;7298:1;7140:166;7200:88;7208:52;:40;:31;28053:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;27976:884::-;28074:67;28104:37;:25;:14;28119:9;28104:25;;:::i;:::-;28130:10;28104:37;;:::i;:::-;28074:67;:::i;:::-;28175:5;:12;;:5;:12;;:::i;:::-;28201:9;;:31;;28214:18;28201:31;:::i;:::-;;;:::i;:::-;;28197:102;;28395:9;:31;;28408:18;28395:31;:::i;:::-;;;:::i;:::-;;:67;;;;27976:884;28391:104;;28639:21;28610:19;28595:34;28610:19;28595:12;:5;:12;:34;:::i;:::-;28639:17;:21;28659:1;28639:21;:::i;:::-;:5;:17;:21;:::i;:::-;28670:43;:31;:27;:16;28687:9;28670:27;;:::i;:::-;:31;:::i;:::-;28702:10;28670:43;;:::i;:::-;;28748:9;28759:10;28729:41;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;28810:10;;28822:9;28833:19;;28785:68;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;27976:884::o;28391:104::-;28478:7;;;:::o;28395:67::-;28430:9;;:32;;28443:19;28430:32;:::i;:::-;;;:::i;:::-;;28395:67;;28197:102;28248:40;;:::i;:::-;6415:38701;;;28248:40;;;;;;;;:::i;:::-;;;;27976:884;;;;:::i;:::-;:::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;29569:585::-;29676:10;:24;;29690:10;29676:24;:::i;:::-;;;:::i;:::-;;:66;;;;29569:585;29668:93;;;:::i;:::-;29772:45;29780:8;:14;;29792:2;29780:14;:::i;:::-;;;:::i;:::-;;;29772:45;:::i;:::-;29847:50;29855:9;:14;;29868:1;29855:14;:::i;:::-;;;:::i;:::-;;;29847:50;:::i;:::-;29908:169;29978:8;29938:139;29999:9;29938:139;30025:41;;:27;:16;30042:9;30025:27;;:::i;:::-;:41;;:::i;:::-;29938:139;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;29908:27;:16;29925:9;29908:27;;:::i;:::-;:169;:::i;:::-;30127:8;30137:9;30093:54;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;29569:585::o;29676:66::-;29704:10;29668:93;29704:10;:38;;29718:24;;:13;29732:9;29718:24;;:::i;:::-;;:::i;:::-;29704:38;:::i;:::-;;;:::i;:::-;;29676:66;;;;6415:38701;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;24826:1348::-;24910:65;24940:35;:25;:14;24955:9;24940:25;;:::i;:::-;24966:8;24940:35;;:::i;:::-;24910:65;:::i;:::-;25028:9;25017:21;25028:9;25017:21;:::i;:::-;25138:12;;:5;:12;;:::i;:::-;:34;;25154:18;25138:34;:::i;:::-;;;:::i;:::-;;25134:47;;25195:19;;:5;:19;;:::i;:::-;:24;;25218:1;25195:24;:::i;:::-;;;:::i;:::-;;25191:92;;25385:25;25311:37;:15;25329:19;;:5;:19;;:::i;:::-;25311:37;;:::i;:::-;25385:25;25395:15;;:6;:15;;:::i;:::-;25385:25;:::i;:::-;;;:::i;:::-;25511:16;:34;;25530:15;25511:34;:::i;:::-;;;:::i;:::-;;:78;;;;25548:15;;25511:78;25604:11;;:31;;25618:17;;:5;:17;;:::i;:::-;25604:31;:::i;:::-;;;:::i;:::-;;25600:568;;25511:78;24826:1348;;;;;:::o;25600:568::-;25651:31;25671:11;25651:17;:5;:17;:31;:::i;:::-;25696:26;;25721:1;25696:26;:::i;:::-;:22;:5;:22;:26;:::i;:::-;25741:31;;25756:16;;25741:11;25756:6;:16;;:::i;:::-;25741:31;:::i;:::-;;;:::i;:::-;;;:69;;;25600:568;25737:421;;25600:568;;;;25737:421;25883:33;25853:12;;:5;:12;;:::i;:::-;25898:18;25883:12;25898:18;25883:5;:12;:33;:::i;:::-;25934:44;:34;:27;:16;25951:9;25934:27;;:::i;:::-;:34;:::i;:::-;25969:8;25934:44;;:::i;:::-;;26022:9;26033:8;;26043:11;26002:53;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;26103:8;26113:9;26124:18;;26078:65;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;25737:421;;;;;;25741:69;25776:5;:12;;:5;:12;;:::i;:::-;:34;;25792:18;25776:34;:::i;:::-;;;:::i;:::-;;;25741:69;;25511:78;25566:23;25572:16;25566:23;:::i;:::-;25511:78;;25191:92;25235:7;;;;:::o;25134:47::-;25174:7;;;;:::o;6415:38701::-;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;:::o;38174:156::-;38298:25;38291:32;38174:156;38254:25;;:::i;:::-;38298:14;;:25;:::i;:::-;38291:32;:::i;:::-;;:::o;7140:166::-;7298:1;7140:166;7200:88;7208:52;:40;:31;27342:9;7208:20;:31;:::i;:::-;:40;:::i;:::-;7249:10;7208:52;;:::i;:::-;7200:88;:::i;:::-;7298:1;:::i;:::-;7140:166::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;27264:514::-;27363:67;27393:37;:25;:14;27408:9;27393:25;;:::i;:::-;27419:10;27393:37;;:::i;:::-;27363:67;:::i;:::-;27464:5;:12;;:5;:12;;:::i;:::-;27490:9;;:31;;27503:18;27490:31;:::i;:::-;;;:::i;:::-;;27486:103;;27599:33;27614:18;27599:12;27614:18;27599:5;:12;:33;:::i;:::-;27642:46;:34;:27;:16;27659:9;27642:27;;:::i;:::-;:34;:::i;:::-;27677:10;27642:46;;:::i;:::-;;27729:10;;27741:9;27752:18;;27704:67;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;27264:514::o;27486:103::-;27537:41;;:::i;:::-;6415:38701;;;27537:41;;;;;;;;:::i;:::-;;;;27264:514;;;;:::i;:::-;:::o;6415:38701::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;:::i;:::-;;:::o;37851:264::-;;38063:33;:45;37851:264;;38063:23;:45;37851:264;38033:7;;:::i;:::-;38063:12;;:23;:::i;:::-;:33;:::i;:::-;38097:10;;38063:45;;:::i;:::-;;:::i;:::-;38056:52;:::o;1232:99:3:-;1285:7;;:::i;:::-;1311:13;;;;:::i;:::-;1304:20;:::o;6415:38701:193:-;;;;;:::i;:::-;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;42932:886;;43767:34;:27;:44;42932:886;43027:10;:38;;43041:24;;:13;43055:9;43041:24;;:::i;:::-;;:::i;:::-;43027:38;:::i;:::-;;;:::i;:::-;;:63;;;;42932:886;43019:90;;;:::i;:::-;43120:64;43149:35;:25;:14;43164:9;43149:25;;:::i;:::-;43175:8;43149:35;;:::i;:::-;43120:64;:::i;:::-;43294:12;;:5;:12;;:::i;:::-;:34;;43310:18;43294:34;:::i;:::-;;;:::i;:::-;;43290:416;;42932:886;43716:13;:41;:31;:24;:13;43730:9;43716:24;;:::i;:::-;:31;:::i;:::-;43748:8;43716:41;;:::i;:::-;;43767:16;:27;:::i;:::-;:34;:::i;:::-;:44;:::i;:::-;;42932:886::o;43290:416::-;43514:181;43387:9;43443:57;:52;43376:21;43387:9;43376:21;:::i;:::-;43470:25;43478:16;;43443:24;43451:15;;:6;:15;;:::i;:::-;43443:24;:::i;:::-;43478:6;:16;;:::i;:::-;43470:25;:::i;:::-;43443:52;;:::i;:::-;:57;43498:2;43443:57;:::i;:::-;;;:::i;:::-;43539:19;;:5;:19;;:::i;:::-;:23;;43561:1;43539:23;:::i;:::-;;;:::i;:::-;;:89;;;;43290:416;43514:181;;;:::i;:::-;43290:416;;;43539:89;43566:62;:15;;;:37;:62;:15;43584:19;;43566:15;43584:5;:19;;:::i;:::-;43566:37;;:::i;:::-;43607:21;43566:62;:::i;:::-;;;:::i;:::-;;;43539:89;;;;43027:63;43069:10;43019:90;43069:10;:21;;43083:7;;:::i;:::-;43069:21;:::i;:::-;;;:::i;:::-;;43027:63;;;;38403:374;;38607:35;38578:64;38403:374;38499:4;;:::i;:::-;38558:9;38607:25;38547:21;38558:9;38547:21;:::i;:::-;38607:14;;:25;:::i;:::-;:35;:::i;:::-;38578:64;:::i;:::-;38657:19;;:5;:19;;:::i;:::-;:24;;38680:1;38657:24;:::i;:::-;;;:::i;:::-;;38653:42;;38713:57;38755:15;;38714:37;38713:57;38714:15;38732:19;38714:15;;38732:5;:19;;:::i;:::-;38714:37;;:::i;:::-;38755:6;:15;;:::i;:::-;38713:57;:::i;:::-;;;:::i;:::-;;38706:64;:::o;38653:42::-;38690:5;;;38683:12;:::o;1500:62:2:-;1554:1;1500:62;;;:::i;:::-;1554:1;:::i;:::-;1500:62::o;1649:178:3:-;1738:24;1754:8;1738:24;;:::i;:::-;1802:7;;:::i;:::-;1811:8;1777:43;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;1649:178::o;:::-;;;;:::i;:::-;:::o;32669:225:193:-;32836:41;:27;:51;32669:225;32758:68;32766:10;:38;;32780:24;;:13;32794:9;32780:24;;:::i;:::-;;:::i;:::-;32766:38;:::i;:::-;;;:::i;:::-;;32758:68;:::i;:::-;32836:16;;:27;:::i;:::-;:41;:51;:::i;:::-;32669:225::o;6415:38701::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;32015:347;32107:53;32115:10;:24;;32129:10;32115:24;:::i;:::-;;;:::i;:::-;;32107:53;:::i;:::-;32170:75;32178:48;:38;:31;:20;32199:9;32178:31;;:::i;:::-;:38;:::i;:::-;32217:8;32178:48;;:::i;:::-;32170:75;:::i;:::-;32255:44;:34;:27;:16;32272:9;32255:27;;:::i;:::-;:34;:::i;:::-;32290:8;32255:44;;:::i;:::-;;32346:8;32314:41;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;32015:347::o;6415:38701::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;38824:443::-;38951:27;38919:59;38824:443;38885:22;;:::i;:::-;38951:16;;:27;:::i;:::-;38919:59;:::i;:::-;39037:15;;:6;:15;;:::i;:::-;:20;;39056:1;39037:20;:::i;:::-;;;:::i;:::-;;39033:95;;38824:443;39141:16;;:6;:16;;:::i;:::-;:21;;39161:1;39141:21;:::i;:::-;;;:::i;:::-;;39137:100;;38824:443;39247:13;:::o;39137:100::-;39178:48;39197:29;;:::i;:::-;39178:16;:6;:16;:48;:::i;:::-;39137:100;;39033:95;39073:44;39091:26;;:::i;:::-;39073:15;:6;:15;:44;:::i;:::-;39033:95;;6415:38701;;;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;:::o;8289:150:46:-;;8382:50;8399:32;8407:23;8415:14;8387:10;8382:50;8289:150;8359:4;;:::i;:::-;8387:3;:10;8423:5;8415:14;:::i;:::-;8407:23;:::i;:::-;8399:32;:::i;:::-;8382:50;;:::i;:::-;;:::i;:::-;8375:57;:::o;1796:162:2:-;1855:7;;:::i;:::-;:23;;1866:12;;:::i;:::-;1855:23;:::i;:::-;;;:::i;:::-;;1851:101;;1796:162::o;1851:101::-;1901:40;1928:12;;:::i;:::-;1901:40;2386:34:3;;;;;;1901:40:2;;;;;;:::i;:::-;;;;8844:165:46;;8947:55;8969:32;8977:23;8985:14;8957:10;8947:55;8844:165;8924:4;;:::i;:::-;8957:3;:10;8993:5;8985:14;:::i;:::-;8977:23;:::i;:::-;8969:32;:::i;:::-;8947:55;;:::i;:::-;;:::i;:::-;8940:62;:::o;3714:255:36:-;3927:8;3714:255;3871:27;3714:255;3792:7;;:::i;:::-;3882:4;3871:27;:::i;:::-;3811:87;;;;3927:8;:::i;:::-;3946:16;:::o;6415:38701:193:-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;16445:2218::-;;;;;;16647:65;16677:35;:25;:14;16692:9;16677:25;;:::i;:::-;16703:8;16677:35;;:::i;:::-;16647:65;:::i;:::-;16765:9;16754:21;16765:9;16754:21;:::i;:::-;16852:5;16844:66;16852:12;;:5;:12;;:::i;:::-;:34;;16868:18;16852:34;:::i;:::-;;;:::i;:::-;;;16844:66;:::i;:::-;16972:38;:28;:24;:13;16986:9;16972:24;;:::i;:::-;:28;:::i;:::-;17001:8;16972:38;;:::i;:::-;;18062:20;;17068:12;;:5;:12;;:::i;:::-;17112:15;17090:37;17112:15;17090:19;:5;:19;:37;:::i;:::-;17137:42;17161:18;17171:7;;17161:18;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;17137:21;:5;:21;:42;:::i;:::-;17189:21;;17209:1;17189:21;:::i;:::-;:17;:5;:17;:21;:::i;:::-;17220:24;:22;:5;:22;:24;;;;:::i;:::-;;:::i;:::-;;;:::i;:::-;17310:20;;:::i;:::-;17344:10;;:15;;17358:1;17344:15;:::i;:::-;;;:::i;:::-;;17340:393;;;;17743:24;17387:18;17340:393;;17743:12;17758:9;17743:5;:12;:24;:::i;:::-;17811:9;:31;;17824:18;17811:31;:::i;:::-;;;:::i;:::-;;:66;;;17340:393;17807:196;;17340:393;18062:20;;:::i;:::-;:42;;;17340:393;18058:118;;17340:393;18209:9;;;18220:11;18233:8;18243:10;18255:15;;18191:80;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;18286:9;:22;;18299:9;18286:22;:::i;:::-;;;:::i;:::-;;18282:114;;17340:393;18473:15;;;;;:::i;:::-;:29;;18492:10;18500:1;18492:10;:::i;:::-;18473:29;:::i;:::-;;;:::i;:::-;;18469:188;;17340:393;16445:2218;;:::o;18469:188::-;18522:49;:33;18539:15;;;:::i;:::-;18522:33;:::i;:::-;:49;:::i;:::-;;;18572:8;18582:9;18600:15;18593:23;18600:15;18593:23;:::i;:::-;18522:95;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;18469:188;18518:129;;;;;;;;;;;18469:188;;;;18518:129;;;;;;18522:95;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;18282:114::-;18343:9;18354:8;18364:9;18375;18329:56;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;18282:114;;;;18058:118;18157:7;18136:9;;18147:8;;18157:7;;;;:::i;:::-;18058:118;;;;18062:42;18086:7;:14;:7;;:14;;:::i;:::-;:18;;18103:1;18086:18;:::i;:::-;;;:::i;:::-;;18062:42;;17807:196;17893:41;:31;:27;:16;;:27;:::i;:::-;:31;:::i;:::-;17925:8;17893:41;;:::i;:::-;;17972:9;17983:8;17953:39;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;17807:196;;17811:66;17846:9;;:31;;17859:18;17846:31;:::i;:::-;;;:::i;:::-;;;17811:66;;17340:393;17426:10;:16;;17439:3;17426:16;:::i;:::-;;;:::i;:::-;;17422:311;;;;17743:24;17470:19;17422:311;;17340:393;;17422:311;17743:24;17611:19;17668:9;17714:7;17668:9;17679:11;;17692:8;17702:10;17714:7;;;;;;:::i;:::-;17422:311;;9090:115:46;9179:19;9187:10;9179:19;9090:115;9153:7;;:::i;:::-;9187:3;:10;9179:19;:::i;:::-;;:::i;:::-;9172:26;:::o;6415:38701:193:-;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;9547:156:46:-;9663:31;9671:22;9647:49;9547:156;9671:22;9675:10;9655:40;9547:156;9621:7;;:::i;:::-;9675:3;:10;9671:22;:::i;:::-;;:::i;:::-;9663:31;:::i;:::-;9655:40;:::i;:::-;9647:49;:::i;:::-;9640:56;:::o;6415:38701:193:-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;:::o;2011:153:3:-;2148:8;2011:153;2093:20;;;;:::i;:::-;2148:8;:::i;:::-;2011:153::o;656:96:30:-;709:7;;:::i;:::-;735:10;;728:17;:::o;6415:38701:193:-;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;;:::o;41446:705::-;;;;;41633:26;;:::i;:::-;41713:3;41699:27;41713:12;:3;41719:6;41713:12;;:::i;:::-;41699:27;:::i;:::-;41752:1;41736:17;41752:1;41736:17;:::i;:::-;41781:6;41798:3;41789:1;:7;;41793:3;41789:7;:::i;:::-;;;:::i;:::-;;;;;41830:30;:27;:24;:13;41844:9;41830:24;;:::i;:::-;:27;:::i;:::-;41858:1;41830:30;;:::i;:::-;41878:46;41899:9;41910:2;41914:9;41878:46;;:::i;:::-;41874:126;;41798:3;;;;;:::i;:::-;41769:18;;41874:126;41798:3;41958:2;;41944:16;41978:7;41958:2;41944:16;:4;41949:5;;41944:16;;;:::i;:::-;;:::i;:::-;41978:7;:::i;:::-;41874:126;;;;41789:7;;;;;;;42032:20;42046:5;42032:20;:::i;:::-;42079:1;42067:13;42079:1;42067:13;:::i;:::-;42093:3;42082:1;:9;;42086:5;42082:9;:::i;:::-;;;:::i;:::-;;;;;42093:3;42127:4;42112:22;42127:7;;:4;42132:1;42127:7;;:::i;:::-;;:::i;:::-;42112:22;:9;42122:1;;42112:22;;;:::i;:::-;;:::i;:::-;42093:3;:::i;:::-;42067:13;;42082:9;;;;;41446:705::o;8607:156:46:-;;8703:53;8723:32;8731:23;8739:14;8711:10;8703:53;8607:156;8680:4;;:::i;:::-;8711:3;:10;8747:5;8739:14;:::i;:::-;8731:23;:::i;:::-;8723:32;:::i;:::-;8703:53;;:::i;:::-;;:::i;:::-;8696:60;:::o;6415:38701:193:-;;:::o;:::-;;;;;;;:::o;:::-;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;:::o;2241:406:46:-;2304:4;;:::i;:::-;2335:3;2324:22;2325:21;2335:3;2340:5;2325:21;;:::i;:::-;2324:22;;:::i;:::-;2320:321;;;;2520:21;:42;2362:3;:23;:16;:11;:3;:11;:16;:::i;:::-;2379:5;2362:23;;:::i;:::-;2520:14;2544:18;:11;:3;:11;:18;:::i;:::-;2520:3;:14;:21;:::i;:::-;:42;:::i;:::-;2583:4;2576:11;:::o;2320:321::-;2625:5;;;2618:12;:::o;4264:129::-;4360:21;4264:129;4360:14;:21;4264:129;4337:4;;:::i;:::-;4360:3;:14;:21;:::i;:::-;;:::i;:::-;:26;;4385:1;4360:26;:::i;:::-;;;:::i;:::-;;;4353:33;:::o;6415:38701:193:-;;;:::o;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;:::o;2129:778:36:-;;;;2232:17;;:::i;:::-;2251:16;;;:::i;:::-;2269:14;;;:::i;:::-;2299:9;:16;:9;:16;:::i;:::-;:22;;2319:2;2299:22;:::i;:::-;;;:::i;:::-;;2295:606;;;;2751:25;2337:9;;;;:::i;:::-;2360;;;:::i;:::-;2383:7;;;:::i;:::-;2535:196;;;;;;;;;;;;;;;2771:1;2774;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2823:1;2815:10;2823:1;2815:10;:::i;:::-;2827:35;2864:25;2872:16;2827:35;2872:9;:16;:::i;:::-;2864:25;:::i;:::-;2807:83;;;;:::o;6415:38701:193:-;;-1:-1:-1;6415:38701:193;;;:::o;:::-;;:::i;:::-;;;;;:::i;:::-;:::o;7280:532:36:-;7366:5;:29;;7375:20;7366:29;:::i;:::-;;;:::i;:::-;;7362:444;;;;7411:7;;:::o;7362:444::-;7462:5;:38;;7471:29;7462:38;:::i;:::-;;;:::i;:::-;;7458:348;;;;7523:23;;;;;;;;;;;;:::i;:::-;;;;7458:348;7567:5;:44;;7576:35;7567:44;:::i;:::-;;;:::i;:::-;;7563:243;;;;7634:46;7662:17;7670:8;7662:17;:::i;:::-;7634:46;;;;;;;;;;;;;:::i;:::-;;;;7563:243;7701:39;;7710:30;7701:39;:::i;:::-;;;:::i;:::-;;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;7786:8;7763:32;;;;;;;;;;;;;:::i;:::-;;;;6415:38701:193;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;23148:1016::-;;;;;;23584:17;;23598:3;23584:17;:::i;:::-;;;:::i;:::-;;;23580:513;;23148:1016;;;:::o;23580:513::-;23638:23;23645:15;23638:23;:::i;:::-;23694:39;;:29;:18;23713:9;23694:29;;:::i;:::-;23724:8;23694:39;;:::i;:::-;;:::i;:::-;23751:9;:14;;23764:1;23751:14;:::i;:::-;;;:::i;:::-;;:65;;;;;23580:513;23747:336;;;23580:513;;;;23747:336;23836:53;23878:11;23836:39;:29;:18;23855:9;23836:29;;:::i;:::-;23866:8;23836:39;;:::i;:::-;:53;:::i;:::-;23941:8;23912:69;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;23747:336;;;;;23751:65;23769:23;:11;;;:23;:::i;:::-;:47;;23796:20;;:::i;:::-;23769:47;:::i;:::-;;;:::i;:::-;;;23751:65;;;6415:38701;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;18801:46::-;18845:2;;;:::i;:::-;18801:46;:::o;18845:2::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;:::i;:::-;:::o;18854:1122::-;;18962:14;:7;;:14;;:::i;:::-;:19;;18980:1;18962:19;:::i;:::-;;;:::i;:::-;;18958:32;;19067:14;:7;;:14;;:::i;:::-;:23;;19084:6;19067:23;:::i;:::-;;;:::i;:::-;;19063:36;;19240:31;19109:25;;:::i;:::-;19240:4;:22;:4;:22;:::i;:::-;:31;:22;19263:7;;19240:31;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;18854:1122;19236:152;;;;;;;;;;;19472:12;:5;:12;:::i;:::-;:31;;19487:16;;:::i;:::-;19472:31;:::i;:::-;;;:::i;:::-;;:65;;;;19506:16;;:::i;:::-;19472:65;19709:28;:4;:28;:::i;:::-;;;19738:9;19749:8;19759:5;19766:8;19709:66;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;19472:65;19705:265;;;;;;;;;;;18854:1122::o;19705:265::-;;;;;;19709:66;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;19472:65::-;19525:12;:5;:12;:::i;:::-;19472:65;;19236:152;19371:7;;;:::o;19236:152::-;;;;;;;19240:31;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;19063:36;19092:7;;;;:::o;18958:32::-;18983:7;;;;:::o;4474:107:46:-;4556:11;:18;4474:107;4530:7;;:::i;:::-;4556:3;:11;:18;:::i;:::-;4549:25;:::o;6415:38701:193:-;;;;;;;:::o;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;:::i;:::-;;:::o;4923:118:46:-;5016:18;4923:118;5016:11;:18;4923:118;4990:7;;:::i;:::-;5016:3;:11;:18;:::i;:::-;;;:::i;:::-;5009:25;:::o;2912:187:2:-;3004:6;;;:::i;:::-;3020:17;3029:8;3020:17;;:::i;:::-;3083:8;3052:40;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;:::i;:::-;;;;2912:187::o;42157:511:193:-;42265:4;;:::i;:::-;42364:20;42363:51;42364:50;:40;:31;:20;42385:9;42364:31;;:::i;:::-;:40;:::i;:::-;42405:8;42364:50;;:::i;:::-;42363:51;;:::i;:::-;42359:69;;42439:64;42468:14;:25;:35;:14;;:25;:::i;:::-;:35;:::i;:::-;42439:64;:::i;:::-;42517:19;;:5;:19;;:::i;:::-;:24;;42540:1;42517:24;:::i;:::-;;;:::i;:::-;;:62;;;;42157:511;42513:80;;42611:50;:37;:50;:15;42629:19;;42611:15;42629:5;:19;;:::i;:::-;42611:37;;:::i;:::-;42652:9;42611:50;:::i;:::-;;;:::i;:::-;;;42604:57;:::o;42513:80::-;42588:5;;;42581:12;:::o;42517:62::-;42545:5;:12;;:5;:12;;:::i;:::-;:34;;42561:18;42545:34;:::i;:::-;;;:::i;:::-;;42517:62;;42359:69;42423:5;;;;42416:12;:::o;6415:38701::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;:::o;:::-;;:::i;2815:1368:46:-;2881:4;;:::i;:::-;3010:3;:21;;:14;:3;:14;3025:5;3010:21;;:::i;:::-;;:::i;:::-;3046:8;;:13;;3058:1;3046:13;:::i;:::-;;;:::i;:::-;;;3042:1135;;;;4069:28;3434:8;4076:14;:21;3434:8;;:12;4069:28;3434:8;:12;3445:1;3434:12;:::i;:::-;;;:::i;:::-;3480:22;:18;:3;;:11;:18;:::i;:::-;:22;3501:1;3480:22;:::i;:::-;;;:::i;:::-;3521:10;:23;;3535:9;3521:23;:::i;:::-;;;:::i;:::-;;3517:378;;3042:1135;3973:3;;;:15;;:3;;:11;:15;:::i;:::-;;:::i;:::-;4076:14;:21;:::i;:::-;4069:28;:::i;:::-;4119:4;4112:11;:::o;3517:378::-;3844:36;3584:3;3705:35;3584:22;;3844:25;3584:3;;;:11;:22;:::i;:::-;;;:::i;:::-;3731:9;3705:23;3731:9;3705:3;;;:11;:23;:::i;:::-;:35;;:::i;:::-;3844:3;;;:14;:25;:::i;:::-;:36;:::i;:::-;3517:378;;;;;3042:1135;4161:5;;;;4154:12;:::o;6415:38701:193:-;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::o;5203:1551:36:-;;;;5329:17;;:::i;:::-;5348:16;;;:::i;:::-;5366:14;;;:::i;:::-;6278:1;6270:10;6278:1;6270:10;:::i;:::-;:79;;6283:66;6415:38701:193;6283:66:36;;;6270:79;:::i;:::-;;;:::i;:::-;;6266:164;;6551:4;6541:24;;6551:4;;6541:24;6551:4;;6557:1;6560;6541:24;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;6579:6;:20;;6589:10;6597:1;6589:10;:::i;:::-;6579:20;:::i;:::-;;;:::i;:::-;;6575:113;;6714:20;6744:1;6736:10;6744:1;6736:10;:::i;:::-;6698:49;;;;:::o;6575:113::-;6631:1;6623:10;6631:1;6623:10;:::i;:::-;6635:29;6674:1;6666:10;6674:1;6666:10;:::i;:::-;6615:62;;;;:::o;6541:24::-;;:::i;6266:164::-;6381:1;;;6373:10;6381:1;6373:10;:::i;:::-;6385:30;;6417:1;6365:54;;;;:::o","linkReferences":{},"immutableReferences":{"106850":[{"start":3791,"length":32},{"start":14577,"length":32}],"106998":[{"start":5198,"length":32},{"start":9891,"length":32},{"start":13300,"length":32},{"start":22261,"length":32},{"start":25264,"length":32}]}},"methodIdentifiers":{"DEFAULT_HEARTBEAT_INTERVAL()":"2c957688","DEFAULT_MAX_MISSED_HEARTBEATS()":"61d6b86c","DOMAIN_SEPARATOR()":"3644e515","HEARTBEAT_MAX_AGE()":"2f4bd7b8","HEARTBEAT_TYPEHASH()":"f9f16762","MAX_METRIC_DEFINITIONS()":"6076439c","MAX_METRIC_NAME_LENGTH()":"6bfe06a6","MAX_PAGE_SIZE()":"48f4da20","SLASH_ALERT_COOLDOWN()":"3ac3cbe6","acceptOwnership()":"79ba5097","addMetricDefinition(uint64,string,uint256,uint256,bool)":"ae470a85","checkOperatorStatus(uint64,address)":"ba1fb103","checkOperatorsStatus(uint64,address[])":"96686c1e","configureHeartbeat(uint64,uint64,uint8)":"b99f6759","decodeMetricPairs(bytes)":"31e3bd1b","deregisterOperator(uint64,address)":"ffcf08f0","enableCustomMetrics(uint64,bool)":"f9107f3b","getAllOperatorCount(uint64)":"3fd62c6d","getHeartbeatConfig(uint64)":"0758236f","getLastCriticalHeartbeat(uint64,address)":"7639d227","getLastHeartbeat(uint64,address)":"0c76697a","getMetricDefinitions(uint64)":"c1ef9ddf","getMetricValue(uint64,address,string)":"d551162c","getOnlineOperatorCount(uint64)":"7b9f64b2","getOnlineOperators(uint64)":"40235a9c","getOperatorState(uint64,address)":"71e7388c","getOperatorStatus(uint64,address)":"62c7e8fc","getSlashableOperators(uint64)":"59dcea12","getSlashableOperatorsPaginated(uint64,uint256,uint256)":"81beac2e","goOffline(uint64)":"c5d960bb","goOnline(uint64)":"b074e9dd","heartbeatConfigs(uint64)":"da435a7c","isHeartbeatCurrent(uint64,address)":"ee1c0390","isOnline(uint64,address)":"5685cf68","isRegisteredOperator(uint64,address)":"60cf0991","metricValues(uint64,address,string)":"9cbdae22","metricsRecorder()":"2dae1885","operatorStates(uint64,address)":"3e6e34a7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","registerOperator(uint64,address)":"1e8f5ee5","registerServiceOwner(uint64,address)":"05778550","removeInactiveOperator(uint64,address)":"e65cafcb","renounceOwnership()":"715018a6","reportForSlashing(uint64,address,string)":"adff830c","serviceMetrics(uint64,uint256)":"22f1ec93","serviceOwners(uint64)":"56c4e17d","setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])":"191cbd1a","setMetricsRecorder(address)":"20812956","setSlashingOracle(address)":"84ef7322","slashingOracle()":"cfe34749","submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":"2bf4d6a7","submitHeartbeatDirect(uint64,uint64,uint8,bytes)":"5cce98a6","tangleCore()":"5a936dc6","transferOwnership(address)":"f2fde38b","validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":"65a6936e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tangleCore\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"now_\",\"type\":\"uint64\"}],\"name\":\"HeartbeatFromFuture\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"now_\",\"type\":\"uint64\"}],\"name\":\"HeartbeatStale\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"}],\"name\":\"HeartbeatConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"HeartbeatReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"MetricReported\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MetricViolation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorCameOnline\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"}],\"name\":\"OperatorWentOffline\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SlashingTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"oldStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"StatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_HEARTBEAT_INTERVAL\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MAX_MISSED_HEARTBEATS\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEARTBEAT_MAX_AGE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEARTBEAT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_METRIC_DEFINITIONS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_METRIC_NAME_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PAGE_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_ALERT_COOLDOWN\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"addMetricDefinition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"checkOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"checkOperatorsStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"}],\"name\":\"configureHeartbeat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeMetricPairs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricPair[]\",\"name\":\"pairs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"enableCustomMetrics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getAllOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getHeartbeatConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"customMetrics\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.HeartbeatConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getLastCriticalHeartbeat\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getLastHeartbeat\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getMetricDefinitions\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricDefinition[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"metricName\",\"type\":\"string\"}],\"name\":\"getMetricValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getOnlineOperatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getOnlineOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastHeartbeat\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"consecutiveBeats\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"},{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"lastMetricsHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IOperatorStatusRegistry.OperatorState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"getSlashableOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getSlashableOperatorsPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"goOffline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"}],\"name\":\"goOnline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"heartbeatConfigs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"interval\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maxMissed\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"customMetrics\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isHeartbeatCurrent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOnline\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isRegisteredOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"metricValues\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metricsRecorder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorStates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lastHeartbeat\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"consecutiveBeats\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"missedBeats\",\"type\":\"uint8\"},{\"internalType\":\"enum IOperatorStatusRegistry.StatusCode\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"lastMetricsHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"registerServiceOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"removeInactiveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"reportForSlashing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"serviceMetrics\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"serviceOwners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxValue\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricDefinition[]\",\"name\":\"definitions\",\"type\":\"tuple[]\"}],\"name\":\"setMetricDefinitions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recorder\",\"type\":\"address\"}],\"name\":\"setMetricsRecorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setSlashingOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashingOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metrics\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"submitHeartbeat\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blueprintId\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"statusCode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"metrics\",\"type\":\"bytes\"}],\"name\":\"submitHeartbeatDirect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tangleCore\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"serviceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct IOperatorStatusRegistry.MetricPair[]\",\"name\":\"pairs\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"pairsLen\",\"type\":\"uint256\"}],\"name\":\"validateAndStoreMetrics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Integrates with Blueprint SDK QoS metrics system\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"checkOperatorStatus(uint64,address)\":{\"details\":\"Should be called periodically (e.g., by keepers or during other operations)\"},\"configureHeartbeat(uint64,uint64,uint8)\":{\"params\":{\"interval\":\"Heartbeat interval in seconds\",\"maxMissed\":\"Max missed heartbeats before offline\",\"serviceId\":\"The service ID\"}},\"decodeMetricPairs(bytes)\":{\"details\":\"External + try/catch wrapper target so malformed payloads don't brick heartbeats.\"},\"deregisterOperator(uint64,address)\":{\"details\":\"Only callable by Tangle core. Does not clear operator state so historical data (last heartbeat, metrics) remains queryable.\"},\"getSlashableOperators(uint64)\":{\"params\":{\"serviceId\":\"The service ID\"},\"returns\":{\"operators\":\"Array of slashable operators (capped at MAX_PAGE_SIZE)\"}},\"getSlashableOperatorsPaginated(uint64,uint256,uint256)\":{\"params\":{\"limit\":\"Max results per page (capped at MAX_PAGE_SIZE)\",\"offset\":\"Starting index\",\"serviceId\":\"The service ID\"},\"returns\":{\"operators\":\"Array of slashable operators in this page\",\"total\":\"Total operators in the set (for pagination)\"}},\"goOffline(uint64)\":{\"details\":\"Sets status to Exiting but does NOT exempt from slashing \\u2014 operators remain slashable until properly deregistered through the service lifecycle.\",\"params\":{\"serviceId\":\"The service ID\"}},\"goOnline(uint64)\":{\"details\":\"Must submit a heartbeat after coming online to be marked Healthy\",\"params\":{\"serviceId\":\"The service ID\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"registerOperator(uint64,address)\":{\"details\":\"Only callable by Tangle core \\u2014 operator assignment is determined by the service lifecycle (request \\u2192 approve \\u2192 activate), not by service owners.\"},\"registerServiceOwner(uint64,address)\":{\"details\":\"Only callable by the Tangle core contract\"},\"removeInactiveOperator(uint64,address)\":{\"details\":\"Only callable by service owner or contract owner. Operator must be Slashed or have been offline beyond 10x the heartbeat threshold to prevent premature removal.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)\":{\"details\":\"Signature is over the EIP-712 typed struct `Heartbeat` defined above. The `timestamp` field bounds the freshness so replays of stale \\\"healthy\\\" heartbeats cannot mask an offline operator. The domain separator includes `chainId` and `address(this)` so signatures cannot replay across forks or deployments.\"},\"submitHeartbeatDirect(uint64,uint64,uint8,bytes)\":{\"details\":\"Can only be called by registered operators\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)\":{\"details\":\"External so it can be called via try/catch from _processMetrics. Must only be called from _processMetrics (not user-facing despite being external).\"}},\"stateVariables\":{\"HEARTBEAT_MAX_AGE\":{\"details\":\"Beyond this, replays of an old \\\"healthy\\\" heartbeat would mask current liveness.\"},\"MAX_METRIC_PAIRS\":{\"details\":\"Maximum number of metric pairs per heartbeat to bound gas costs.\"}},\"title\":\"OperatorStatusRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEFAULT_HEARTBEAT_INTERVAL()\":{\"notice\":\"Default heartbeat interval (5 minutes)\"},\"DEFAULT_MAX_MISSED_HEARTBEATS()\":{\"notice\":\"Default max missed heartbeats before offline\"},\"DOMAIN_SEPARATOR()\":{\"notice\":\"Domain separator for EIP-712 signatures (kept for backwards compatibility)\"},\"HEARTBEAT_MAX_AGE()\":{\"notice\":\"Maximum staleness for a heartbeat signature.\"},\"HEARTBEAT_TYPEHASH()\":{\"notice\":\"EIP-712 typehash for `Heartbeat`. Binds operator + service + blueprint + status + metrics + timestamp; the domain separator binds it to chainId + verifying contract. Closes cross-fork / cross-service / replay surface.\"},\"MAX_METRIC_DEFINITIONS()\":{\"notice\":\"Maximum metric definitions per service to bound validation gas\"},\"MAX_METRIC_NAME_LENGTH()\":{\"notice\":\"Add a custom metric definitionMaximum metric name length to bound hashing gas costs\"},\"MAX_PAGE_SIZE()\":{\"notice\":\"Maximum page size for paginated queries to bound gas usage\"},\"SLASH_ALERT_COOLDOWN()\":{\"notice\":\"Cooldown between successive critical heartbeat alerts per service/operator\"},\"addMetricDefinition(uint64,string,uint256,uint256,bool)\":{\"notice\":\"Add a custom metric definition\"},\"checkOperatorStatus(uint64,address)\":{\"notice\":\"Check and update operator status based on heartbeat timing\"},\"checkOperatorsStatus(uint64,address[])\":{\"notice\":\"Batch check multiple operators\"},\"configureHeartbeat(uint64,uint64,uint8)\":{\"notice\":\"Configure heartbeat settings for a service\"},\"decodeMetricPairs(bytes)\":{\"notice\":\"Decode metric pairs from ABI-encoded payload.\"},\"deregisterOperator(uint64,address)\":{\"notice\":\"Deregister an operator from a service instance\"},\"enableCustomMetrics(uint64,bool)\":{\"notice\":\"Enable custom metrics for a service\"},\"getAllOperatorCount(uint64)\":{\"notice\":\"Get the total count of tracked operators for a service\"},\"getHeartbeatConfig(uint64)\":{\"notice\":\"Get heartbeat config for a service\"},\"getLastCriticalHeartbeat(uint64,address)\":{\"notice\":\"Get the last critical heartbeat timestamp for an operator\"},\"getLastHeartbeat(uint64,address)\":{\"notice\":\"Get last heartbeat timestamp for an operator\"},\"getMetricDefinitions(uint64)\":{\"notice\":\"Get metric definitions for a service\"},\"getMetricValue(uint64,address,string)\":{\"notice\":\"Get a metric value for an operator\"},\"getOnlineOperatorCount(uint64)\":{\"notice\":\"Get online operator count\"},\"getOnlineOperators(uint64)\":{\"notice\":\"Get all online operators for a service\"},\"getOperatorState(uint64,address)\":{\"notice\":\"Get full operator state\"},\"getOperatorStatus(uint64,address)\":{\"notice\":\"Get operator status for a service\"},\"getSlashableOperators(uint64)\":{\"notice\":\"Get offline operators that should be slashed (convenience wrapper)\"},\"getSlashableOperatorsPaginated(uint64,uint256,uint256)\":{\"notice\":\"Paginated version of getSlashableOperators to prevent gas DoS\"},\"goOffline(uint64)\":{\"notice\":\"Operator voluntarily goes offline\"},\"goOnline(uint64)\":{\"notice\":\"Operator comes back online after voluntary offline period\"},\"heartbeatConfigs(uint64)\":{\"notice\":\"Heartbeat config per service: serviceId => config\"},\"isHeartbeatCurrent(uint64,address)\":{\"notice\":\"Check if operator has submitted heartbeat recently\"},\"isOnline(uint64,address)\":{\"notice\":\"Check if an operator is online for a service\"},\"isRegisteredOperator(uint64,address)\":{\"notice\":\"Check if an operator is registered for a service\"},\"metricValues(uint64,address,string)\":{\"notice\":\"Last reported metric values: serviceId => operator => metricName => value\"},\"metricsRecorder()\":{\"notice\":\"Metrics recorder for reward distribution\"},\"operatorStates(uint64,address)\":{\"notice\":\"Operator state per service: serviceId => operator => state\"},\"registerOperator(uint64,address)\":{\"notice\":\"Register an operator for a service instance\"},\"registerServiceOwner(uint64,address)\":{\"notice\":\"Register service owner\"},\"removeInactiveOperator(uint64,address)\":{\"notice\":\"Remove an operator from the _allOperators tracking set\"},\"reportForSlashing(uint64,address,string)\":{\"notice\":\"Report an operator for slashing (called by slashing oracle)\"},\"serviceMetrics(uint64,uint256)\":{\"notice\":\"Custom metrics per service: serviceId => metric definitions\"},\"serviceOwners(uint64)\":{\"notice\":\"Service owners who can configure heartbeat settings\"},\"setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])\":{\"notice\":\"Batch set metric definitions for a service (replaces existing)\"},\"setMetricsRecorder(address)\":{\"notice\":\"Set metrics recorder address for reward tracking\"},\"setSlashingOracle(address)\":{\"notice\":\"Set slashing oracle address\"},\"slashingOracle()\":{\"notice\":\"Slashing callback interface\"},\"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)\":{\"notice\":\"Submit a heartbeat to prove operator is online (EIP-712 signed).\"},\"submitHeartbeatDirect(uint64,uint64,uint8,bytes)\":{\"notice\":\"Submit heartbeat without signature (for trusted contexts)\"},\"tangleCore()\":{\"notice\":\"Tangle core contract address for service validation\"},\"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)\":{\"notice\":\"Validate metrics against definitions and store valid ones.\"}},\"notice\":\"Tracks operator online/offline status via heartbeats\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/staking/OperatorStatusRegistry.sol\":\"OperatorStatusRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":false,\"runs\":1},\"remappings\":[\":@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/\",\":@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/\",\":@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/\",\":eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/\",\":forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/\",\":forge-std/=dependencies/forge-std-1.9.4/src/\",\":hardhat/=dependencies/protocol-solidity/node_modules/hardhat/\",\":openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/\",\":openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/\",\":protocol-solidity/=dependencies/protocol-solidity/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/interfaces/IMetricsRecorder.sol\":{\"keccak256\":\"0x4936a66e1f3f82253c2881ac1262f23e5a8da6b67722bda2a9f572df8f17dd09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72f63ddb4efeb4a16f97a7d1a0c408126c5c86b18f3e4bdd5575d24cf1f27e45\",\"dweb:/ipfs/QmT2fvs5p4r6RjCowx1aysm7Jq6rytWaumwMR7NsD4WrAk\"]},\"src/staking/OperatorStatusRegistry.sol\":{\"keccak256\":\"0xe30dff10b402ebd73d3eec2615e8521a74f230c2aed6f3c6677450d916f34319\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bd34041ad94af12fc408faf92763c86a611433c8f1051e44600aab45a7c74ec\",\"dweb:/ipfs/QmQZrKr7L9RGSwwnw68HhqMt4AVGXzhaqmuDXiXR8K4A6x\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tangleCore","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint64","name":"signed","type":"uint64"},{"internalType":"uint64","name":"now_","type":"uint64"}],"type":"error","name":"HeartbeatFromFuture"},{"inputs":[{"internalType":"uint64","name":"signed","type":"uint64"},{"internalType":"uint64","name":"now_","type":"uint64"}],"type":"error","name":"HeartbeatStale"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"interval","type":"uint64","indexed":false},{"internalType":"uint8","name":"maxMissed","type":"uint8","indexed":false}],"type":"event","name":"HeartbeatConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"uint64","name":"blueprintId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint8","name":"statusCode","type":"uint8","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"HeartbeatReceived","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"metricName","type":"string","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"MetricReported","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"metricName","type":"string","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"MetricViolation","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorCameOnline","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorDeregistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint8","name":"missedBeats","type":"uint8","indexed":false}],"type":"event","name":"OperatorWentOffline","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"SlashingTriggered","anonymous":false},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"oldStatus","type":"uint8","indexed":false},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"newStatus","type":"uint8","indexed":false}],"type":"event","name":"StatusChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_HEARTBEAT_INTERVAL","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_MAX_MISSED_HEARTBEATS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HEARTBEAT_MAX_AGE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HEARTBEAT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_METRIC_DEFINITIONS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_METRIC_NAME_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_PAGE_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_ALERT_COOLDOWN","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"addMetricDefinition"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkOperatorStatus"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"checkOperatorsStatus"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"configureHeartbeat"},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeMetricPairs","outputs":[{"internalType":"struct IOperatorStatusRegistry.MetricPair[]","name":"pairs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"enableCustomMetrics"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getAllOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getHeartbeatConfig","outputs":[{"internalType":"struct IOperatorStatusRegistry.HeartbeatConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"},{"internalType":"bool","name":"customMetrics","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getLastCriticalHeartbeat","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getLastHeartbeat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getMetricDefinitions","outputs":[{"internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"string","name":"metricName","type":"string"}],"stateMutability":"view","type":"function","name":"getMetricValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getOnlineOperatorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getOnlineOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorState","outputs":[{"internalType":"struct IOperatorStatusRegistry.OperatorState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"lastHeartbeat","type":"uint256"},{"internalType":"uint64","name":"consecutiveBeats","type":"uint64"},{"internalType":"uint8","name":"missedBeats","type":"uint8"},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"status","type":"uint8"},{"internalType":"bytes32","name":"lastMetricsHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSlashableOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSlashableOperatorsPaginated","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"},{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"goOffline"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"goOnline"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"heartbeatConfigs","outputs":[{"internalType":"uint64","name":"interval","type":"uint64"},{"internalType":"uint8","name":"maxMissed","type":"uint8"},{"internalType":"bool","name":"customMetrics","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isHeartbeatCurrent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOnline","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function","name":"metricValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metricsRecorder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operatorStates","outputs":[{"internalType":"uint256","name":"lastHeartbeat","type":"uint256"},{"internalType":"uint64","name":"consecutiveBeats","type":"uint64"},{"internalType":"uint8","name":"missedBeats","type":"uint8"},{"internalType":"enum IOperatorStatusRegistry.StatusCode","name":"status","type":"uint8"},{"internalType":"bytes32","name":"lastMetricsHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerServiceOwner"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeInactiveOperator"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"reportForSlashing"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"serviceMetrics","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function","name":"serviceOwners","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"struct IOperatorStatusRegistry.MetricDefinition[]","name":"definitions","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"uint256","name":"maxValue","type":"uint256"},{"internalType":"bool","name":"required","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setMetricDefinitions"},{"inputs":[{"internalType":"address","name":"recorder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMetricsRecorder"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlashingOracle"},{"inputs":[],"stateMutability":"view","type":"function","name":"slashingOracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"statusCode","type":"uint8"},{"internalType":"bytes","name":"metrics","type":"bytes"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitHeartbeat"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"uint64","name":"blueprintId","type":"uint64"},{"internalType":"uint8","name":"statusCode","type":"uint8"},{"internalType":"bytes","name":"metrics","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"submitHeartbeatDirect"},{"inputs":[],"stateMutability":"view","type":"function","name":"tangleCore","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint64","name":"serviceId","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct IOperatorStatusRegistry.MetricPair[]","name":"pairs","type":"tuple[]","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"uint256","name":"pairsLen","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"validateAndStoreMetrics"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"checkOperatorStatus(uint64,address)":{"details":"Should be called periodically (e.g., by keepers or during other operations)"},"configureHeartbeat(uint64,uint64,uint8)":{"params":{"interval":"Heartbeat interval in seconds","maxMissed":"Max missed heartbeats before offline","serviceId":"The service ID"}},"decodeMetricPairs(bytes)":{"details":"External + try/catch wrapper target so malformed payloads don't brick heartbeats."},"deregisterOperator(uint64,address)":{"details":"Only callable by Tangle core. Does not clear operator state so historical data (last heartbeat, metrics) remains queryable."},"getSlashableOperators(uint64)":{"params":{"serviceId":"The service ID"},"returns":{"operators":"Array of slashable operators (capped at MAX_PAGE_SIZE)"}},"getSlashableOperatorsPaginated(uint64,uint256,uint256)":{"params":{"limit":"Max results per page (capped at MAX_PAGE_SIZE)","offset":"Starting index","serviceId":"The service ID"},"returns":{"operators":"Array of slashable operators in this page","total":"Total operators in the set (for pagination)"}},"goOffline(uint64)":{"details":"Sets status to Exiting but does NOT exempt from slashing — operators remain slashable until properly deregistered through the service lifecycle.","params":{"serviceId":"The service ID"}},"goOnline(uint64)":{"details":"Must submit a heartbeat after coming online to be marked Healthy","params":{"serviceId":"The service ID"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"registerOperator(uint64,address)":{"details":"Only callable by Tangle core — operator assignment is determined by the service lifecycle (request → approve → activate), not by service owners."},"registerServiceOwner(uint64,address)":{"details":"Only callable by the Tangle core contract"},"removeInactiveOperator(uint64,address)":{"details":"Only callable by service owner or contract owner. Operator must be Slashed or have been offline beyond 10x the heartbeat threshold to prevent premature removal."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":{"details":"Signature is over the EIP-712 typed struct `Heartbeat` defined above. The `timestamp` field bounds the freshness so replays of stale \"healthy\" heartbeats cannot mask an offline operator. The domain separator includes `chainId` and `address(this)` so signatures cannot replay across forks or deployments."},"submitHeartbeatDirect(uint64,uint64,uint8,bytes)":{"details":"Can only be called by registered operators"},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":{"details":"External so it can be called via try/catch from _processMetrics. Must only be called from _processMetrics (not user-facing despite being external)."}},"version":1},"userdoc":{"kind":"user","methods":{"DEFAULT_HEARTBEAT_INTERVAL()":{"notice":"Default heartbeat interval (5 minutes)"},"DEFAULT_MAX_MISSED_HEARTBEATS()":{"notice":"Default max missed heartbeats before offline"},"DOMAIN_SEPARATOR()":{"notice":"Domain separator for EIP-712 signatures (kept for backwards compatibility)"},"HEARTBEAT_MAX_AGE()":{"notice":"Maximum staleness for a heartbeat signature."},"HEARTBEAT_TYPEHASH()":{"notice":"EIP-712 typehash for `Heartbeat`. Binds operator + service + blueprint + status + metrics + timestamp; the domain separator binds it to chainId + verifying contract. Closes cross-fork / cross-service / replay surface."},"MAX_METRIC_DEFINITIONS()":{"notice":"Maximum metric definitions per service to bound validation gas"},"MAX_METRIC_NAME_LENGTH()":{"notice":"Add a custom metric definitionMaximum metric name length to bound hashing gas costs"},"MAX_PAGE_SIZE()":{"notice":"Maximum page size for paginated queries to bound gas usage"},"SLASH_ALERT_COOLDOWN()":{"notice":"Cooldown between successive critical heartbeat alerts per service/operator"},"addMetricDefinition(uint64,string,uint256,uint256,bool)":{"notice":"Add a custom metric definition"},"checkOperatorStatus(uint64,address)":{"notice":"Check and update operator status based on heartbeat timing"},"checkOperatorsStatus(uint64,address[])":{"notice":"Batch check multiple operators"},"configureHeartbeat(uint64,uint64,uint8)":{"notice":"Configure heartbeat settings for a service"},"decodeMetricPairs(bytes)":{"notice":"Decode metric pairs from ABI-encoded payload."},"deregisterOperator(uint64,address)":{"notice":"Deregister an operator from a service instance"},"enableCustomMetrics(uint64,bool)":{"notice":"Enable custom metrics for a service"},"getAllOperatorCount(uint64)":{"notice":"Get the total count of tracked operators for a service"},"getHeartbeatConfig(uint64)":{"notice":"Get heartbeat config for a service"},"getLastCriticalHeartbeat(uint64,address)":{"notice":"Get the last critical heartbeat timestamp for an operator"},"getLastHeartbeat(uint64,address)":{"notice":"Get last heartbeat timestamp for an operator"},"getMetricDefinitions(uint64)":{"notice":"Get metric definitions for a service"},"getMetricValue(uint64,address,string)":{"notice":"Get a metric value for an operator"},"getOnlineOperatorCount(uint64)":{"notice":"Get online operator count"},"getOnlineOperators(uint64)":{"notice":"Get all online operators for a service"},"getOperatorState(uint64,address)":{"notice":"Get full operator state"},"getOperatorStatus(uint64,address)":{"notice":"Get operator status for a service"},"getSlashableOperators(uint64)":{"notice":"Get offline operators that should be slashed (convenience wrapper)"},"getSlashableOperatorsPaginated(uint64,uint256,uint256)":{"notice":"Paginated version of getSlashableOperators to prevent gas DoS"},"goOffline(uint64)":{"notice":"Operator voluntarily goes offline"},"goOnline(uint64)":{"notice":"Operator comes back online after voluntary offline period"},"heartbeatConfigs(uint64)":{"notice":"Heartbeat config per service: serviceId => config"},"isHeartbeatCurrent(uint64,address)":{"notice":"Check if operator has submitted heartbeat recently"},"isOnline(uint64,address)":{"notice":"Check if an operator is online for a service"},"isRegisteredOperator(uint64,address)":{"notice":"Check if an operator is registered for a service"},"metricValues(uint64,address,string)":{"notice":"Last reported metric values: serviceId => operator => metricName => value"},"metricsRecorder()":{"notice":"Metrics recorder for reward distribution"},"operatorStates(uint64,address)":{"notice":"Operator state per service: serviceId => operator => state"},"registerOperator(uint64,address)":{"notice":"Register an operator for a service instance"},"registerServiceOwner(uint64,address)":{"notice":"Register service owner"},"removeInactiveOperator(uint64,address)":{"notice":"Remove an operator from the _allOperators tracking set"},"reportForSlashing(uint64,address,string)":{"notice":"Report an operator for slashing (called by slashing oracle)"},"serviceMetrics(uint64,uint256)":{"notice":"Custom metrics per service: serviceId => metric definitions"},"serviceOwners(uint64)":{"notice":"Service owners who can configure heartbeat settings"},"setMetricDefinitions(uint64,(string,uint256,uint256,bool)[])":{"notice":"Batch set metric definitions for a service (replaces existing)"},"setMetricsRecorder(address)":{"notice":"Set metrics recorder address for reward tracking"},"setSlashingOracle(address)":{"notice":"Set slashing oracle address"},"slashingOracle()":{"notice":"Slashing callback interface"},"submitHeartbeat(uint64,uint64,uint8,bytes,uint64,bytes)":{"notice":"Submit a heartbeat to prove operator is online (EIP-712 signed)."},"submitHeartbeatDirect(uint64,uint64,uint8,bytes)":{"notice":"Submit heartbeat without signature (for trusted contexts)"},"tangleCore()":{"notice":"Tangle core contract address for service validation"},"validateAndStoreMetrics(uint64,address,(string,uint256)[],uint256)":{"notice":"Validate metrics against definitions and store valid ones."}},"version":1}},"settings":{"remappings":["@ensdomains/=dependencies/protocol-solidity/node_modules/@ensdomains/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@webb-tools/=dependencies/protocol-solidity/node_modules/@webb-tools/","eth-gas-reporter/=dependencies/protocol-solidity/node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","forge-std/=dependencies/forge-std-1.9.4/src/","hardhat/=dependencies/protocol-solidity/node_modules/hardhat/","openzeppelin-contracts-4.9.6/=dependencies/openzeppelin-contracts-4.9.6/","openzeppelin/=dependencies/openzeppelin-contracts-4.9.6/contracts/","protocol-solidity/=dependencies/protocol-solidity/"],"optimizer":{"enabled":false,"runs":1},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/staking/OperatorStatusRegistry.sol":"OperatorStatusRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.1.0/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/interfaces/IMetricsRecorder.sol":{"keccak256":"0x4936a66e1f3f82253c2881ac1262f23e5a8da6b67722bda2a9f572df8f17dd09","urls":["bzz-raw://72f63ddb4efeb4a16f97a7d1a0c408126c5c86b18f3e4bdd5575d24cf1f27e45","dweb:/ipfs/QmT2fvs5p4r6RjCowx1aysm7Jq6rytWaumwMR7NsD4WrAk"],"license":"MIT"},"src/staking/OperatorStatusRegistry.sol":{"keccak256":"0xe30dff10b402ebd73d3eec2615e8521a74f230c2aed6f3c6677450d916f34319","urls":["bzz-raw://1bd34041ad94af12fc408faf92763c86a611433c8f1051e44600aab45a7c74ec","dweb:/ipfs/QmQZrKr7L9RGSwwnw68HhqMt4AVGXzhaqmuDXiXR8K4A6x"],"license":"MIT"}},"version":1},"id":193} \ No newline at end of file diff --git a/bindings/src/bindings/i_tangle.rs b/bindings/src/bindings/i_tangle.rs index 08ea9ad3..90d2128f 100644 --- a/bindings/src/bindings/i_tangle.rs +++ b/bindings/src/bindings/i_tangle.rs @@ -11389,6 +11389,7 @@ interface ITangle { function updateBlueprint(uint64 blueprintId, string memory metadataUri, bytes32 metadataHash) external; function updateOperatorPreferences(uint64 blueprintId, bytes memory ecdsaPublicKey, string memory rpcAddress) external; function withdrawRemainingEscrow(uint64 serviceId) external; + function withdrawRemainingEscrowTo(uint64 serviceId, address payable to) external; } ``` @@ -14988,6 +14989,24 @@ interface ITangle { "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "withdrawRemainingEscrowTo", + "inputs": [ + { + "name": "serviceId", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "to", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "event", "name": "BlueprintCreated", @@ -34040,6 +34059,170 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } } }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawRemainingEscrowTo(uint64,address)` and selector `0x25d80f7d`. +```solidity +function withdrawRemainingEscrowTo(uint64 serviceId, address to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToCall { + #[allow(missing_docs)] + pub serviceId: u64, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawRemainingEscrowTo(uint64,address)`](withdrawRemainingEscrowToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64, alloy::sol_types::private::Address); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToCall) -> Self { + (value.serviceId, value.to) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + serviceId: tuple.0, + to: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawRemainingEscrowToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawRemainingEscrowToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawRemainingEscrowToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawRemainingEscrowTo(uint64,address)"; + const SELECTOR: [u8; 4] = [37u8, 216u8, 15u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.serviceId), + ::tokenize( + &self.to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawRemainingEscrowToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; ///Container for all the [`ITangle`](self) function calls. #[derive(Clone)] #[derive(serde::Serialize, serde::Deserialize)] @@ -34225,6 +34408,8 @@ function withdrawRemainingEscrow(uint64 serviceId) external; updateOperatorPreferences(updateOperatorPreferencesCall), #[allow(missing_docs)] withdrawRemainingEscrow(withdrawRemainingEscrowCall), + #[allow(missing_docs)] + withdrawRemainingEscrowTo(withdrawRemainingEscrowToCall), } impl ITangleCalls { /// All the selectors of this enum. @@ -34242,6 +34427,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; [19u8, 211u8, 106u8, 102u8], [24u8, 12u8, 174u8, 103u8], [24u8, 198u8, 128u8, 23u8], + [37u8, 216u8, 15u8, 125u8], [39u8, 179u8, 117u8, 101u8], [43u8, 157u8, 167u8, 26u8], [45u8, 7u8, 230u8, 85u8], @@ -34335,6 +34521,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::core::stringify!(terminateServiceForNonPayment), ::core::stringify!(getOperatorPublicKey), ::core::stringify!(preRegister), + ::core::stringify!(withdrawRemainingEscrowTo), ::core::stringify!(canScheduleExit), ::core::stringify!(joinService), ::core::stringify!(submitResult), @@ -34428,6 +34615,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, + ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, @@ -34536,7 +34724,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; impl alloy_sol_types::SolInterface for ITangleCalls { const NAME: &'static str = "ITangleCalls"; const MIN_DATA_LENGTH: usize = 0usize; - const COUNT: usize = 90usize; + const COUNT: usize = 91usize; #[inline] fn selector(&self) -> [u8; 4] { match self { @@ -34810,6 +34998,9 @@ function withdrawRemainingEscrow(uint64 serviceId) external; Self::withdrawRemainingEscrow(_) => { ::SELECTOR } + Self::withdrawRemainingEscrowTo(_) => { + ::SELECTOR + } } } #[inline] @@ -34915,6 +35106,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } preRegister }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ITangleCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn canScheduleExit( data: &[u8], @@ -35911,6 +36113,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } preRegister }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ITangleCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn canScheduleExit( data: &[u8], @@ -37257,6 +37470,11 @@ function withdrawRemainingEscrow(uint64 serviceId) external; inner, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encoded_size( + inner, + ) + } } } #[inline] @@ -37802,6 +38020,12 @@ function withdrawRemainingEscrow(uint64 serviceId) external; out, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } } } } @@ -39730,6 +39954,19 @@ the bytecode concatenated with the constructor's ABI-encoded arguments.*/ }, ) } + ///Creates a new call builder for the [`withdrawRemainingEscrowTo`] function. + pub fn withdrawRemainingEscrowTo( + &self, + serviceId: u64, + to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawRemainingEscrowToCall, N> { + self.call_builder( + &withdrawRemainingEscrowToCall { + serviceId, + to, + }, + ) + } } /// Event filters. impl< diff --git a/bindings/src/bindings/i_tangle_full.rs b/bindings/src/bindings/i_tangle_full.rs index e91f8b41..6edbbc48 100644 --- a/bindings/src/bindings/i_tangle_full.rs +++ b/bindings/src/bindings/i_tangle_full.rs @@ -12878,6 +12878,7 @@ interface ITangleFull { function updateBlueprint(uint64 blueprintId, string memory metadataUri, bytes32 metadataHash) external; function updateOperatorPreferences(uint64 blueprintId, bytes memory ecdsaPublicKey, string memory rpcAddress) external; function withdrawRemainingEscrow(uint64 serviceId) external; + function withdrawRemainingEscrowTo(uint64 serviceId, address payable to) external; } ``` @@ -17200,6 +17201,24 @@ interface ITangleFull { "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "withdrawRemainingEscrowTo", + "inputs": [ + { + "name": "serviceId", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "to", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "event", "name": "BlueprintCreated", @@ -42951,6 +42970,170 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } } }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawRemainingEscrowTo(uint64,address)` and selector `0x25d80f7d`. +```solidity +function withdrawRemainingEscrowTo(uint64 serviceId, address to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToCall { + #[allow(missing_docs)] + pub serviceId: u64, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawRemainingEscrowTo(uint64,address)`](withdrawRemainingEscrowToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64, alloy::sol_types::private::Address); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToCall) -> Self { + (value.serviceId, value.to) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + serviceId: tuple.0, + to: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawRemainingEscrowToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawRemainingEscrowToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawRemainingEscrowToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawRemainingEscrowTo(uint64,address)"; + const SELECTOR: [u8; 4] = [37u8, 216u8, 15u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.serviceId), + ::tokenize( + &self.to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawRemainingEscrowToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; ///Container for all the [`ITangleFull`](self) function calls. #[derive(Clone)] #[derive(serde::Serialize, serde::Deserialize)] @@ -43212,6 +43395,8 @@ function withdrawRemainingEscrow(uint64 serviceId) external; updateOperatorPreferences(updateOperatorPreferencesCall), #[allow(missing_docs)] withdrawRemainingEscrow(withdrawRemainingEscrowCall), + #[allow(missing_docs)] + withdrawRemainingEscrowTo(withdrawRemainingEscrowToCall), } impl ITangleFullCalls { /// All the selectors of this enum. @@ -43234,6 +43419,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; [24u8, 198u8, 128u8, 23u8], [29u8, 119u8, 53u8, 27u8], [32u8, 129u8, 41u8, 86u8], + [37u8, 216u8, 15u8, 125u8], [38u8, 48u8, 193u8, 47u8], [38u8, 201u8, 136u8, 123u8], [39u8, 179u8, 117u8, 101u8], @@ -43365,6 +43551,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::core::stringify!(preRegister), ::core::stringify!(setMaxBlueprintsPerOperator), ::core::stringify!(setMetricsRecorder), + ::core::stringify!(withdrawRemainingEscrowTo), ::core::stringify!(priceOracle), ::core::stringify!(mbsmRegistry), ::core::stringify!(canScheduleExit), @@ -43496,6 +43683,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, + ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, @@ -43637,7 +43825,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; impl alloy_sol_types::SolInterface for ITangleFullCalls { const NAME: &'static str = "ITangleFullCalls"; const MIN_DATA_LENGTH: usize = 0usize; - const COUNT: usize = 128usize; + const COUNT: usize = 129usize; #[inline] fn selector(&self) -> [u8; 4] { match self { @@ -44017,6 +44205,9 @@ function withdrawRemainingEscrow(uint64 serviceId) external; Self::withdrawRemainingEscrow(_) => { ::SELECTOR } + Self::withdrawRemainingEscrowTo(_) => { + ::SELECTOR + } } } #[inline] @@ -44179,6 +44370,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } setMetricsRecorder }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ITangleFullCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn priceOracle( data: &[u8], @@ -45593,6 +45795,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } setMetricsRecorder }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ITangleFullCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn priceOracle( data: &[u8], @@ -47490,6 +47703,11 @@ function withdrawRemainingEscrow(uint64 serviceId) external; inner, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encoded_size( + inner, + ) + } } } #[inline] @@ -48257,6 +48475,12 @@ function withdrawRemainingEscrow(uint64 serviceId) external; out, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } } } } @@ -50600,6 +50824,19 @@ the bytecode concatenated with the constructor's ABI-encoded arguments.*/ }, ) } + ///Creates a new call builder for the [`withdrawRemainingEscrowTo`] function. + pub fn withdrawRemainingEscrowTo( + &self, + serviceId: u64, + to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawRemainingEscrowToCall, N> { + self.call_builder( + &withdrawRemainingEscrowToCall { + serviceId, + to, + }, + ) + } } /// Event filters. impl< diff --git a/bindings/src/bindings/i_tangle_services.rs b/bindings/src/bindings/i_tangle_services.rs index ebfa3232..9448349b 100644 --- a/bindings/src/bindings/i_tangle_services.rs +++ b/bindings/src/bindings/i_tangle_services.rs @@ -5691,6 +5691,7 @@ interface ITangleServices { function terminateService(uint64 serviceId) external; function terminateServiceForNonPayment(uint64 serviceId) external; function withdrawRemainingEscrow(uint64 serviceId) external; + function withdrawRemainingEscrowTo(uint64 serviceId, address payable to) external; } ``` @@ -7420,6 +7421,24 @@ interface ITangleServices { "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "withdrawRemainingEscrowTo", + "inputs": [ + { + "name": "serviceId", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "to", + "type": "address", + "internalType": "address payable" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "event", "name": "OperatorJoinedService", @@ -17035,6 +17054,170 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } } }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `withdrawRemainingEscrowTo(uint64,address)` and selector `0x25d80f7d`. +```solidity +function withdrawRemainingEscrowTo(uint64 serviceId, address to) external; +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToCall { + #[allow(missing_docs)] + pub serviceId: u64, + #[allow(missing_docs)] + pub to: alloy::sol_types::private::Address, + } + ///Container type for the return parameters of the [`withdrawRemainingEscrowTo(uint64,address)`](withdrawRemainingEscrowToCall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct withdrawRemainingEscrowToReturn {} + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (u64, alloy::sol_types::private::Address); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToCall) -> Self { + (value.serviceId, value.to) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToCall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { + serviceId: tuple.0, + to: tuple.1, + } + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From + for UnderlyingRustTuple<'_> { + fn from(value: withdrawRemainingEscrowToReturn) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> + for withdrawRemainingEscrowToReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self {} + } + } + } + impl withdrawRemainingEscrowToReturn { + fn _tokenize( + &self, + ) -> ::ReturnToken< + '_, + > { + () + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for withdrawRemainingEscrowToCall { + type Parameters<'a> = ( + alloy::sol_types::sol_data::Uint<64>, + alloy::sol_types::sol_data::Address, + ); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = withdrawRemainingEscrowToReturn; + type ReturnTuple<'a> = (); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "withdrawRemainingEscrowTo(uint64,address)"; + const SELECTOR: [u8; 4] = [37u8, 216u8, 15u8, 125u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + ( + as alloy_sol_types::SolType>::tokenize(&self.serviceId), + ::tokenize( + &self.to, + ), + ) + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + withdrawRemainingEscrowToReturn::_tokenize(ret) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(Into::into) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(Into::into) + } + } + }; ///Container for all the [`ITangleServices`](self) function calls. #[derive(Clone)] #[derive(serde::Serialize, serde::Deserialize)] @@ -17136,6 +17319,8 @@ function withdrawRemainingEscrow(uint64 serviceId) external; terminateServiceForNonPayment(terminateServiceForNonPaymentCall), #[allow(missing_docs)] withdrawRemainingEscrow(withdrawRemainingEscrowCall), + #[allow(missing_docs)] + withdrawRemainingEscrowTo(withdrawRemainingEscrowToCall), } impl ITangleServicesCalls { /// All the selectors of this enum. @@ -17148,6 +17333,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; [5u8, 187u8, 58u8, 163u8], [6u8, 35u8, 117u8, 38u8], [19u8, 211u8, 106u8, 102u8], + [37u8, 216u8, 15u8, 125u8], [39u8, 179u8, 117u8, 101u8], [43u8, 157u8, 167u8, 26u8], [46u8, 194u8, 189u8, 3u8], @@ -17199,6 +17385,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::core::stringify!(getServiceRequestSecurityCommitments), ::core::stringify!(serviceCount), ::core::stringify!(terminateServiceForNonPayment), + ::core::stringify!(withdrawRemainingEscrowTo), ::core::stringify!(canScheduleExit), ::core::stringify!(joinService), ::core::stringify!(isPermittedCaller), @@ -17250,6 +17437,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, + ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, @@ -17321,7 +17509,7 @@ function withdrawRemainingEscrow(uint64 serviceId) external; impl alloy_sol_types::SolInterface for ITangleServicesCalls { const NAME: &'static str = "ITangleServicesCalls"; const MIN_DATA_LENGTH: usize = 0usize; - const COUNT: usize = 48usize; + const COUNT: usize = 49usize; #[inline] fn selector(&self) -> [u8; 4] { match self { @@ -17469,6 +17657,9 @@ function withdrawRemainingEscrow(uint64 serviceId) external; Self::withdrawRemainingEscrow(_) => { ::SELECTOR } + Self::withdrawRemainingEscrowTo(_) => { + ::SELECTOR + } } } #[inline] @@ -17523,6 +17714,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } terminateServiceForNonPayment }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(ITangleServicesCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn canScheduleExit( data: &[u8], @@ -18075,6 +18277,17 @@ function withdrawRemainingEscrow(uint64 serviceId) external; } terminateServiceForNonPayment }, + { + fn withdrawRemainingEscrowTo( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(ITangleServicesCalls::withdrawRemainingEscrowTo) + } + withdrawRemainingEscrowTo + }, { fn canScheduleExit( data: &[u8], @@ -18822,6 +19035,11 @@ function withdrawRemainingEscrow(uint64 serviceId) external; inner, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encoded_size( + inner, + ) + } } } #[inline] @@ -19115,6 +19333,12 @@ function withdrawRemainingEscrow(uint64 serviceId) external; out, ) } + Self::withdrawRemainingEscrowTo(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } } } } @@ -20186,6 +20410,19 @@ the bytecode concatenated with the constructor's ABI-encoded arguments.*/ }, ) } + ///Creates a new call builder for the [`withdrawRemainingEscrowTo`] function. + pub fn withdrawRemainingEscrowTo( + &self, + serviceId: u64, + to: alloy::sol_types::private::Address, + ) -> alloy_contract::SolCallBuilder<&P, withdrawRemainingEscrowToCall, N> { + self.call_builder( + &withdrawRemainingEscrowToCall { + serviceId, + to, + }, + ) + } } /// Event filters. impl< diff --git a/bindings/src/bindings/multi_asset_delegation.rs b/bindings/src/bindings/multi_asset_delegation.rs index d09c87f9..16e2906a 100644 --- a/bindings/src/bindings/multi_asset_delegation.rs +++ b/bindings/src/bindings/multi_asset_delegation.rs @@ -1427,6 +1427,7 @@ interface MultiAssetDelegation { function PRECISION() external view returns (uint256); function SLASHER_ROLE() external view returns (bytes32); function TANGLE_ROLE() external view returns (bytes32); + function UPGRADER_ROLE() external view returns (bytes32); function UPGRADE_INTERFACE_VERSION() external view returns (string memory); function VIRTUAL_ASSETS() external view returns (uint256); function VIRTUAL_SHARES() external view returns (uint256); @@ -1721,6 +1722,19 @@ interface MultiAssetDelegation { ], "stateMutability": "view" }, + { + "type": "function", + "name": "UPGRADER_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "UPGRADE_INTERFACE_VERSION", @@ -3620,22 +3634,22 @@ pub mod MultiAssetDelegation { /// The creation / init bytecode of the contract. /// /// ```text - ///0x60a06040523461003e5761001161004d565b610019610043565b6144556103078239608051818181613880015281816138e50152613a94015261445590f35b610049565b60405190565b5f80fd5b61005561005f565b61005d61022a565b565b610067610069565b565b610071610073565b565b61007b61007d565b565b610085610087565b565b61008f610091565b565b61009961009b565b565b6100a36100a5565b565b6100ad6100af565b565b6100b76100b9565b565b6100c16100c3565b565b6100cb6100cd565b565b6100d56100d7565b565b6100df6100e1565b565b6100e961012d565b565b60018060a01b031690565b90565b61010d610108610112926100eb565b6100f6565b6100eb565b90565b61011e906100f9565b90565b61012a90610115565b90565b61013630610121565b608052565b60401c90565b60ff1690565b6101536101589161013b565b610141565b90565b6101659054610147565b90565b5f0190565b5f1c90565b60018060401b031690565b61018961018e9161016d565b610172565b90565b61019b905461017d565b90565b60018060401b031690565b5f1b90565b906101bf60018060401b03916101a9565b9181191691161790565b6101dd6101d86101e29261019e565b6100f6565b61019e565b90565b90565b906101fd6101f8610204926101c9565b6101e5565b82546101ae565b9055565b6102119061019e565b9052565b9190610228905f60208501940190610208565b565b6102326102e2565b61023d5f820161015b565b6102c65761024c5f8201610191565b61026461025e60018060401b0361019e565b9161019e565b0361026d575b50565b610280905f60018060401b0391016101e8565b60018060401b036102bd7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2916102b4610043565b91829182610215565b0390a15f61026a565b5f63f92ee8a960e01b8152806102de60048201610168565b0390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009056fe60806040526004361015610015575b366134ce57005b61001f5f356103ce565b806301ffc9a7146103c957806305d64e38146103c45780630aa8b110146103bf57806312d91c88146103ba57806318056dc2146103b557806319e82e61146103b0578063248a9ca3146103ab5780632f2ff15d146103a657806332273f61146103a157806336568abe1461039c578063453eccea1461039757806346d163aa14610392578063491474111461038d5780634962f88f146103885780634de8addc146103835780634e9c929a1461037e5780634f1ef286146103795780635095af641461037457806352d1902d1461036f57806354de23201461036a5780635c975abb14610365578063602356e31461036057806366c368751461035b57806372b5032d1461035657806375b238fc1461035157806377ab2cf31461034c5780637df92ada1461034757806388c47f68146103425780638a19c8bc1461033d5780638a7fe60f1461033857806390837ff41461033357806391d148541461032e5780639480e4dd146103295780639494f42614610324578063960856731461031f5780639722f4b91461031a5780639e87058514610315578063a217fddf14610310578063a457af3d1461030b578063a4b32de814610306578063a7fa6f9814610301578063aaf5eb68146102fc578063ad3cb1cc146102f7578063b54b2b9e146102f2578063b6608409146102ed578063ba05bbf5146102e8578063c07449e2146102e3578063c550d938146102de578063cbb6d6bd146102d9578063d27a6f06146102d4578063d45ff582146102cf578063d547741f146102ca578063db8a173a146102c5578063dd764abf146102c0578063e07dec29146102bb578063e1a45218146102b6578063e27e05c1146102b1578063f3c9b311146102ac5763f7cb789a0361000e57611fc4565b611f80565b611f13565b611ede565b611e75565b611e0c565b611d9a565b611d57565b611d22565b611cb4565b611c44565b611b82565b611b4c565b611ade565b611a9a565b611a2e565b6119ea565b6118bb565b611848565b6117db565b611776565b611654565b6115e4565b611575565b61151f565b6114d0565b611461565b61142b565b6113f6565b6113c1565b61136a565b611328565b6112b9565b61124b565b6111db565b611176565b611141565b61110c565b6110a8565b611073565b611006565b610fd1565b610f78565b610e1c565b610d6d565b610d28565b610cbb565b610c88565b610c35565b610bc9565b610b94565b610b2a565b610ac8565b610a61565b61099a565b610917565b610872565b61050f565b61045a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b6103fb816103e6565b0361040257565b5f80fd5b90503590610413826103f2565b565b9060208282031261042e5761042b915f01610406565b90565b6103de565b151590565b61044190610433565b9052565b9190610458905f60208501940190610438565b565b3461048a57610486610475610470366004610415565b611ffd565b61047d6103d4565b91829182610445565b0390f35b6103da565b5f91031261049957565b6103de565b1c90565b60018060401b031690565b6104bd9060086104c2930261049e565b6104a2565b90565b906104d091546104ad565b90565b6104df5f6010906104c5565b90565b60018060401b031690565b6104f6906104e2565b9052565b919061050d905f602085019401906104ed565b565b3461053f5761051f36600461048f565b61053b61052a6104d3565b6105326103d4565b918291826104fa565b0390f35b6103da565b60018060a01b031690565b61055890610544565b90565b6105648161054f565b0361056b57565b5f80fd5b9050359061057c8261055b565b565b610587816104e2565b0361058e57565b5f80fd5b9050359061059f8261057e565b565b91906040838203126105c957806105bd6105c6925f860161056f565b93602001610592565b90565b6103de565b90565b6105e56105e06105ea92610544565b6105ce565b610544565b90565b6105f6906105d1565b90565b610602906105ed565b90565b9061060f906105f9565b5f5260205260405f2090565b61062f61062a610634926104e2565b6105ce565b6104e2565b90565b906106419061061b565b5f5260205260405f2090565b5f1c90565b61065e6106639161064d565b6104a2565b90565b6106709054610652565b90565b60401c90565b61068561068a91610673565b6104a2565b90565b6106979054610679565b90565b60801c90565b6106ac6106b19161069a565b6104a2565b90565b6106be90546106a0565b90565b90565b6106d06106d59161064d565b6106c1565b90565b6106e290546106c4565b90565b61ffff1690565b6106f86106fd9161064d565b6106e5565b90565b61070a90546106ec565b90565b90565b61071c6107219161064d565b61070d565b90565b61072e9054610710565b90565b90610740610745926055610605565b610637565b6107505f8201610666565b9161075c5f830161068d565b916107685f82016106b4565b91610775600183016106d8565b9161078260028201610700565b9161078f60038301610724565b9161079c60048201610724565b916107b560066107ae60058501610724565b93016106d8565b90565b90565b6107c4906107b8565b9052565b61ffff1690565b6107d8906107c8565b9052565b90565b6107e8906107dc565b9052565b9694929099989795939161012088019a5f8901610808916104ed565b60208801610815916104ed565b60408701610822916104ed565b6060860161082f916107bb565b6080850161083c916107cf565b60a08401610849916107df565b60c08301610856916107df565b60e08201610863916107df565b61010001610870916107bb565b565b346108ad576108a961088e6108883660046105a1565b90610731565b956108a09997999591959492946103d4565b998a998a6107ec565b0390f35b6103da565b6108bb816107b8565b036108c257565b5f80fd5b905035906108d3826108b2565b565b91906040838203126108fd57806108f16108fa925f860161056f565b936020016108c6565b90565b6103de565b9190610915905f602085019401906107df565b565b346109485761094461093361092d3660046108d5565b90612095565b61093b6103d4565b91829182610902565b0390f35b6103da565b90565b61096461095f6109699261094d565b6105ce565b6107c8565b90565b610977612af8610950565b90565b61098261096c565b90565b9190610998905f602085019401906107cf565b565b346109ca576109aa36600461048f565b6109c66109b561097a565b6109bd6103d4565b91829182610985565b0390f35b6103da565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a135781359160018060401b038311610a0e576020019260208302840111610a0957565b6109d7565b6109d3565b6109cf565b919091604081840312610a5757610a31835f830161056f565b92602082013560018060401b038111610a5257610a4e92016109db565b9091565b6103e2565b6103de565b5f0190565b34610a9057610a7a610a74366004610a18565b91612166565b610a826103d4565b80610a8c81610a5c565b0390f35b6103da565b90602082820312610aae57610aab915f016108c6565b90565b6103de565b9190610ac6905f602085019401906107bb565b565b34610af857610af4610ae3610ade366004610a95565b61219e565b610aeb6103d4565b91829182610ab3565b0390f35b6103da565b9190604083820312610b255780610b19610b22925f86016108c6565b9360200161056f565b90565b6103de565b34610b5957610b43610b3d366004610afd565b906121f2565b610b4b6103d4565b80610b5581610a5c565b0390f35b6103da565b610b6e906008610b73930261049e565b6106e5565b90565b90610b819154610b5e565b90565b610b916001601090610b76565b90565b34610bc457610ba436600461048f565b610bc0610baf610b84565b610bb76103d4565b91829182610985565b0390f35b6103da565b34610bf857610be2610bdc366004610afd565b906121fe565b610bea6103d4565b80610bf481610a5c565b0390f35b6103da565b90565b610c14610c0f610c1992610bfd565b6105ce565b6107c8565b90565b610c27613e80610c00565b90565b610c32610c1c565b90565b34610c6557610c4536600461048f565b610c61610c50610c2a565b610c586103d4565b91829182610985565b0390f35b6103da565b90602082820312610c8357610c80915f0161056f565b90565b6103de565b34610cb657610ca0610c9b366004610c6a565b61233c565b610ca86103d4565b80610cb281610a5c565b0390f35b6103da565b34610ceb57610ce7610cd6610cd1366004610c6a565b61241a565b610cde6103d4565b91829182610902565b0390f35b6103da565b90565b610d07610d02610d0c92610cf0565b6105ce565b6107c8565b90565b610d1a612710610cf3565b90565b610d25610d0f565b90565b34610d5857610d3836600461048f565b610d54610d43610d1d565b610d4b6103d4565b91829182610985565b0390f35b6103da565b610d6a60016008906104c5565b90565b34610d9d57610d7d36600461048f565b610d99610d88610d5d565b610d906103d4565b918291826104fa565b0390f35b6103da565b9190604083820312610dca5780610dbe610dc7925f8601610592565b9360200161056f565b90565b6103de565b90610dd99061061b565b5f5260205260405f2090565b90610def906105f9565b5f5260205260405f2090565b610e14610e1992610e0f6058935f94610dcf565b610de5565b6104c5565b90565b34610e4d57610e49610e38610e32366004610da2565b90610dfb565b610e406103d4565b918291826104fa565b0390f35b6103da565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e7e90610e56565b810190811060018060401b03821117610e9657604052565b610e60565b90610eae610ea76103d4565b9283610e74565b565b60018060401b038111610ecc57610ec8602091610e56565b0190565b610e60565b90825f939282370152565b90929192610ef1610eec82610eb0565b610e9b565b93818552602085019082840111610f0d57610f0b92610ed1565b565b610e52565b9080601f83011215610f3057816020610f2d93359101610edc565b90565b6109cf565b919091604081840312610f7357610f4e835f830161056f565b92602082013560018060401b038111610f6e57610f6b9201610f12565b90565b6103e2565b6103de565b610f8c610f86366004610f35565b90612462565b610f946103d4565b80610f9e81610a5c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fce610fa2565b90565b3461100157610fe136600461048f565b610ffd610fec610fc6565b610ff46103d4565b91829182610ab3565b0390f35b6103da565b346110365761101636600461048f565b6110326110216124d9565b6110296103d4565b91829182610ab3565b0390f35b6103da565b90565b61105261104d6110579261103b565b6105ce565b6107c8565b90565b611065612ee061103e565b90565b61107061105a565b90565b346110a35761108336600461048f565b61109f61108e611068565b6110966103d4565b91829182610985565b0390f35b6103da565b346110d8576110b836600461048f565b6110d46110c361250d565b6110cb6103d4565b91829182610445565b0390f35b6103da565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111096110dd565b90565b3461113c5761111c36600461048f565b611138611127611101565b61112f6103d4565b91829182610ab3565b0390f35b6103da565b346111715761116d61115c611157366004610c6a565b61252f565b6111646103d4565b918291826104fa565b0390f35b6103da565b346111a7576111a361119261118c366004610da2565b9061254e565b61119a6103d4565b918291826104fa565b0390f35b6103da565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111d86111ac565b90565b3461120b576111eb36600461048f565b6112076111f66111d0565b6111fe6103d4565b91829182610ab3565b0390f35b6103da565b60ff1690565b61122690600861122b930261049e565b611210565b90565b906112399154611216565b90565b61124860055f9061122e565b90565b3461127b5761125b36600461048f565b61127761126661123c565b61126e6103d4565b91829182610445565b0390f35b6103da565b90565b61129761129261129c92611280565b6105ce565b6104e2565b90565b6112ab624f1a00611283565b90565b6112b661129f565b90565b346112e9576112c936600461048f565b6112e56112d46112ae565b6112dc6103d4565b918291826104fa565b0390f35b6103da565b90565b61130561130061130a926112ee565b6105ce565b6107dc565b90565b61131a6305f5e1006112f1565b90565b61132561130d565b90565b346113585761133836600461048f565b61135461134361131d565b61134b6103d4565b91829182610902565b0390f35b6103da565b6113675f806104c5565b90565b3461139a5761137a36600461048f565b61139661138561135d565b61138d6103d4565b918291826104fa565b0390f35b6103da565b6113a89061054f565b9052565b91906113bf905f6020850194019061139f565b565b346113f1576113ed6113dc6113d7366004610c6a565b6125bc565b6113e46103d4565b918291826113ac565b0390f35b6103da565b346114265761142261141161140c366004610415565b6125db565b6114196103d4565b918291826113ac565b0390f35b6103da565b3461145c57611458611447611441366004610afd565b90612606565b61144f6103d4565b91829182610445565b0390f35b6103da565b346114915761148d61147c611477366004610c6a565b612638565b6114846103d4565b918291826104fa565b0390f35b6103da565b90916060828403126114cb576114c86114b1845f850161056f565b936114bf8160208601610592565b9360400161056f565b90565b6103de565b34611501576114fd6114ec6114e6366004611496565b91612870565b6114f46103d4565b91829182610902565b0390f35b6103da565b61151c906115176056915f92610de5565b6104c5565b90565b3461154f5761154b61153a611535366004610c6a565b611506565b6115426103d4565b918291826104fa565b0390f35b6103da565b61156d611572926115686057935f94610dcf565b610de5565b6104c5565b90565b346115a6576115a261159161158b366004610da2565b90611554565b6115996103d4565b918291826104fa565b0390f35b6103da565b90565b6115c26115bd6115c7926115ab565b6105ce565b6104e2565b90565b6115d662278d006115ae565b90565b6115e16115ca565b90565b34611614576115f436600461048f565b6116106115ff6115d9565b6116076103d4565b918291826104fa565b0390f35b6103da565b90565b5f1b90565b61163561163061163a92611619565b61161c565b6107b8565b90565b6116465f611621565b90565b61165161163d565b90565b346116845761166436600461048f565b61168061166f611649565b6116776103d4565b91829182610ab3565b0390f35b6103da565b611692906104e2565b9052565b61169f906107b8565b9052565b6116ac906107c8565b9052565b6116b9906107dc565b9052565b906101008061175e936116d65f8201515f860190611689565b6116e860208201516020860190611689565b6116fa60408201516040860190611689565b61170c60608201516060860190611696565b61171e608082015160808601906116a3565b61173060a082015160a08601906116b0565b61174260c082015160c08601906116b0565b61175460e082015160e08601906116b0565b0151910190611696565b565b9190611774905f61012085019401906116bd565b565b346117a7576117a361179261178c3660046105a1565b90612a1e565b61179a6103d4565b91829182611760565b0390f35b6103da565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117d86117ac565b90565b3461180b576117eb36600461048f565b6118076117f66117d0565b6117fe6103d4565b91829182610ab3565b0390f35b6103da565b90565b61182761182261182c92611810565b6105ce565b6107c8565b90565b61183a6132c8611813565b90565b61184561182f565b90565b346118785761185836600461048f565b61187461186361183d565b61186b6103d4565b91829182610985565b0390f35b6103da565b90565b61189461188f6118999261187d565b6105ce565b6107dc565b90565b6118ad670de0b6b3a7640000611880565b90565b6118b861189c565b90565b346118eb576118cb36600461048f565b6118e76118d66118b0565b6118de6103d4565b91829182610902565b0390f35b6103da565b60018060401b03811161190c57611908602091610e56565b0190565b610e60565b9061192361191e836118f0565b610e9b565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119596005611911565b9061196660208301611928565b565b61197061194f565b90565b61197b611968565b90565b611986611973565b90565b5190565b60209181520190565b90825f9392825e0152565b6119c06119c96020936119ce936119b781611989565b9384809361198d565b95869101611996565b610e56565b0190565b6119e79160208201915f8184039101526119a1565b90565b34611a1a576119fa36600461048f565b611a16611a0561197e565b611a0d6103d4565b918291826119d2565b0390f35b6103da565b611a2b60075f9061122e565b90565b34611a5e57611a3e36600461048f565b611a5a611a49611a1f565b611a516103d4565b91829182610445565b0390f35b6103da565b90565b611a7a611a75611a7f92611a63565b6105ce565b6107dc565b90565b611a8c6001611a66565b90565b611a97611a82565b90565b34611aca57611aaa36600461048f565b611ac6611ab5611a8f565b611abd6103d4565b91829182610902565b0390f35b6103da565b611adb5f6018906104c5565b90565b34611b0e57611aee36600461048f565b611b0a611af9611acf565b611b016103d4565b918291826104fa565b0390f35b6103da565b90602080611b3593611b2b5f8201515f8601906116b0565b01519101906116b0565b565b9190611b4a905f60408501940190611b13565b565b34611b7d57611b79611b68611b62366004610da2565b90612af5565b611b706103d4565b91829182611b37565b0390f35b6103da565b34611bb357611baf611b9e611b98366004610da2565b90612b1d565b611ba66103d4565b918291826104fa565b0390f35b6103da565b611bc1816107dc565b03611bc857565b5f80fd5b90503590611bd982611bb8565b565b611be4816107c8565b03611beb57565b5f80fd5b90503590611bfc82611bdb565b565b608081830312611c3f57611c14825f830161056f565b92611c3c611c258460208501611bcc565b93611c338160408601611bcc565b93606001611bef565b90565b6103de565b34611c7657611c60611c57366004611bfe565b929190916132f8565b611c686103d4565b80611c7281610a5c565b0390f35b6103da565b90565b611c92611c8d611c9792611c7b565b6105ce565b6104e2565b90565b611ca66276a700611c7e565b90565b611cb1611c9a565b90565b34611ce457611cc436600461048f565b611ce0611ccf611ca9565b611cd76103d4565b918291826104fa565b0390f35b6103da565b90565b611d00611cfb611d0592611ce9565b6105ce565b6104e2565b90565b611d1462093a80611cec565b90565b611d1f611d08565b90565b34611d5257611d3236600461048f565b611d4e611d3d611d17565b611d456103d4565b918291826104fa565b0390f35b6103da565b34611d8657611d70611d6a366004610afd565b90613330565b611d786103d4565b80611d8281610a5c565b0390f35b6103da565b611d9760015f906104c5565b90565b34611dca57611daa36600461048f565b611dc6611db5611d8b565b611dbd6103d4565b918291826104fa565b0390f35b6103da565b90565b611de6611de1611deb92611dcf565b6105ce565b6107dc565b90565b611dfe662386f26fc10000611dd2565b90565b611e09611dee565b90565b34611e3c57611e1c36600461048f565b611e38611e27611e01565b611e2f6103d4565b91829182610902565b0390f35b6103da565b90602082820312611e70575f82013560018060401b038111611e6b57611e6792016109db565b9091565b6103e2565b6103de565b34611ea457611e8e611e88366004611e41565b90613391565b611e966103d4565b80611ea081610a5c565b0390f35b6103da565b611ebd611eb8611ec292610cf0565b6105ce565b6107dc565b90565b611ed0612710611ea9565b90565b611edb611ec5565b90565b34611f0e57611eee36600461048f565b611f0a611ef9611ed3565b611f016103d4565b91829182610902565b0390f35b6103da565b34611f4257611f2c611f263660046105a1565b906134c2565b611f346103d4565b80611f3e81610a5c565b0390f35b6103da565b90565b611f5e611f59611f6392611f47565b6105ce565b6104e2565b90565b611f7262ed4e00611f4a565b90565b611f7d611f66565b90565b34611fb057611f9036600461048f565b611fac611f9b611f75565b611fa36103d4565b918291826104fa565b0390f35b6103da565b611fc15f6008906104c5565b90565b34611ff457611fd436600461048f565b611ff0611fdf611fb5565b611fe76103d4565b918291826104fa565b0390f35b6103da565b5f90565b612005611ff9565b508061202061201a637965db0b60e01b6103e6565b916103e6565b1490811561202d575b5090565b61203791506134d3565b5f612029565b5f90565b9061204b906105f9565b5f5260205260405f2090565b612060906107b8565b90565b9061206d90612057565b5f5260205260405f2090565b61208d61208861209292611619565b6105ce565b6107dc565b90565b6120ba916120b06120b5926120a861203d565b506011612041565b612063565b610724565b806120cd6120c75f612079565b916107dc565b145f146120e157506120dd61189c565b5b90565b6120de565b60018060401b0381116120fc5760208091020190565b610e60565b90929192612116612111826120e6565b610e9b565b938185526020808601920283019281841161215357915b83831061213a5750505050565b602080916121488486610406565b81520192019161212d565b6109d7565b612163913691612101565b90565b6121829261217c9161217661350b565b92612158565b90613546565b565b5f90565b9061219290612057565b5f5260205260405f2090565b60016121bf6121c5926121af612184565b505f6121b96136ba565b01612188565b016106d8565b90565b906121e3916121de6121d98261219e565b6136de565b6121e5565b565b906121ef916136f2565b50565b906121fc916121c8565b565b908061221961221361220e6137a9565b61054f565b9161054f565b0361222a57612227916137b6565b50565b5f63334bd91960e11b81528061224260048201610a5c565b0390fd5b61224f906105d1565b90565b61225b90612246565b90565b612267906105ed565b90565b60e01b90565b9050519061227d826103f2565b565b9092919261229461228f826120e6565b610e9b565b93818552602080860192028301928184116122d157915b8383106122b85750505050565b602080916122c68486612270565b8152019201916122ab565b6109d7565b9080601f830112156122f4578160206122f19351910161227f565b90565b6109cf565b90602082820312612327575f82015160018060401b0381116123225761231f92016122d6565b90565b6103e2565b6103de565b6123346103d4565b3d5f823e3d90fd5b61234461350b565b61236f5f61235961235484612252565b61225e565b636e25b978906123676103d4565b93849261226a565b8252818061237f60048201610a5c565b03915afa80156123ff5761239b915f916123dd575b5082613546565b6123c57f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d916105f9565b906123ce6103d4565b806123d881610a5c565b0390a2565b6123f991503d805f833e6123f18183610e74565b8101906122f9565b5f612394565b61232c565b9061240e906105f9565b5f5260205260405f2090565b6124316124369161242961203d565b50601b612404565b610724565b90565b9061244b9161244661386f565b61244d565b565b906124609161245b81613929565b613985565b565b9061246c91612439565b565b61247f9061247a613a83565b6124cd565b90565b90565b61249961249461249e92612482565b61161c565b6107b8565b90565b6124ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc612485565b90565b506124d66124a1565b90565b6124e96124e4612184565b61246e565b90565b6124f86124fd9161064d565b611210565b90565b61250a90546124ec565b90565b612515611ff9565b506125285f612522613ae1565b01612500565b90565b5f90565b61254661254b9161253e61252b565b506056610de5565b610666565b90565b6125739161256961256e9261256161252b565b506057610dcf565b610de5565b610666565b90565b5f90565b90612584906105f9565b5f5260205260405f2090565b60018060a01b031690565b6125a76125ac9161064d565b612590565b90565b6125b9905461259b565b90565b6125d36125d8916125cb612576565b50600661257a565b6125af565b90565b6125ed906125e7612576565b50613b1b565b90565b906125fa906105f9565b5f5260205260405f2090565b612635915f61262a6126309361261a611ff9565b50826126246136ba565b01612188565b016125f0565b612500565b90565b61264f6126549161264761252b565b506023610de5565b610666565b90565b90612661906104e2565b9052565b9061266f906107b8565b9052565b9061267d906107c8565b9052565b9061268b906107dc565b9052565b61269a610120610e9b565b90565b9061277b61277160066126ae61268f565b946126c56126bd5f8301610666565b5f8801612657565b6126dc6126d35f830161068d565b60208801612657565b6126f36126ea5f83016106b4565b60408801612657565b61270b612702600183016106d8565b60608801612665565b61272361271a60028301610700565b60808801612673565b61273b61273260038301610724565b60a08801612681565b61275361274a60048301610724565b60c08801612681565b61276b61276260058301610724565b60e08801612681565b016106d8565b6101008401612665565b565b6127869061269d565b90565b61279390516104e2565b90565b6127aa6127a56127af92611619565b6105ce565b6104e2565b90565b6127bc90516107b8565b90565b6127c990516107dc565b90565b634e487b7160e01b5f52601160045260245ffd5b6127ef6127f5919392936107dc565b926107dc565b820391821161280057565b6127cc565b61281461281a919392936107dc565b926107dc565b916128268382026107dc565b92818404149015171561283557565b6127cc565b634e487b7160e01b5f52601260045260245ffd5b61285a612860916107dc565b916107dc565b90811561286b570490565b61283a565b9291909261289961289461288261203d565b9561288f60558590610605565b610637565b61277d565b916128a55f8401612789565b6128b76128b15f612796565b916104e2565b1461297857906128d491906128ce606085016127b2565b91613c4f565b90816128e86128e25f612079565b916107dc565b14612968576128f960c082016127bf565b61291661291061290b60e085016127bf565b6107dc565b916107dc565b11612920575b5050565b6129609293509061294c8261294660e061293f60c061295297016127bf565b92016127bf565b906127e0565b90612805565b61295a61189c565b9061284e565b905f8061291c565b505090506129755f612079565b90565b50505090506129865f612079565b90565b5f90565b5f90565b5f90565b5f90565b6129a161268f565b90602080808080808080808a6129b5612989565b8152016129c0612989565b8152016129cb612989565b8152016129d661298d565b8152016129e1612991565b8152016129ec612995565b8152016129f7612995565b815201612a02612995565b815201612a0d61298d565b81525050565b612a1b612999565b90565b612a4391612a39612a3e92612a31612a13565b506055610605565b610637565b61277d565b90565b612a506040610e9b565b90565b612a5b612a46565b9060208083612a68612995565b815201612a73612995565b81525050565b612a81612a53565b90565b90612a8e9061061b565b5f5260205260405f2090565b90612aa4906105f9565b5f5260205260405f2090565b90612ae7612ade6001612ac1612a46565b94612ad8612ad05f8301610724565b5f8801612681565b01610724565b60208401612681565b565b612af290612ab0565b90565b612b1a91612b10612b1592612b08612a79565b506010612a84565b612a9a565b612ae9565b90565b612b4291612b38612b3d92612b3061252b565b506058610dcf565b610de5565b610666565b90565b612b51612b5691610673565b611210565b90565b612b639054612b45565b90565b612b7a612b75612b7f92611a63565b6105ce565b6104e2565b90565b612b8b906105ed565b90565b90612b9f60018060401b039161161c565b9181191691161790565b90565b90612bc1612bbc612bc89261061b565b612ba9565b8254612b8e565b9055565b60401b90565b90612be160ff60401b91612bcc565b9181191691161790565b612bf490610433565b90565b90565b90612c0f612c0a612c1692612beb565b612bf7565b8254612bd2565b9055565b612c2390612b66565b9052565b9190612c3a905f60208501940190612c1a565b565b909192612c47613d3e565b93612c5c612c565f8701612b59565b15610433565b93612c685f8701610666565b80612c7b612c755f612796565b916104e2565b1480612d95575b90612c96612c906001612b66565b916104e2565b1480612d6d575b612ca8909115610433565b9081612d5c575b50612d4057612cd893612ccd612cc56001612b66565b5f8901612bac565b85612d2e575b61314d565b612ce0575b50565b612ced905f809101612bfa565b6001612d257fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d1c6103d4565b91829182612c27565b0390a15f612cdd565b612d3b60015f8901612bfa565b612cd3565b5f63f92ee8a960e01b815280612d5860048201610a5c565b0390fd5b612d67915015610433565b5f612caf565b50612ca8612d7a30612b82565b3b612d8d612d875f612079565b916107dc565b149050612c9d565b5085612c82565b612db0612dab612db592611619565b6105ce565b610544565b90565b612dc190612d9c565b90565b612dce6040610e9b565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612def57565b612dd1565b90612dfe82612de5565b565b90612e0a90612df4565b9052565b90612e189061054f565b9052565b612e30612e2b612e35926107dc565b6105ce565b6107c8565b90565b612e4260c0610e9b565b90565b90612e4f90610433565b9052565b90612e5d90612057565b5f5260205260405f2090565b612e739051610433565b90565b90612e8260ff9161161c565b9181191691161790565b90612ea1612e9c612ea892612beb565b612bf7565b8254612e76565b9055565b90612eb85f199161161c565b9181191691161790565b612ed6612ed1612edb926107dc565b6105ce565b6107dc565b90565b90565b90612ef6612ef1612efd92612ec2565b612ede565b8254612eac565b9055565b612f0b90516107c8565b90565b90612f1b61ffff9161161c565b9181191691161790565b612f39612f34612f3e926107c8565b6105ce565b6107c8565b90565b90565b90612f59612f54612f6092612f25565b612f41565b8254612f0e565b9055565b90612ff360a06005612ff994612f875f8201612f815f8801612e69565b90612e8c565b612fa060018201612f9a602088016127bf565b90612ee1565b612fb960028201612fb3604088016127bf565b90612ee1565b612fd260038201612fcc606088016127bf565b90612ee1565b612feb60048201612fe5608088016127bf565b90612ee1565b019201612f01565b90612f44565b565b9061300591612f64565b565b60801b90565b9061301d61ffff60801b91613007565b9181191691161790565b9061303c61303761304392612f25565b612f41565b825461300d565b9055565b90565b61305e61305961306392613047565b6105ce565b6104e2565b90565b61307161546061304a565b90565b90613089600160401b600160801b0391612bcc565b9181191691161790565b906130a86130a36130af9261061b565b612ba9565b8254613074565b9055565b90565b6130ca6130c56130cf926130b3565b6105ce565b6104e2565b90565b6130dc601c6130b6565b90565b60c01b90565b906130f760018060c01b0319916130df565b9181191691161790565b9061311661311161311d9261061b565b612ba9565b82546130e5565b9055565b90565b61313861313361313d92613121565b6105ce565b6104e2565b90565b61314a6038613124565b90565b919091613158613d6c565b613160613d80565b613168613da6565b613170613dcc565b61317861163d565b81613182916136f2565b5061318b6111ac565b81613195916136f2565b5061319e6117ac565b906131a8916136f2565b505f806131b490612db8565b6131bc612dc4565b915f8301906131ca91612e00565b60208201906131d891612e0e565b6131e190613e36565b90600192905f80916131f1611ec5565b6131fa90612e1c565b93613203612e38565b965f88019061321191612e45565b602087019061321f91612681565b604086019061322d91612681565b61323690612079565b606085019061324491612681565b61324d90612079565b608084019061325b91612681565b60a083019061326991612673565b60029061327591612e53565b9061327f91612ffb565b600161328c906005612e8c565b613297906001613027565b60016132a290612b66565b6132ac905f612bac565b6132b4613066565b6132be905f613093565b6132c66130d2565b6132d0905f613101565b6132d86130d2565b6132e3906001612bac565b6132eb613140565b6132f6906001613093565b565b90613304939291612c3c565b565b906133219161331c6133178261219e565b6136de565b613323565b565b9061332d916137b6565b50565b9061333a91613306565b565b600161334891016107dc565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b9190811015613373576020020190565b61334f565b35613382816103f2565b90565b61338e906103e6565b90565b91909161339c61350b565b6133a55f612079565b5b806133c36133bd6133b885889061334b565b6107dc565b916107dc565b101561344757613442906133e96133e46133df85888591613363565b613378565b613efd565b6133fd6133f884878491613363565b613378565b6134277fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb91613385565b906134306103d4565b8061343a81610a5c565b0390a261333c565b6133a6565b50509050565b906134679161346261345d6111ac565b6136de565b613469565b565b61347e8261347960238490610de5565b612bac565b6134bd6134ab7f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f35926105f9565b926134b46103d4565b918291826104fa565b0390a2565b906134cc9161344d565b565b613f13565b6134db611ff9565b506134f56134ef6301ffc9a760e01b6103e6565b916103e6565b1490565b6135096135046111ac565b6136de565b565b6135136134f9565b565b5190565b9061352382613515565b811015613534576020809102010190565b61334f565b61354390516103e6565b90565b91908261356361355d6135585f612db8565b61054f565b9161054f565b146136b557823b61357c6135765f612079565b916107dc565b146136af5761358a5f612079565b5b806135a66135a061359b85613515565b6107dc565b916107dc565b10156136a9576135c76135c26135bd848490613519565b613539565b613b1b565b806135e26135dc6135d75f612db8565b61054f565b9161054f565b14158061368e575b613677575061367290613610613609613604858490613519565b613539565b869061401a565b61362361361e848390613519565b613539565b856136576136517f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b3993613385565b916105f9565b916136606103d4565b8061366a81610a5c565b0390a361333c565b61358b565b6136896136848385613519565b613539565b613fc1565b50806136a261369c8761054f565b9161054f565b14156135ea565b50509050565b82613f72565b613f56565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6136f0906136ea6137a9565b90614053565b565b6136fa611ff9565b506137036136ba565b613717613711838590612606565b15610433565b5f146137a2576137419061373c5f61373481600194018690612188565b0185906125f0565b612e8c565b9061374a6137a9565b9061378761378161377b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d95612057565b926105f9565b926105f9565b926137906103d4565b8061379a81610a5c565b0390a4600190565b5050505f90565b6137b1612576565b503390565b6137be611ff9565b506137c76136ba565b6137d2828490612606565b5f1461385c576137fb906137f65f6137ee818094018690612188565b0185906125f0565b612e8c565b906138046137a9565b9061384161383b6138357ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b95612057565b926105f9565b926105f9565b9261384a6103d4565b8061385481610a5c565b0390a4600190565b5050505f90565b61386c906105ed565b90565b61387830613863565b6138aa6138a47f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b1480156138d4575b6138b857565b5f63703e46dd60e11b8152806138d060048201610a5c565b0390fd5b506138dd61408e565b61390f6139097f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b14156138b2565b506139276139226111ac565b6136de565b565b61393290613916565b565b61393d906105d1565b90565b61394990613934565b90565b613955906105ed565b90565b90505190613965826108b2565b565b906020828203126139805761397d915f01613958565b90565b6103de565b91906139b3602061399d61399886613940565b61394c565b6352d1902d906139ab6103d4565b93849261226a565b825281806139c360048201610a5c565b03915afa80915f92613a53575b50155f14613a045750509060016139e557505b565b613a00905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b9283613a1f613a19613a146124a1565b6107b8565b916107b8565b03613a3457613a2f9293506140b4565b6139e3565b613a4f845f918291632a87526960e21b835260048301610ab3565b0390fd5b613a7591925060203d8111613a7c575b613a6d8183610e74565b810190613967565b905f6139d0565b503d613a63565b613a8c30613863565b613abe613ab87f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b03613ac557565b5f63703e46dd60e11b815280613add60048201610a5c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b0f90613385565b5f5260205260405f2090565b613b32613b3791613b2a612576565b506021613b05565b6125af565b90565b90613b44906105f9565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613b6981613b53565b821015613b8357613b7b600491613b57565b910201905f90565b61334f565b90565b60ff1690565b613b9d613ba29161064d565b613b8b565b90565b613baf9054613b91565b90565b60081c90565b613bc4613bc991613bb2565b612590565b90565b613bd69054613bb8565b90565b613be36040610e9b565b90565b90613c1c613c135f613bf6613bd9565b94613c0d613c05838301613ba5565b838801612e00565b01613bcc565b60208401612e0e565b565b613c2790613be6565b90565b613c39613c3f919392936107dc565b926107dc565b8201809211613c4a57565b6127cc565b929192613c6d613c68613c6061203d565b926015613b3a565b613b50565b93613c7785613b53565b93613c815f612079565b5b80613c95613c8f886107dc565b916107dc565b1015613d3557613caf613ca9888390613b60565b50613b88565b613cba5f82016125af565b613ccc613cc68861054f565b9161054f565b1480613d08575b613ce7575b50613ce29061333c565b613c82565b613ce29194613cfb6001613d019301610724565b90613c2a565b9390613cd8565b50613d1d613d1860028301613c1e565b613e36565b613d2f613d29866107b8565b916107b8565b14613cd3565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613d6a61413d565b565b613d74613d62565b565b613d7e61413d565b565b613d88613d76565b565b613d9261413d565b613d9a613d9c565b565b613da4614198565b565b613dae613d8a565b565b613db861413d565b613dc0613dc2565b565b613dca6141de565b565b613dd4613db0565b565b613de09051612df4565b90565b613ded905161054f565b90565b613df990612df4565b90565b613e0590613df0565b9052565b916020613e2a929493613e2360408201965f830190613dfc565b019061139f565b565b60200190565b5190565b613e3e612184565b50613e80613e596020613e525f8501613dd6565b9301613de3565b91613e71613e656103d4565b93849260208401613e09565b60208201810382520382610e74565b613e92613e8c82613e32565b91613e2c565b2090565b1b90565b91906008613eba910291613eb460018060a01b0384613e96565b92613e96565b9181191691161790565b90565b9190613edd613ed8613ee5936105f9565b613ec4565b908354613e9a565b9055565b613efb91613ef5612576565b91613ec7565b565b5f613f0c613f11926021613b05565b613ee9565b565b613f2663ffffffff60e01b5f3516613b1b565b80613f41613f3b613f365f612db8565b61054f565b9161054f565b0361421c5763ffffffff60e01b5f35166141fd565b5f63d92e233d60e01b815280613f6e60048201610a5c565b0390fd5b613f8d905f9182916322a2d07b60e21b8352600483016113ac565b0390fd5b613f9a906103e6565b9052565b916020613fbf929493613fb860408201965f830190613f91565b019061139f565b565b613fdb5f9283926310ae11a960e31b845260048401613f9e565b0390fd5b90613ff060018060a01b039161161c565b9181191691161790565b9061400f61400a614016926105f9565b613ec4565b8254613fdf565b9055565b61402961402e92916021613b05565b613ffa565b565b91602061405192949361404a60408201965f83019061139f565b01906107bb565b565b90614068614062838390612606565b15610433565b614070575050565b61408a5f92839263e2517d3f60e01b845260048401614030565b0390fd5b614096612576565b506140b15f6140ab6140a66124a1565b61423a565b016125af565b90565b906140be8261423d565b816140e97fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b916105f9565b906140f26103d4565b806140fc81610a5c565b0390a261410881613e32565b61411a6141145f612079565b916107dc565b115f1461412e5761412a9161430d565b505b565b5050614138614292565b61412c565b61414e61414861433c565b15610433565b61415457565b5f631afcd79f60e31b81528061416c60048201610a5c565b0390fd5b61417861413d565b614180614182565b565b61419661418d613ae1565b5f809101612e8c565b565b6141a0614170565b565b6141aa61413d565b6141b26141c1565b565b6141be6001611a66565b90565b6141dc6141cc61435a565b5f6141d56141b4565b9101612ee1565b565b6141e66141a2565b565b91906141fb905f60208501940190613f91565b565b614218905f91829163c2a825f560e01b8352600483016141e8565b0390fd5b5f8091368280378136915af43d5f803e5f14614236573d5ff35b3d5ffd5b90565b803b61425161424b5f612079565b916107dc565b1461427357614271905f61426b6142666124a1565b61423a565b01613ffa565b565b61428e905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b346142a561429f5f612079565b916107dc565b116142ac57565b5f63b398979f60e01b8152806142c460048201610a5c565b0390fd5b606090565b906142df6142da83610eb0565b610e9b565b918252565b3d5f146142ff576142f43d6142cd565b903d5f602084013e5b565b6143076142c8565b906142fd565b5f806143399361431b6142c8565b508390602081019051915af4906143306142e4565b9091909161437e565b90565b614344611ff9565b506143575f614351613d3e565b01612b59565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906143929061438b6142c8565b5015610433565b5f1461439e5750614402565b6143a782613e32565b6143b96143b35f612079565b916107dc565b14806143e7575b6143c8575090565b6143e3905f918291639996b31560e01b8352600483016113ac565b0390fd5b50803b6143fc6143f65f612079565b916107dc565b146143c0565b61440b81613e32565b61441d6144175f612079565b916107dc565b115f1461442c57805190602001fd5b5f63d6bda27560e01b81528061444460048201610a5c565b0390fdfea164736f6c634300081a000a + ///0x60a06040523461003e5761001161004d565b610019610043565b6144dc61030782396080518181816139070152818161396c0152613b1b01526144dc90f35b610049565b60405190565b5f80fd5b61005561005f565b61005d61022a565b565b610067610069565b565b610071610073565b565b61007b61007d565b565b610085610087565b565b61008f610091565b565b61009961009b565b565b6100a36100a5565b565b6100ad6100af565b565b6100b76100b9565b565b6100c16100c3565b565b6100cb6100cd565b565b6100d56100d7565b565b6100df6100e1565b565b6100e961012d565b565b60018060a01b031690565b90565b61010d610108610112926100eb565b6100f6565b6100eb565b90565b61011e906100f9565b90565b61012a90610115565b90565b61013630610121565b608052565b60401c90565b60ff1690565b6101536101589161013b565b610141565b90565b6101659054610147565b90565b5f0190565b5f1c90565b60018060401b031690565b61018961018e9161016d565b610172565b90565b61019b905461017d565b90565b60018060401b031690565b5f1b90565b906101bf60018060401b03916101a9565b9181191691161790565b6101dd6101d86101e29261019e565b6100f6565b61019e565b90565b90565b906101fd6101f8610204926101c9565b6101e5565b82546101ae565b9055565b6102119061019e565b9052565b9190610228905f60208501940190610208565b565b6102326102e2565b61023d5f820161015b565b6102c65761024c5f8201610191565b61026461025e60018060401b0361019e565b9161019e565b0361026d575b50565b610280905f60018060401b0391016101e8565b60018060401b036102bd7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2916102b4610043565b91829182610215565b0390a15f61026a565b5f63f92ee8a960e01b8152806102de60048201610168565b0390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009056fe60806040526004361015610015575b3661355557005b61001f5f356103de565b806301ffc9a7146103d957806305d64e38146103d45780630aa8b110146103cf57806312d91c88146103ca57806318056dc2146103c557806319e82e61146103c0578063248a9ca3146103bb5780632f2ff15d146103b657806332273f61146103b157806336568abe146103ac578063453eccea146103a757806346d163aa146103a2578063491474111461039d5780634962f88f146103985780634de8addc146103935780634e9c929a1461038e5780634f1ef286146103895780635095af641461038457806352d1902d1461037f57806354de23201461037a5780635c975abb14610375578063602356e31461037057806366c368751461036b57806372b5032d1461036657806375b238fc1461036157806377ab2cf31461035c5780637df92ada1461035757806388c47f68146103525780638a19c8bc1461034d5780638a7fe60f1461034857806390837ff41461034357806391d148541461033e5780639480e4dd146103395780639494f42614610334578063960856731461032f5780639722f4b91461032a5780639e87058514610325578063a217fddf14610320578063a457af3d1461031b578063a4b32de814610316578063a7fa6f9814610311578063aaf5eb681461030c578063ad3cb1cc14610307578063b54b2b9e14610302578063b6608409146102fd578063ba05bbf5146102f8578063c07449e2146102f3578063c550d938146102ee578063cbb6d6bd146102e9578063d27a6f06146102e4578063d45ff582146102df578063d547741f146102da578063db8a173a146102d5578063dd764abf146102d0578063e07dec29146102cb578063e1a45218146102c6578063e27e05c1146102c1578063f3c9b311146102bc578063f72c0d8b146102b75763f7cb789a0361000e57612038565b611ff4565b611f90565b611f23565b611eee565b611e85565b611e1c565b611daa565b611d67565b611d32565b611cc4565b611c54565b611b92565b611b5c565b611aee565b611aaa565b611a3e565b6119fa565b6118cb565b611858565b6117eb565b611786565b611664565b6115f4565b611585565b61152f565b6114e0565b611471565b61143b565b611406565b6113d1565b61137a565b611338565b6112c9565b61125b565b6111eb565b611186565b611151565b61111c565b6110b8565b611083565b611016565b610fe1565b610f88565b610e2c565b610d7d565b610d38565b610ccb565b610c98565b610c45565b610bd9565b610ba4565b610b3a565b610ad8565b610a71565b6109aa565b610927565b610882565b61051f565b61046a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b61040b816103f6565b0361041257565b5f80fd5b9050359061042382610402565b565b9060208282031261043e5761043b915f01610416565b90565b6103ee565b151590565b61045190610443565b9052565b9190610468905f60208501940190610448565b565b3461049a57610496610485610480366004610425565b612071565b61048d6103e4565b91829182610455565b0390f35b6103ea565b5f9103126104a957565b6103ee565b1c90565b60018060401b031690565b6104cd9060086104d293026104ae565b6104b2565b90565b906104e091546104bd565b90565b6104ef5f6010906104d5565b90565b60018060401b031690565b610506906104f2565b9052565b919061051d905f602085019401906104fd565b565b3461054f5761052f36600461049f565b61054b61053a6104e3565b6105426103e4565b9182918261050a565b0390f35b6103ea565b60018060a01b031690565b61056890610554565b90565b6105748161055f565b0361057b57565b5f80fd5b9050359061058c8261056b565b565b610597816104f2565b0361059e57565b5f80fd5b905035906105af8261058e565b565b91906040838203126105d957806105cd6105d6925f860161057f565b936020016105a2565b90565b6103ee565b90565b6105f56105f06105fa92610554565b6105de565b610554565b90565b610606906105e1565b90565b610612906105fd565b90565b9061061f90610609565b5f5260205260405f2090565b61063f61063a610644926104f2565b6105de565b6104f2565b90565b906106519061062b565b5f5260205260405f2090565b5f1c90565b61066e6106739161065d565b6104b2565b90565b6106809054610662565b90565b60401c90565b61069561069a91610683565b6104b2565b90565b6106a79054610689565b90565b60801c90565b6106bc6106c1916106aa565b6104b2565b90565b6106ce90546106b0565b90565b90565b6106e06106e59161065d565b6106d1565b90565b6106f290546106d4565b90565b61ffff1690565b61070861070d9161065d565b6106f5565b90565b61071a90546106fc565b90565b90565b61072c6107319161065d565b61071d565b90565b61073e9054610720565b90565b90610750610755926055610615565b610647565b6107605f8201610676565b9161076c5f830161069d565b916107785f82016106c4565b91610785600183016106e8565b9161079260028201610710565b9161079f60038301610734565b916107ac60048201610734565b916107c560066107be60058501610734565b93016106e8565b90565b90565b6107d4906107c8565b9052565b61ffff1690565b6107e8906107d8565b9052565b90565b6107f8906107ec565b9052565b9694929099989795939161012088019a5f8901610818916104fd565b60208801610825916104fd565b60408701610832916104fd565b6060860161083f916107cb565b6080850161084c916107df565b60a08401610859916107ef565b60c08301610866916107ef565b60e08201610873916107ef565b61010001610880916107cb565b565b346108bd576108b961089e6108983660046105b1565b90610741565b956108b09997999591959492946103e4565b998a998a6107fc565b0390f35b6103ea565b6108cb816107c8565b036108d257565b5f80fd5b905035906108e3826108c2565b565b919060408382031261090d578061090161090a925f860161057f565b936020016108d6565b90565b6103ee565b9190610925905f602085019401906107ef565b565b346109585761095461094361093d3660046108e5565b90612109565b61094b6103e4565b91829182610912565b0390f35b6103ea565b90565b61097461096f6109799261095d565b6105de565b6107d8565b90565b610987612af8610960565b90565b61099261097c565b90565b91906109a8905f602085019401906107df565b565b346109da576109ba36600461049f565b6109d66109c561098a565b6109cd6103e4565b91829182610995565b0390f35b6103ea565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a235781359160018060401b038311610a1e576020019260208302840111610a1957565b6109e7565b6109e3565b6109df565b919091604081840312610a6757610a41835f830161057f565b92602082013560018060401b038111610a6257610a5e92016109eb565b9091565b6103f2565b6103ee565b5f0190565b34610aa057610a8a610a84366004610a28565b916121da565b610a926103e4565b80610a9c81610a6c565b0390f35b6103ea565b90602082820312610abe57610abb915f016108d6565b90565b6103ee565b9190610ad6905f602085019401906107cb565b565b34610b0857610b04610af3610aee366004610aa5565b612212565b610afb6103e4565b91829182610ac3565b0390f35b6103ea565b9190604083820312610b355780610b29610b32925f86016108d6565b9360200161057f565b90565b6103ee565b34610b6957610b53610b4d366004610b0d565b90612266565b610b5b6103e4565b80610b6581610a6c565b0390f35b6103ea565b610b7e906008610b8393026104ae565b6106f5565b90565b90610b919154610b6e565b90565b610ba16001601090610b86565b90565b34610bd457610bb436600461049f565b610bd0610bbf610b94565b610bc76103e4565b91829182610995565b0390f35b6103ea565b34610c0857610bf2610bec366004610b0d565b90612272565b610bfa6103e4565b80610c0481610a6c565b0390f35b6103ea565b90565b610c24610c1f610c2992610c0d565b6105de565b6107d8565b90565b610c37613e80610c10565b90565b610c42610c2c565b90565b34610c7557610c5536600461049f565b610c71610c60610c3a565b610c686103e4565b91829182610995565b0390f35b6103ea565b90602082820312610c9357610c90915f0161057f565b90565b6103ee565b34610cc657610cb0610cab366004610c7a565b6123b0565b610cb86103e4565b80610cc281610a6c565b0390f35b6103ea565b34610cfb57610cf7610ce6610ce1366004610c7a565b61248e565b610cee6103e4565b91829182610912565b0390f35b6103ea565b90565b610d17610d12610d1c92610d00565b6105de565b6107d8565b90565b610d2a612710610d03565b90565b610d35610d1f565b90565b34610d6857610d4836600461049f565b610d64610d53610d2d565b610d5b6103e4565b91829182610995565b0390f35b6103ea565b610d7a60016008906104d5565b90565b34610dad57610d8d36600461049f565b610da9610d98610d6d565b610da06103e4565b9182918261050a565b0390f35b6103ea565b9190604083820312610dda5780610dce610dd7925f86016105a2565b9360200161057f565b90565b6103ee565b90610de99061062b565b5f5260205260405f2090565b90610dff90610609565b5f5260205260405f2090565b610e24610e2992610e1f6058935f94610ddf565b610df5565b6104d5565b90565b34610e5d57610e59610e48610e42366004610db2565b90610e0b565b610e506103e4565b9182918261050a565b0390f35b6103ea565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e8e90610e66565b810190811060018060401b03821117610ea657604052565b610e70565b90610ebe610eb76103e4565b9283610e84565b565b60018060401b038111610edc57610ed8602091610e66565b0190565b610e70565b90825f939282370152565b90929192610f01610efc82610ec0565b610eab565b93818552602085019082840111610f1d57610f1b92610ee1565b565b610e62565b9080601f83011215610f4057816020610f3d93359101610eec565b90565b6109df565b919091604081840312610f8357610f5e835f830161057f565b92602082013560018060401b038111610f7e57610f7b9201610f22565b90565b6103f2565b6103ee565b610f9c610f96366004610f45565b906124d6565b610fa46103e4565b80610fae81610a6c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fde610fb2565b90565b3461101157610ff136600461049f565b61100d610ffc610fd6565b6110046103e4565b91829182610ac3565b0390f35b6103ea565b346110465761102636600461049f565b61104261103161254d565b6110396103e4565b91829182610ac3565b0390f35b6103ea565b90565b61106261105d6110679261104b565b6105de565b6107d8565b90565b611075612ee061104e565b90565b61108061106a565b90565b346110b35761109336600461049f565b6110af61109e611078565b6110a66103e4565b91829182610995565b0390f35b6103ea565b346110e8576110c836600461049f565b6110e46110d3612581565b6110db6103e4565b91829182610455565b0390f35b6103ea565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111196110ed565b90565b3461114c5761112c36600461049f565b611148611137611111565b61113f6103e4565b91829182610ac3565b0390f35b6103ea565b346111815761117d61116c611167366004610c7a565b6125a3565b6111746103e4565b9182918261050a565b0390f35b6103ea565b346111b7576111b36111a261119c366004610db2565b906125c2565b6111aa6103e4565b9182918261050a565b0390f35b6103ea565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111e86111bc565b90565b3461121b576111fb36600461049f565b6112176112066111e0565b61120e6103e4565b91829182610ac3565b0390f35b6103ea565b60ff1690565b61123690600861123b93026104ae565b611220565b90565b906112499154611226565b90565b61125860055f9061123e565b90565b3461128b5761126b36600461049f565b61128761127661124c565b61127e6103e4565b91829182610455565b0390f35b6103ea565b90565b6112a76112a26112ac92611290565b6105de565b6104f2565b90565b6112bb624f1a00611293565b90565b6112c66112af565b90565b346112f9576112d936600461049f565b6112f56112e46112be565b6112ec6103e4565b9182918261050a565b0390f35b6103ea565b90565b61131561131061131a926112fe565b6105de565b6107ec565b90565b61132a6305f5e100611301565b90565b61133561131d565b90565b346113685761134836600461049f565b61136461135361132d565b61135b6103e4565b91829182610912565b0390f35b6103ea565b6113775f806104d5565b90565b346113aa5761138a36600461049f565b6113a661139561136d565b61139d6103e4565b9182918261050a565b0390f35b6103ea565b6113b89061055f565b9052565b91906113cf905f602085019401906113af565b565b34611401576113fd6113ec6113e7366004610c7a565b612630565b6113f46103e4565b918291826113bc565b0390f35b6103ea565b346114365761143261142161141c366004610425565b61264f565b6114296103e4565b918291826113bc565b0390f35b6103ea565b3461146c57611468611457611451366004610b0d565b9061267a565b61145f6103e4565b91829182610455565b0390f35b6103ea565b346114a15761149d61148c611487366004610c7a565b6126ac565b6114946103e4565b9182918261050a565b0390f35b6103ea565b90916060828403126114db576114d86114c1845f850161057f565b936114cf81602086016105a2565b9360400161057f565b90565b6103ee565b346115115761150d6114fc6114f63660046114a6565b916128e4565b6115046103e4565b91829182610912565b0390f35b6103ea565b61152c906115276056915f92610df5565b6104d5565b90565b3461155f5761155b61154a611545366004610c7a565b611516565b6115526103e4565b9182918261050a565b0390f35b6103ea565b61157d611582926115786057935f94610ddf565b610df5565b6104d5565b90565b346115b6576115b26115a161159b366004610db2565b90611564565b6115a96103e4565b9182918261050a565b0390f35b6103ea565b90565b6115d26115cd6115d7926115bb565b6105de565b6104f2565b90565b6115e662278d006115be565b90565b6115f16115da565b90565b346116245761160436600461049f565b61162061160f6115e9565b6116176103e4565b9182918261050a565b0390f35b6103ea565b90565b5f1b90565b61164561164061164a92611629565b61162c565b6107c8565b90565b6116565f611631565b90565b61166161164d565b90565b346116945761167436600461049f565b61169061167f611659565b6116876103e4565b91829182610ac3565b0390f35b6103ea565b6116a2906104f2565b9052565b6116af906107c8565b9052565b6116bc906107d8565b9052565b6116c9906107ec565b9052565b906101008061176e936116e65f8201515f860190611699565b6116f860208201516020860190611699565b61170a60408201516040860190611699565b61171c606082015160608601906116a6565b61172e608082015160808601906116b3565b61174060a082015160a08601906116c0565b61175260c082015160c08601906116c0565b61176460e082015160e08601906116c0565b01519101906116a6565b565b9190611784905f61012085019401906116cd565b565b346117b7576117b36117a261179c3660046105b1565b90612a92565b6117aa6103e4565b91829182611770565b0390f35b6103ea565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117e86117bc565b90565b3461181b576117fb36600461049f565b6118176118066117e0565b61180e6103e4565b91829182610ac3565b0390f35b6103ea565b90565b61183761183261183c92611820565b6105de565b6107d8565b90565b61184a6132c8611823565b90565b61185561183f565b90565b346118885761186836600461049f565b61188461187361184d565b61187b6103e4565b91829182610995565b0390f35b6103ea565b90565b6118a461189f6118a99261188d565b6105de565b6107ec565b90565b6118bd670de0b6b3a7640000611890565b90565b6118c86118ac565b90565b346118fb576118db36600461049f565b6118f76118e66118c0565b6118ee6103e4565b91829182610912565b0390f35b6103ea565b60018060401b03811161191c57611918602091610e66565b0190565b610e70565b9061193361192e83611900565b610eab565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119696005611921565b9061197660208301611938565b565b61198061195f565b90565b61198b611978565b90565b611996611983565b90565b5190565b60209181520190565b90825f9392825e0152565b6119d06119d96020936119de936119c781611999565b9384809361199d565b958691016119a6565b610e66565b0190565b6119f79160208201915f8184039101526119b1565b90565b34611a2a57611a0a36600461049f565b611a26611a1561198e565b611a1d6103e4565b918291826119e2565b0390f35b6103ea565b611a3b60075f9061123e565b90565b34611a6e57611a4e36600461049f565b611a6a611a59611a2f565b611a616103e4565b91829182610455565b0390f35b6103ea565b90565b611a8a611a85611a8f92611a73565b6105de565b6107ec565b90565b611a9c6001611a76565b90565b611aa7611a92565b90565b34611ada57611aba36600461049f565b611ad6611ac5611a9f565b611acd6103e4565b91829182610912565b0390f35b6103ea565b611aeb5f6018906104d5565b90565b34611b1e57611afe36600461049f565b611b1a611b09611adf565b611b116103e4565b9182918261050a565b0390f35b6103ea565b90602080611b4593611b3b5f8201515f8601906116c0565b01519101906116c0565b565b9190611b5a905f60408501940190611b23565b565b34611b8d57611b89611b78611b72366004610db2565b90612b69565b611b806103e4565b91829182611b47565b0390f35b6103ea565b34611bc357611bbf611bae611ba8366004610db2565b90612b91565b611bb66103e4565b9182918261050a565b0390f35b6103ea565b611bd1816107ec565b03611bd857565b5f80fd5b90503590611be982611bc8565b565b611bf4816107d8565b03611bfb57565b5f80fd5b90503590611c0c82611beb565b565b608081830312611c4f57611c24825f830161057f565b92611c4c611c358460208501611bdc565b93611c438160408601611bdc565b93606001611bff565b90565b6103ee565b34611c8657611c70611c67366004611c0e565b9291909161337f565b611c786103e4565b80611c8281610a6c565b0390f35b6103ea565b90565b611ca2611c9d611ca792611c8b565b6105de565b6104f2565b90565b611cb66276a700611c8e565b90565b611cc1611caa565b90565b34611cf457611cd436600461049f565b611cf0611cdf611cb9565b611ce76103e4565b9182918261050a565b0390f35b6103ea565b90565b611d10611d0b611d1592611cf9565b6105de565b6104f2565b90565b611d2462093a80611cfc565b90565b611d2f611d18565b90565b34611d6257611d4236600461049f565b611d5e611d4d611d27565b611d556103e4565b9182918261050a565b0390f35b6103ea565b34611d9657611d80611d7a366004610b0d565b906133b7565b611d886103e4565b80611d9281610a6c565b0390f35b6103ea565b611da760015f906104d5565b90565b34611dda57611dba36600461049f565b611dd6611dc5611d9b565b611dcd6103e4565b9182918261050a565b0390f35b6103ea565b90565b611df6611df1611dfb92611ddf565b6105de565b6107ec565b90565b611e0e662386f26fc10000611de2565b90565b611e19611dfe565b90565b34611e4c57611e2c36600461049f565b611e48611e37611e11565b611e3f6103e4565b91829182610912565b0390f35b6103ea565b90602082820312611e80575f82013560018060401b038111611e7b57611e7792016109eb565b9091565b6103f2565b6103ee565b34611eb457611e9e611e98366004611e51565b90613418565b611ea66103e4565b80611eb081610a6c565b0390f35b6103ea565b611ecd611ec8611ed292610d00565b6105de565b6107ec565b90565b611ee0612710611eb9565b90565b611eeb611ed5565b90565b34611f1e57611efe36600461049f565b611f1a611f09611ee3565b611f116103e4565b91829182610912565b0390f35b6103ea565b34611f5257611f3c611f363660046105b1565b90613549565b611f446103e4565b80611f4e81610a6c565b0390f35b6103ea565b90565b611f6e611f69611f7392611f57565b6105de565b6104f2565b90565b611f8262ed4e00611f5a565b90565b611f8d611f76565b90565b34611fc057611fa036600461049f565b611fbc611fab611f85565b611fb36103e4565b9182918261050a565b0390f35b6103ea565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390565b611ff1611fc5565b90565b346120245761200436600461049f565b61202061200f611fe9565b6120176103e4565b91829182610ac3565b0390f35b6103ea565b6120355f6008906104d5565b90565b346120685761204836600461049f565b612064612053612029565b61205b6103e4565b9182918261050a565b0390f35b6103ea565b5f90565b61207961206d565b508061209461208e637965db0b60e01b6103f6565b916103f6565b149081156120a1575b5090565b6120ab915061355a565b5f61209d565b5f90565b906120bf90610609565b5f5260205260405f2090565b6120d4906107c8565b90565b906120e1906120cb565b5f5260205260405f2090565b6121016120fc61210692611629565b6105de565b6107ec565b90565b61212e916121246121299261211c6120b1565b5060116120b5565b6120d7565b610734565b8061214161213b5f6120ed565b916107ec565b145f1461215557506121516118ac565b5b90565b612152565b60018060401b0381116121705760208091020190565b610e70565b9092919261218a6121858261215a565b610eab565b93818552602080860192028301928184116121c757915b8383106121ae5750505050565b602080916121bc8486610416565b8152019201916121a1565b6109e7565b6121d7913691612175565b90565b6121f6926121f0916121ea613592565b926121cc565b906135cd565b565b5f90565b90612206906120cb565b5f5260205260405f2090565b6001612233612239926122236121f8565b505f61222d613741565b016121fc565b016106e8565b90565b906122579161225261224d82612212565b613765565b612259565b565b9061226391613779565b50565b906122709161223c565b565b908061228d612287612282613830565b61055f565b9161055f565b0361229e5761229b9161383d565b50565b5f63334bd91960e11b8152806122b660048201610a6c565b0390fd5b6122c3906105e1565b90565b6122cf906122ba565b90565b6122db906105fd565b90565b60e01b90565b905051906122f182610402565b565b909291926123086123038261215a565b610eab565b938185526020808601920283019281841161234557915b83831061232c5750505050565b6020809161233a84866122e4565b81520192019161231f565b6109e7565b9080601f8301121561236857816020612365935191016122f3565b90565b6109df565b9060208282031261239b575f82015160018060401b03811161239657612393920161234a565b90565b6103f2565b6103ee565b6123a86103e4565b3d5f823e3d90fd5b6123b8613592565b6123e35f6123cd6123c8846122c6565b6122d2565b636e25b978906123db6103e4565b9384926122de565b825281806123f360048201610a6c565b03915afa80156124735761240f915f91612451575b50826135cd565b6124397f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d91610609565b906124426103e4565b8061244c81610a6c565b0390a2565b61246d91503d805f833e6124658183610e84565b81019061236d565b5f612408565b6123a0565b9061248290610609565b5f5260205260405f2090565b6124a56124aa9161249d6120b1565b50601b612478565b610734565b90565b906124bf916124ba6138f6565b6124c1565b565b906124d4916124cf816139b0565b613a0c565b565b906124e0916124ad565b565b6124f3906124ee613b0a565b612541565b90565b90565b61250d612508612512926124f6565b61162c565b6107c8565b90565b61253e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6124f9565b90565b5061254a612515565b90565b61255d6125586121f8565b6124e2565b90565b61256c6125719161065d565b611220565b90565b61257e9054612560565b90565b61258961206d565b5061259c5f612596613b68565b01612574565b90565b5f90565b6125ba6125bf916125b261259f565b506056610df5565b610676565b90565b6125e7916125dd6125e2926125d561259f565b506057610ddf565b610df5565b610676565b90565b5f90565b906125f890610609565b5f5260205260405f2090565b60018060a01b031690565b61261b6126209161065d565b612604565b90565b61262d905461260f565b90565b61264761264c9161263f6125ea565b5060066125ee565b612623565b90565b6126619061265b6125ea565b50613ba2565b90565b9061266e90610609565b5f5260205260405f2090565b6126a9915f61269e6126a49361268e61206d565b5082612698613741565b016121fc565b01612664565b612574565b90565b6126c36126c8916126bb61259f565b506023610df5565b610676565b90565b906126d5906104f2565b9052565b906126e3906107c8565b9052565b906126f1906107d8565b9052565b906126ff906107ec565b9052565b61270e610120610eab565b90565b906127ef6127e56006612722612703565b946127396127315f8301610676565b5f88016126cb565b6127506127475f830161069d565b602088016126cb565b61276761275e5f83016106c4565b604088016126cb565b61277f612776600183016106e8565b606088016126d9565b61279761278e60028301610710565b608088016126e7565b6127af6127a660038301610734565b60a088016126f5565b6127c76127be60048301610734565b60c088016126f5565b6127df6127d660058301610734565b60e088016126f5565b016106e8565b61010084016126d9565b565b6127fa90612711565b90565b61280790516104f2565b90565b61281e61281961282392611629565b6105de565b6104f2565b90565b61283090516107c8565b90565b61283d90516107ec565b90565b634e487b7160e01b5f52601160045260245ffd5b612863612869919392936107ec565b926107ec565b820391821161287457565b612840565b61288861288e919392936107ec565b926107ec565b9161289a8382026107ec565b9281840414901517156128a957565b612840565b634e487b7160e01b5f52601260045260245ffd5b6128ce6128d4916107ec565b916107ec565b9081156128df570490565b6128ae565b9291909261290d6129086128f66120b1565b9561290360558590610615565b610647565b6127f1565b916129195f84016127fd565b61292b6129255f61280a565b916104f2565b146129ec5790612948919061294260608501612826565b91613cd6565b908161295c6129565f6120ed565b916107ec565b146129dc5761296d60c08201612833565b61298a61298461297f60e08501612833565b6107ec565b916107ec565b11612994575b5050565b6129d4929350906129c0826129ba60e06129b360c06129c69701612833565b9201612833565b90612854565b90612879565b6129ce6118ac565b906128c2565b905f80612990565b505090506129e95f6120ed565b90565b50505090506129fa5f6120ed565b90565b5f90565b5f90565b5f90565b5f90565b612a15612703565b90602080808080808080808a612a296129fd565b815201612a346129fd565b815201612a3f6129fd565b815201612a4a612a01565b815201612a55612a05565b815201612a60612a09565b815201612a6b612a09565b815201612a76612a09565b815201612a81612a01565b81525050565b612a8f612a0d565b90565b612ab791612aad612ab292612aa5612a87565b506055610615565b610647565b6127f1565b90565b612ac46040610eab565b90565b612acf612aba565b9060208083612adc612a09565b815201612ae7612a09565b81525050565b612af5612ac7565b90565b90612b029061062b565b5f5260205260405f2090565b90612b1890610609565b5f5260205260405f2090565b90612b5b612b526001612b35612aba565b94612b4c612b445f8301610734565b5f88016126f5565b01610734565b602084016126f5565b565b612b6690612b24565b90565b612b8e91612b84612b8992612b7c612aed565b506010612af8565b612b0e565b612b5d565b90565b612bb691612bac612bb192612ba461259f565b506058610ddf565b610df5565b610676565b90565b612bc5612bca91610683565b611220565b90565b612bd79054612bb9565b90565b612bee612be9612bf392611a73565b6105de565b6104f2565b90565b612bff906105fd565b90565b90612c1360018060401b039161162c565b9181191691161790565b90565b90612c35612c30612c3c9261062b565b612c1d565b8254612c02565b9055565b60401b90565b90612c5560ff60401b91612c40565b9181191691161790565b612c6890610443565b90565b90565b90612c83612c7e612c8a92612c5f565b612c6b565b8254612c46565b9055565b612c9790612bda565b9052565b9190612cae905f60208501940190612c8e565b565b909192612cbb613dc5565b93612cd0612cca5f8701612bcd565b15610443565b93612cdc5f8701610676565b80612cef612ce95f61280a565b916104f2565b1480612e09575b90612d0a612d046001612bda565b916104f2565b1480612de1575b612d1c909115610443565b9081612dd0575b50612db457612d4c93612d41612d396001612bda565b5f8901612c20565b85612da2575b6131c1565b612d54575b50565b612d61905f809101612c6e565b6001612d997fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d906103e4565b91829182612c9b565b0390a15f612d51565b612daf60015f8901612c6e565b612d47565b5f63f92ee8a960e01b815280612dcc60048201610a6c565b0390fd5b612ddb915015610443565b5f612d23565b50612d1c612dee30612bf6565b3b612e01612dfb5f6120ed565b916107ec565b149050612d11565b5085612cf6565b612e24612e1f612e2992611629565b6105de565b610554565b90565b612e3590612e10565b90565b612e426040610eab565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612e6357565b612e45565b90612e7282612e59565b565b90612e7e90612e68565b9052565b90612e8c9061055f565b9052565b612ea4612e9f612ea9926107ec565b6105de565b6107d8565b90565b612eb660c0610eab565b90565b90612ec390610443565b9052565b90612ed1906120cb565b5f5260205260405f2090565b612ee79051610443565b90565b90612ef660ff9161162c565b9181191691161790565b90612f15612f10612f1c92612c5f565b612c6b565b8254612eea565b9055565b90612f2c5f199161162c565b9181191691161790565b612f4a612f45612f4f926107ec565b6105de565b6107ec565b90565b90565b90612f6a612f65612f7192612f36565b612f52565b8254612f20565b9055565b612f7f90516107d8565b90565b90612f8f61ffff9161162c565b9181191691161790565b612fad612fa8612fb2926107d8565b6105de565b6107d8565b90565b90565b90612fcd612fc8612fd492612f99565b612fb5565b8254612f82565b9055565b9061306760a0600561306d94612ffb5f8201612ff55f8801612edd565b90612f00565b6130146001820161300e60208801612833565b90612f55565b61302d6002820161302760408801612833565b90612f55565b6130466003820161304060608801612833565b90612f55565b61305f6004820161305960808801612833565b90612f55565b019201612f75565b90612fb8565b565b9061307991612fd8565b565b60801b90565b9061309161ffff60801b9161307b565b9181191691161790565b906130b06130ab6130b792612f99565b612fb5565b8254613081565b9055565b90565b6130d26130cd6130d7926130bb565b6105de565b6104f2565b90565b6130e56154606130be565b90565b906130fd600160401b600160801b0391612c40565b9181191691161790565b9061311c6131176131239261062b565b612c1d565b82546130e8565b9055565b90565b61313e61313961314392613127565b6105de565b6104f2565b90565b613150601c61312a565b90565b60c01b90565b9061316b60018060c01b031991613153565b9181191691161790565b9061318a6131856131919261062b565b612c1d565b8254613159565b9055565b90565b6131ac6131a76131b192613195565b6105de565b6104f2565b90565b6131be6038613198565b90565b9190916131cc613df3565b6131d4613e07565b6131dc613e2d565b6131e4613e53565b6131ec61164d565b816131f691613779565b506131ff6111bc565b8161320991613779565b506132126117bc565b8161321c91613779565b50613225611fc5565b9061322f91613779565b505f8061323b90612e2c565b613243612e38565b915f83019061325191612e74565b602082019061325f91612e82565b61326890613ebd565b90600192905f8091613278611ed5565b61328190612e90565b9361328a612eac565b965f88019061329891612eb9565b60208701906132a6916126f5565b60408601906132b4916126f5565b6132bd906120ed565b60608501906132cb916126f5565b6132d4906120ed565b60808401906132e2916126f5565b60a08301906132f0916126e7565b6002906132fc91612ec7565b906133069161306f565b6001613313906005612f00565b61331e90600161309b565b600161332990612bda565b613333905f612c20565b61333b6130da565b613345905f613107565b61334d613146565b613357905f613175565b61335f613146565b61336a906001612c20565b6133726131b4565b61337d906001613107565b565b9061338b939291612cb0565b565b906133a8916133a361339e82612212565b613765565b6133aa565b565b906133b49161383d565b50565b906133c19161338d565b565b60016133cf91016107ec565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b91908110156133fa576020020190565b6133d6565b3561340981610402565b90565b613415906103f6565b90565b919091613423613592565b61342c5f6120ed565b5b8061344a61344461343f8588906133d2565b6107ec565b916107ec565b10156134ce576134c99061347061346b613466858885916133ea565b6133ff565b613f84565b61348461347f848784916133ea565b6133ff565b6134ae7fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb9161340c565b906134b76103e4565b806134c181610a6c565b0390a26133c3565b61342d565b50509050565b906134ee916134e96134e46111bc565b613765565b6134f0565b565b6135058261350060238490610df5565b612c20565b6135446135327f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f3592610609565b9261353b6103e4565b9182918261050a565b0390a2565b90613553916134d4565b565b613f9a565b61356261206d565b5061357c6135766301ffc9a760e01b6103f6565b916103f6565b1490565b61359061358b6111bc565b613765565b565b61359a613580565b565b5190565b906135aa8261359c565b8110156135bb576020809102010190565b6133d6565b6135ca90516103f6565b90565b9190826135ea6135e46135df5f612e2c565b61055f565b9161055f565b1461373c57823b6136036135fd5f6120ed565b916107ec565b14613736576136115f6120ed565b5b8061362d6136276136228561359c565b6107ec565b916107ec565b10156137305761364e6136496136448484906135a0565b6135c0565b613ba2565b8061366961366361365e5f612e2c565b61055f565b9161055f565b141580613715575b6136fe57506136f99061369761369061368b8584906135a0565b6135c0565b86906140a1565b6136aa6136a58483906135a0565b6135c0565b856136de6136d87f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b399361340c565b91610609565b916136e76103e4565b806136f181610a6c565b0390a36133c3565b613612565b61371061370b83856135a0565b6135c0565b614048565b50806137296137238761055f565b9161055f565b1415613671565b50509050565b82613ff9565b613fdd565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b61377790613771613830565b906140da565b565b61378161206d565b5061378a613741565b61379e61379883859061267a565b15610443565b5f14613829576137c8906137c35f6137bb816001940186906121fc565b018590612664565b612f00565b906137d1613830565b9061380e6138086138027f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d956120cb565b92610609565b92610609565b926138176103e4565b8061382181610a6c565b0390a4600190565b5050505f90565b6138386125ea565b503390565b61384561206d565b5061384e613741565b61385982849061267a565b5f146138e3576138829061387d5f6138758180940186906121fc565b018590612664565b612f00565b9061388b613830565b906138c86138c26138bc7ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b956120cb565b92610609565b92610609565b926138d16103e4565b806138db81610a6c565b0390a4600190565b5050505f90565b6138f3906105fd565b90565b6138ff306138ea565b61393161392b7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b14801561395b575b61393f57565b5f63703e46dd60e11b81528061395760048201610a6c565b0390fd5b50613964614115565b6139966139907f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b1415613939565b506139ae6139a9611fc5565b613765565b565b6139b99061399d565b565b6139c4906105e1565b90565b6139d0906139bb565b90565b6139dc906105fd565b90565b905051906139ec826108c2565b565b90602082820312613a0757613a04915f016139df565b90565b6103ee565b9190613a3a6020613a24613a1f866139c7565b6139d3565b6352d1902d90613a326103e4565b9384926122de565b82528180613a4a60048201610a6c565b03915afa80915f92613ada575b50155f14613a8b575050906001613a6c57505b565b613a87905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b9283613aa6613aa0613a9b612515565b6107c8565b916107c8565b03613abb57613ab692935061413b565b613a6a565b613ad6845f918291632a87526960e21b835260048301610ac3565b0390fd5b613afc91925060203d8111613b03575b613af48183610e84565b8101906139ee565b905f613a57565b503d613aea565b613b13306138ea565b613b45613b3f7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b03613b4c57565b5f63703e46dd60e11b815280613b6460048201610a6c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b969061340c565b5f5260205260405f2090565b613bb9613bbe91613bb16125ea565b506021613b8c565b612623565b90565b90613bcb90610609565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613bf081613bda565b821015613c0a57613c02600491613bde565b910201905f90565b6133d6565b90565b60ff1690565b613c24613c299161065d565b613c12565b90565b613c369054613c18565b90565b60081c90565b613c4b613c5091613c39565b612604565b90565b613c5d9054613c3f565b90565b613c6a6040610eab565b90565b90613ca3613c9a5f613c7d613c60565b94613c94613c8c838301613c2c565b838801612e74565b01613c53565b60208401612e82565b565b613cae90613c6d565b90565b613cc0613cc6919392936107ec565b926107ec565b8201809211613cd157565b612840565b929192613cf4613cef613ce76120b1565b926015613bc1565b613bd7565b93613cfe85613bda565b93613d085f6120ed565b5b80613d1c613d16886107ec565b916107ec565b1015613dbc57613d36613d30888390613be7565b50613c0f565b613d415f8201612623565b613d53613d4d8861055f565b9161055f565b1480613d8f575b613d6e575b50613d69906133c3565b613d09565b613d699194613d826001613d889301610734565b90613cb1565b9390613d5f565b50613da4613d9f60028301613ca5565b613ebd565b613db6613db0866107c8565b916107c8565b14613d5a565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613df16141c4565b565b613dfb613de9565b565b613e056141c4565b565b613e0f613dfd565b565b613e196141c4565b613e21613e23565b565b613e2b61421f565b565b613e35613e11565b565b613e3f6141c4565b613e47613e49565b565b613e51614265565b565b613e5b613e37565b565b613e679051612e68565b90565b613e74905161055f565b90565b613e8090612e68565b90565b613e8c90613e77565b9052565b916020613eb1929493613eaa60408201965f830190613e83565b01906113af565b565b60200190565b5190565b613ec56121f8565b50613f07613ee06020613ed95f8501613e5d565b9301613e6a565b91613ef8613eec6103e4565b93849260208401613e90565b60208201810382520382610e84565b613f19613f1382613eb9565b91613eb3565b2090565b1b90565b91906008613f41910291613f3b60018060a01b0384613f1d565b92613f1d565b9181191691161790565b90565b9190613f64613f5f613f6c93610609565b613f4b565b908354613f21565b9055565b613f8291613f7c6125ea565b91613f4e565b565b5f613f93613f98926021613b8c565b613f70565b565b613fad63ffffffff60e01b5f3516613ba2565b80613fc8613fc2613fbd5f612e2c565b61055f565b9161055f565b036142a35763ffffffff60e01b5f3516614284565b5f63d92e233d60e01b815280613ff560048201610a6c565b0390fd5b614014905f9182916322a2d07b60e21b8352600483016113bc565b0390fd5b614021906103f6565b9052565b91602061404692949361403f60408201965f830190614018565b01906113af565b565b6140625f9283926310ae11a960e31b845260048401614025565b0390fd5b9061407760018060a01b039161162c565b9181191691161790565b9061409661409161409d92610609565b613f4b565b8254614066565b9055565b6140b06140b592916021613b8c565b614081565b565b9160206140d89294936140d160408201965f8301906113af565b01906107cb565b565b906140ef6140e983839061267a565b15610443565b6140f7575050565b6141115f92839263e2517d3f60e01b8452600484016140b7565b0390fd5b61411d6125ea565b506141385f61413261412d612515565b6142c1565b01612623565b90565b90614145826142c4565b816141707fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91610609565b906141796103e4565b8061418381610a6c565b0390a261418f81613eb9565b6141a161419b5f6120ed565b916107ec565b115f146141b5576141b191614394565b505b565b50506141bf614319565b6141b3565b6141d56141cf6143c3565b15610443565b6141db57565b5f631afcd79f60e31b8152806141f360048201610a6c565b0390fd5b6141ff6141c4565b614207614209565b565b61421d614214613b68565b5f809101612f00565b565b6142276141f7565b565b6142316141c4565b614239614248565b565b6142456001611a76565b90565b6142636142536143e1565b5f61425c61423b565b9101612f55565b565b61426d614229565b565b9190614282905f60208501940190614018565b565b61429f905f91829163c2a825f560e01b83526004830161426f565b0390fd5b5f8091368280378136915af43d5f803e5f146142bd573d5ff35b3d5ffd5b90565b803b6142d86142d25f6120ed565b916107ec565b146142fa576142f8905f6142f26142ed612515565b6142c1565b01614081565b565b614315905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b3461432c6143265f6120ed565b916107ec565b1161433357565b5f63b398979f60e01b81528061434b60048201610a6c565b0390fd5b606090565b9061436661436183610ec0565b610eab565b918252565b3d5f146143865761437b3d614354565b903d5f602084013e5b565b61438e61434f565b90614384565b5f806143c0936143a261434f565b508390602081019051915af4906143b761436b565b90919091614405565b90565b6143cb61206d565b506143de5f6143d8613dc5565b01612bcd565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906144199061441261434f565b5015610443565b5f146144255750614489565b61442e82613eb9565b61444061443a5f6120ed565b916107ec565b148061446e575b61444f575090565b61446a905f918291639996b31560e01b8352600483016113bc565b0390fd5b50803b61448361447d5f6120ed565b916107ec565b14614447565b61449281613eb9565b6144a461449e5f6120ed565b916107ec565b115f146144b357805190602001fd5b5f63d6bda27560e01b8152806144cb60048201610a6c565b0390fdfea164736f6c634300081a000a /// ``` #[rustfmt::skip] #[allow(clippy::all)] pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( - b"`\xA0`@R4a\0>Wa\0\x11a\0MV[a\0\x19a\0CV[aDUa\x03\x07\x829`\x80Q\x81\x81\x81a8\x80\x01R\x81\x81a8\xE5\x01Ra:\x94\x01RaDU\x90\xF3[a\0IV[`@Q\x90V[_\x80\xFD[a\0Ua\0_V[a\0]a\x02*V[V[a\0ga\0iV[V[a\0qa\0sV[V[a\0{a\0}V[V[a\0\x85a\0\x87V[V[a\0\x8Fa\0\x91V[V[a\0\x99a\0\x9BV[V[a\0\xA3a\0\xA5V[V[a\0\xADa\0\xAFV[V[a\0\xB7a\0\xB9V[V[a\0\xC1a\0\xC3V[V[a\0\xCBa\0\xCDV[V[a\0\xD5a\0\xD7V[V[a\0\xDFa\0\xE1V[V[a\0\xE9a\x01-V[V[`\x01\x80`\xA0\x1B\x03\x16\x90V[\x90V[a\x01\ra\x01\x08a\x01\x12\x92a\0\xEBV[a\0\xF6V[a\0\xEBV[\x90V[a\x01\x1E\x90a\0\xF9V[\x90V[a\x01*\x90a\x01\x15V[\x90V[a\x0160a\x01!V[`\x80RV[`@\x1C\x90V[`\xFF\x16\x90V[a\x01Sa\x01X\x91a\x01;V[a\x01AV[\x90V[a\x01e\x90Ta\x01GV[\x90V[_\x01\x90V[_\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x01\x89a\x01\x8E\x91a\x01mV[a\x01rV[\x90V[a\x01\x9B\x90Ta\x01}V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[_\x1B\x90V[\x90a\x01\xBF`\x01\x80`@\x1B\x03\x91a\x01\xA9V[\x91\x81\x19\x16\x91\x16\x17\x90V[a\x01\xDDa\x01\xD8a\x01\xE2\x92a\x01\x9EV[a\0\xF6V[a\x01\x9EV[\x90V[\x90V[\x90a\x01\xFDa\x01\xF8a\x02\x04\x92a\x01\xC9V[a\x01\xE5V[\x82Ta\x01\xAEV[\x90UV[a\x02\x11\x90a\x01\x9EV[\x90RV[\x91\x90a\x02(\x90_` \x85\x01\x94\x01\x90a\x02\x08V[V[a\x022a\x02\xE2V[a\x02=_\x82\x01a\x01[V[a\x02\xC6Wa\x02L_\x82\x01a\x01\x91V[a\x02da\x02^`\x01\x80`@\x1B\x03a\x01\x9EV[\x91a\x01\x9EV[\x03a\x02mW[PV[a\x02\x80\x90_`\x01\x80`@\x1B\x03\x91\x01a\x01\xE8V[`\x01\x80`@\x1B\x03a\x02\xBD\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a\x02\xB4a\0CV[\x91\x82\x91\x82a\x02\x15V[\x03\x90\xA1_a\x02jV[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a\x02\xDE`\x04\x82\x01a\x01hV[\x03\x90\xFD[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V\xFE`\x80`@R`\x046\x10\x15a\0\x15W[6a4\xCEW\0[a\0\x1F_5a\x03\xCEV[\x80c\x01\xFF\xC9\xA7\x14a\x03\xC9W\x80c\x05\xD6N8\x14a\x03\xC4W\x80c\n\xA8\xB1\x10\x14a\x03\xBFW\x80c\x12\xD9\x1C\x88\x14a\x03\xBAW\x80c\x18\x05m\xC2\x14a\x03\xB5W\x80c\x19\xE8.a\x14a\x03\xB0W\x80c$\x8A\x9C\xA3\x14a\x03\xABW\x80c//\xF1]\x14a\x03\xA6W\x80c2'?a\x14a\x03\xA1W\x80c6V\x8A\xBE\x14a\x03\x9CW\x80cE>\xCC\xEA\x14a\x03\x97W\x80cF\xD1c\xAA\x14a\x03\x92W\x80cI\x14t\x11\x14a\x03\x8DW\x80cIb\xF8\x8F\x14a\x03\x88W\x80cM\xE8\xAD\xDC\x14a\x03\x83W\x80cN\x9C\x92\x9A\x14a\x03~W\x80cO\x1E\xF2\x86\x14a\x03yW\x80cP\x95\xAFd\x14a\x03tW\x80cR\xD1\x90-\x14a\x03oW\x80cT\xDE# \x14a\x03jW\x80c\\\x97Z\xBB\x14a\x03eW\x80c`#V\xE3\x14a\x03`W\x80cf\xC3hu\x14a\x03[W\x80cr\xB5\x03-\x14a\x03VW\x80cu\xB28\xFC\x14a\x03QW\x80cw\xAB,\xF3\x14a\x03LW\x80c}\xF9*\xDA\x14a\x03GW\x80c\x88\xC4\x7Fh\x14a\x03BW\x80c\x8A\x19\xC8\xBC\x14a\x03=W\x80c\x8A\x7F\xE6\x0F\x14a\x038W\x80c\x90\x83\x7F\xF4\x14a\x033W\x80c\x91\xD1HT\x14a\x03.W\x80c\x94\x80\xE4\xDD\x14a\x03)W\x80c\x94\x94\xF4&\x14a\x03$W\x80c\x96\x08Vs\x14a\x03\x1FW\x80c\x97\"\xF4\xB9\x14a\x03\x1AW\x80c\x9E\x87\x05\x85\x14a\x03\x15W\x80c\xA2\x17\xFD\xDF\x14a\x03\x10W\x80c\xA4W\xAF=\x14a\x03\x0BW\x80c\xA4\xB3-\xE8\x14a\x03\x06W\x80c\xA7\xFAo\x98\x14a\x03\x01W\x80c\xAA\xF5\xEBh\x14a\x02\xFCW\x80c\xAD<\xB1\xCC\x14a\x02\xF7W\x80c\xB5K+\x9E\x14a\x02\xF2W\x80c\xB6`\x84\t\x14a\x02\xEDW\x80c\xBA\x05\xBB\xF5\x14a\x02\xE8W\x80c\xC0tI\xE2\x14a\x02\xE3W\x80c\xC5P\xD98\x14a\x02\xDEW\x80c\xCB\xB6\xD6\xBD\x14a\x02\xD9W\x80c\xD2zo\x06\x14a\x02\xD4W\x80c\xD4_\xF5\x82\x14a\x02\xCFW\x80c\xD5Gt\x1F\x14a\x02\xCAW\x80c\xDB\x8A\x17:\x14a\x02\xC5W\x80c\xDDvJ\xBF\x14a\x02\xC0W\x80c\xE0}\xEC)\x14a\x02\xBBW\x80c\xE1\xA4R\x18\x14a\x02\xB6W\x80c\xE2~\x05\xC1\x14a\x02\xB1W\x80c\xF3\xC9\xB3\x11\x14a\x02\xACWc\xF7\xCBx\x9A\x03a\0\x0EWa\x1F\xC4V[a\x1F\x80V[a\x1F\x13V[a\x1E\xDEV[a\x1EuV[a\x1E\x0CV[a\x1D\x9AV[a\x1DWV[a\x1D\"V[a\x1C\xB4V[a\x1CDV[a\x1B\x82V[a\x1BLV[a\x1A\xDEV[a\x1A\x9AV[a\x1A.V[a\x19\xEAV[a\x18\xBBV[a\x18HV[a\x17\xDBV[a\x17vV[a\x16TV[a\x15\xE4V[a\x15uV[a\x15\x1FV[a\x14\xD0V[a\x14aV[a\x14+V[a\x13\xF6V[a\x13\xC1V[a\x13jV[a\x13(V[a\x12\xB9V[a\x12KV[a\x11\xDBV[a\x11vV[a\x11AV[a\x11\x0CV[a\x10\xA8V[a\x10sV[a\x10\x06V[a\x0F\xD1V[a\x0FxV[a\x0E\x1CV[a\rmV[a\r(V[a\x0C\xBBV[a\x0C\x88V[a\x0C5V[a\x0B\xC9V[a\x0B\x94V[a\x0B*V[a\n\xC8V[a\naV[a\t\x9AV[a\t\x17V[a\x08rV[a\x05\x0FV[a\x04ZV[`\xE0\x1C\x90V[`@Q\x90V[_\x80\xFD[_\x80\xFD[_\x80\xFD[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90V[a\x03\xFB\x81a\x03\xE6V[\x03a\x04\x02WV[_\x80\xFD[\x90P5\x90a\x04\x13\x82a\x03\xF2V[V[\x90` \x82\x82\x03\x12a\x04.Wa\x04+\x91_\x01a\x04\x06V[\x90V[a\x03\xDEV[\x15\x15\x90V[a\x04A\x90a\x043V[\x90RV[\x91\x90a\x04X\x90_` \x85\x01\x94\x01\x90a\x048V[V[4a\x04\x8AWa\x04\x86a\x04ua\x04p6`\x04a\x04\x15V[a\x1F\xFDV[a\x04}a\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[_\x91\x03\x12a\x04\x99WV[a\x03\xDEV[\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xBD\x90`\x08a\x04\xC2\x93\x02a\x04\x9EV[a\x04\xA2V[\x90V[\x90a\x04\xD0\x91Ta\x04\xADV[\x90V[a\x04\xDF_`\x10\x90a\x04\xC5V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xF6\x90a\x04\xE2V[\x90RV[\x91\x90a\x05\r\x90_` \x85\x01\x94\x01\x90a\x04\xEDV[V[4a\x05?Wa\x05\x1F6`\x04a\x04\x8FV[a\x05;a\x05*a\x04\xD3V[a\x052a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[`\x01\x80`\xA0\x1B\x03\x16\x90V[a\x05X\x90a\x05DV[\x90V[a\x05d\x81a\x05OV[\x03a\x05kWV[_\x80\xFD[\x90P5\x90a\x05|\x82a\x05[V[V[a\x05\x87\x81a\x04\xE2V[\x03a\x05\x8EWV[_\x80\xFD[\x90P5\x90a\x05\x9F\x82a\x05~V[V[\x91\x90`@\x83\x82\x03\x12a\x05\xC9W\x80a\x05\xBDa\x05\xC6\x92_\x86\x01a\x05oV[\x93` \x01a\x05\x92V[\x90V[a\x03\xDEV[\x90V[a\x05\xE5a\x05\xE0a\x05\xEA\x92a\x05DV[a\x05\xCEV[a\x05DV[\x90V[a\x05\xF6\x90a\x05\xD1V[\x90V[a\x06\x02\x90a\x05\xEDV[\x90V[\x90a\x06\x0F\x90a\x05\xF9V[_R` R`@_ \x90V[a\x06/a\x06*a\x064\x92a\x04\xE2V[a\x05\xCEV[a\x04\xE2V[\x90V[\x90a\x06A\x90a\x06\x1BV[_R` R`@_ \x90V[_\x1C\x90V[a\x06^a\x06c\x91a\x06MV[a\x04\xA2V[\x90V[a\x06p\x90Ta\x06RV[\x90V[`@\x1C\x90V[a\x06\x85a\x06\x8A\x91a\x06sV[a\x04\xA2V[\x90V[a\x06\x97\x90Ta\x06yV[\x90V[`\x80\x1C\x90V[a\x06\xACa\x06\xB1\x91a\x06\x9AV[a\x04\xA2V[\x90V[a\x06\xBE\x90Ta\x06\xA0V[\x90V[\x90V[a\x06\xD0a\x06\xD5\x91a\x06MV[a\x06\xC1V[\x90V[a\x06\xE2\x90Ta\x06\xC4V[\x90V[a\xFF\xFF\x16\x90V[a\x06\xF8a\x06\xFD\x91a\x06MV[a\x06\xE5V[\x90V[a\x07\n\x90Ta\x06\xECV[\x90V[\x90V[a\x07\x1Ca\x07!\x91a\x06MV[a\x07\rV[\x90V[a\x07.\x90Ta\x07\x10V[\x90V[\x90a\x07@a\x07E\x92`Ua\x06\x05V[a\x067V[a\x07P_\x82\x01a\x06fV[\x91a\x07\\_\x83\x01a\x06\x8DV[\x91a\x07h_\x82\x01a\x06\xB4V[\x91a\x07u`\x01\x83\x01a\x06\xD8V[\x91a\x07\x82`\x02\x82\x01a\x07\0V[\x91a\x07\x8F`\x03\x83\x01a\x07$V[\x91a\x07\x9C`\x04\x82\x01a\x07$V[\x91a\x07\xB5`\x06a\x07\xAE`\x05\x85\x01a\x07$V[\x93\x01a\x06\xD8V[\x90V[\x90V[a\x07\xC4\x90a\x07\xB8V[\x90RV[a\xFF\xFF\x16\x90V[a\x07\xD8\x90a\x07\xC8V[\x90RV[\x90V[a\x07\xE8\x90a\x07\xDCV[\x90RV[\x96\x94\x92\x90\x99\x98\x97\x95\x93\x91a\x01 \x88\x01\x9A_\x89\x01a\x08\x08\x91a\x04\xEDV[` \x88\x01a\x08\x15\x91a\x04\xEDV[`@\x87\x01a\x08\"\x91a\x04\xEDV[``\x86\x01a\x08/\x91a\x07\xBBV[`\x80\x85\x01a\x08<\x91a\x07\xCFV[`\xA0\x84\x01a\x08I\x91a\x07\xDFV[`\xC0\x83\x01a\x08V\x91a\x07\xDFV[`\xE0\x82\x01a\x08c\x91a\x07\xDFV[a\x01\0\x01a\x08p\x91a\x07\xBBV[V[4a\x08\xADWa\x08\xA9a\x08\x8Ea\x08\x886`\x04a\x05\xA1V[\x90a\x071V[\x95a\x08\xA0\x99\x97\x99\x95\x91\x95\x94\x92\x94a\x03\xD4V[\x99\x8A\x99\x8Aa\x07\xECV[\x03\x90\xF3[a\x03\xDAV[a\x08\xBB\x81a\x07\xB8V[\x03a\x08\xC2WV[_\x80\xFD[\x90P5\x90a\x08\xD3\x82a\x08\xB2V[V[\x91\x90`@\x83\x82\x03\x12a\x08\xFDW\x80a\x08\xF1a\x08\xFA\x92_\x86\x01a\x05oV[\x93` \x01a\x08\xC6V[\x90V[a\x03\xDEV[\x91\x90a\t\x15\x90_` \x85\x01\x94\x01\x90a\x07\xDFV[V[4a\tHWa\tDa\t3a\t-6`\x04a\x08\xD5V[\x90a \x95V[a\t;a\x03\xD4V[\x91\x82\x91\x82a\t\x02V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\tda\t_a\ti\x92a\tMV[a\x05\xCEV[a\x07\xC8V[\x90V[a\twa*\xF8a\tPV[\x90V[a\t\x82a\tlV[\x90V[\x91\x90a\t\x98\x90_` \x85\x01\x94\x01\x90a\x07\xCFV[V[4a\t\xCAWa\t\xAA6`\x04a\x04\x8FV[a\t\xC6a\t\xB5a\tzV[a\t\xBDa\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[_\x80\xFD[_\x80\xFD[_\x80\xFD[\x90\x91\x82`\x1F\x83\x01\x12\x15a\n\x13W\x815\x91`\x01\x80`@\x1B\x03\x83\x11a\n\x0EW` \x01\x92` \x83\x02\x84\x01\x11a\n\tWV[a\t\xD7V[a\t\xD3V[a\t\xCFV[\x91\x90\x91`@\x81\x84\x03\x12a\nWWa\n1\x83_\x83\x01a\x05oV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\nRWa\nN\x92\x01a\t\xDBV[\x90\x91V[a\x03\xE2V[a\x03\xDEV[_\x01\x90V[4a\n\x90Wa\nza\nt6`\x04a\n\x18V[\x91a!fV[a\n\x82a\x03\xD4V[\x80a\n\x8C\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90` \x82\x82\x03\x12a\n\xAEWa\n\xAB\x91_\x01a\x08\xC6V[\x90V[a\x03\xDEV[\x91\x90a\n\xC6\x90_` \x85\x01\x94\x01\x90a\x07\xBBV[V[4a\n\xF8Wa\n\xF4a\n\xE3a\n\xDE6`\x04a\n\x95V[a!\x9EV[a\n\xEBa\x03\xD4V[\x91\x82\x91\x82a\n\xB3V[\x03\x90\xF3[a\x03\xDAV[\x91\x90`@\x83\x82\x03\x12a\x0B%W\x80a\x0B\x19a\x0B\"\x92_\x86\x01a\x08\xC6V[\x93` \x01a\x05oV[\x90V[a\x03\xDEV[4a\x0BYWa\x0BCa\x0B=6`\x04a\n\xFDV[\x90a!\xF2V[a\x0BKa\x03\xD4V[\x80a\x0BU\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[a\x0Bn\x90`\x08a\x0Bs\x93\x02a\x04\x9EV[a\x06\xE5V[\x90V[\x90a\x0B\x81\x91Ta\x0B^V[\x90V[a\x0B\x91`\x01`\x10\x90a\x0BvV[\x90V[4a\x0B\xC4Wa\x0B\xA46`\x04a\x04\x8FV[a\x0B\xC0a\x0B\xAFa\x0B\x84V[a\x0B\xB7a\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[4a\x0B\xF8Wa\x0B\xE2a\x0B\xDC6`\x04a\n\xFDV[\x90a!\xFEV[a\x0B\xEAa\x03\xD4V[\x80a\x0B\xF4\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x0C\x14a\x0C\x0Fa\x0C\x19\x92a\x0B\xFDV[a\x05\xCEV[a\x07\xC8V[\x90V[a\x0C'a>\x80a\x0C\0V[\x90V[a\x0C2a\x0C\x1CV[\x90V[4a\x0CeWa\x0CE6`\x04a\x04\x8FV[a\x0Caa\x0CPa\x0C*V[a\x0CXa\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[\x90` \x82\x82\x03\x12a\x0C\x83Wa\x0C\x80\x91_\x01a\x05oV[\x90V[a\x03\xDEV[4a\x0C\xB6Wa\x0C\xA0a\x0C\x9B6`\x04a\x0CjV[a#V[\x90V[a\x10pa\x10ZV[\x90V[4a\x10\xA3Wa\x10\x836`\x04a\x04\x8FV[a\x10\x9Fa\x10\x8Ea\x10hV[a\x10\x96a\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[4a\x10\xD8Wa\x10\xB86`\x04a\x04\x8FV[a\x10\xD4a\x10\xC3a%\rV[a\x10\xCBa\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[\x7F\x19D\x9AJ\xD5~@\xA5\xAAw\xE7\x85\xB4S\x9ES\xBA\x9E\x7F\xED\xBFpv8\x8E\xE3\xFB\x1B\xC2\xDD\xEA\x1B\x90V[a\x11\ta\x10\xDDV[\x90V[4a\x116`\x04a\x04\x8FV[a\x1AZa\x1AIa\x1A\x1FV[a\x1AQa\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x1Aza\x1Aua\x1A\x7F\x92a\x1AcV[a\x05\xCEV[a\x07\xDCV[\x90V[a\x1A\x8C`\x01a\x1AfV[\x90V[a\x1A\x97a\x1A\x82V[\x90V[4a\x1A\xCAWa\x1A\xAA6`\x04a\x04\x8FV[a\x1A\xC6a\x1A\xB5a\x1A\x8FV[a\x1A\xBDa\x03\xD4V[\x91\x82\x91\x82a\t\x02V[\x03\x90\xF3[a\x03\xDAV[a\x1A\xDB_`\x18\x90a\x04\xC5V[\x90V[4a\x1B\x0EWa\x1A\xEE6`\x04a\x04\x8FV[a\x1B\na\x1A\xF9a\x1A\xCFV[a\x1B\x01a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[\x90` \x80a\x1B5\x93a\x1B+_\x82\x01Q_\x86\x01\x90a\x16\xB0V[\x01Q\x91\x01\x90a\x16\xB0V[V[\x91\x90a\x1BJ\x90_`@\x85\x01\x94\x01\x90a\x1B\x13V[V[4a\x1B}Wa\x1Bya\x1Bha\x1Bb6`\x04a\r\xA2V[\x90a*\xF5V[a\x1Bpa\x03\xD4V[\x91\x82\x91\x82a\x1B7V[\x03\x90\xF3[a\x03\xDAV[4a\x1B\xB3Wa\x1B\xAFa\x1B\x9Ea\x1B\x986`\x04a\r\xA2V[\x90a+\x1DV[a\x1B\xA6a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[a\x1B\xC1\x81a\x07\xDCV[\x03a\x1B\xC8WV[_\x80\xFD[\x90P5\x90a\x1B\xD9\x82a\x1B\xB8V[V[a\x1B\xE4\x81a\x07\xC8V[\x03a\x1B\xEBWV[_\x80\xFD[\x90P5\x90a\x1B\xFC\x82a\x1B\xDBV[V[`\x80\x81\x83\x03\x12a\x1C?Wa\x1C\x14\x82_\x83\x01a\x05oV[\x92a\x1C\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x1F^a\x1FYa\x1Fc\x92a\x1FGV[a\x05\xCEV[a\x04\xE2V[\x90V[a\x1Frb\xEDN\0a\x1FJV[\x90V[a\x1F}a\x1FfV[\x90V[4a\x1F\xB0Wa\x1F\x906`\x04a\x04\x8FV[a\x1F\xACa\x1F\x9Ba\x1FuV[a\x1F\xA3a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[a\x1F\xC1_`\x08\x90a\x04\xC5V[\x90V[4a\x1F\xF4Wa\x1F\xD46`\x04a\x04\x8FV[a\x1F\xF0a\x1F\xDFa\x1F\xB5V[a\x1F\xE7a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[_\x90V[a \x05a\x1F\xF9V[P\x80a a \x1Acye\xDB\x0B`\xE0\x1Ba\x03\xE6V[\x91a\x03\xE6V[\x14\x90\x81\x15a -W[P\x90V[a 7\x91Pa4\xD3V[_a )V[_\x90V[\x90a K\x90a\x05\xF9V[_R` R`@_ \x90V[a `\x90a\x07\xB8V[\x90V[\x90a m\x90a WV[_R` R`@_ \x90V[a \x8Da \x88a \x92\x92a\x16\x19V[a\x05\xCEV[a\x07\xDCV[\x90V[a \xBA\x91a \xB0a \xB5\x92a \xA8a =V[P`\x11a AV[a cV[a\x07$V[\x80a \xCDa \xC7_a yV[\x91a\x07\xDCV[\x14_\x14a \xE1WPa \xDDa\x18\x9CV[[\x90V[a \xDEV[`\x01\x80`@\x1B\x03\x81\x11a \xFCW` \x80\x91\x02\x01\x90V[a\x0E`V[\x90\x92\x91\x92a!\x16a!\x11\x82a \xE6V[a\x0E\x9BV[\x93\x81\x85R` \x80\x86\x01\x92\x02\x83\x01\x92\x81\x84\x11a!SW\x91[\x83\x83\x10a!:WPPPPV[` \x80\x91a!H\x84\x86a\x04\x06V[\x81R\x01\x92\x01\x91a!-V[a\t\xD7V[a!c\x916\x91a!\x01V[\x90V[a!\x82\x92a!|\x91a!va5\x0BV[\x92a!XV[\x90a5FV[V[_\x90V[\x90a!\x92\x90a WV[_R` R`@_ \x90V[`\x01a!\xBFa!\xC5\x92a!\xAFa!\x84V[P_a!\xB9a6\xBAV[\x01a!\x88V[\x01a\x06\xD8V[\x90V[\x90a!\xE3\x91a!\xDEa!\xD9\x82a!\x9EV[a6\xDEV[a!\xE5V[V[\x90a!\xEF\x91a6\xF2V[PV[\x90a!\xFC\x91a!\xC8V[V[\x90\x80a\"\x19a\"\x13a\"\x0Ea7\xA9V[a\x05OV[\x91a\x05OV[\x03a\"*Wa\"'\x91a7\xB6V[PV[_c3K\xD9\x19`\xE1\x1B\x81R\x80a\"B`\x04\x82\x01a\n\\V[\x03\x90\xFD[a\"O\x90a\x05\xD1V[\x90V[a\"[\x90a\"FV[\x90V[a\"g\x90a\x05\xEDV[\x90V[`\xE0\x1B\x90V[\x90PQ\x90a\"}\x82a\x03\xF2V[V[\x90\x92\x91\x92a\"\x94a\"\x8F\x82a \xE6V[a\x0E\x9BV[\x93\x81\x85R` \x80\x86\x01\x92\x02\x83\x01\x92\x81\x84\x11a\"\xD1W\x91[\x83\x83\x10a\"\xB8WPPPPV[` \x80\x91a\"\xC6\x84\x86a\"pV[\x81R\x01\x92\x01\x91a\"\xABV[a\t\xD7V[\x90\x80`\x1F\x83\x01\x12\x15a\"\xF4W\x81` a\"\xF1\x93Q\x91\x01a\"\x7FV[\x90V[a\t\xCFV[\x90` \x82\x82\x03\x12a#'W_\x82\x01Q`\x01\x80`@\x1B\x03\x81\x11a#\"Wa#\x1F\x92\x01a\"\xD6V[\x90V[a\x03\xE2V[a\x03\xDEV[a#4a\x03\xD4V[=_\x82>=\x90\xFD[a#Da5\x0BV[a#o_a#Ya#T\x84a\"RV[a\"^V[cn%\xB9x\x90a#ga\x03\xD4V[\x93\x84\x92a\"jV[\x82R\x81\x80a#\x7F`\x04\x82\x01a\n\\V[\x03\x91Z\xFA\x80\x15a#\xFFWa#\x9B\x91_\x91a#\xDDW[P\x82a5FV[a#\xC5\x7FM<0\xF5\x99?\x19\"\xA7y4Z\x0F~\xC1\xA1p\xF1\xE5.\x9D#\x08$\xF9\xC1~cYl\x90m\x91a\x05\xF9V[\x90a#\xCEa\x03\xD4V[\x80a#\xD8\x81a\n\\V[\x03\x90\xA2V[a#\xF9\x91P=\x80_\x83>a#\xF1\x81\x83a\x0EtV[\x81\x01\x90a\"\xF9V[_a#\x94V[a#,V[\x90a$\x0E\x90a\x05\xF9V[_R` R`@_ \x90V[a$1a$6\x91a$)a =V[P`\x1Ba$\x04V[a\x07$V[\x90V[\x90a$K\x91a$Fa8oV[a$MV[V[\x90a$`\x91a$[\x81a9)V[a9\x85V[V[\x90a$l\x91a$9V[V[a$\x7F\x90a$za:\x83V[a$\xCDV[\x90V[\x90V[a$\x99a$\x94a$\x9E\x92a$\x82V[a\x16\x1CV[a\x07\xB8V[\x90V[a$\xCA\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCa$\x85V[\x90V[Pa$\xD6a$\xA1V[\x90V[a$\xE9a$\xE4a!\x84V[a$nV[\x90V[a$\xF8a$\xFD\x91a\x06MV[a\x12\x10V[\x90V[a%\n\x90Ta$\xECV[\x90V[a%\x15a\x1F\xF9V[Pa%(_a%\"a:\xE1V[\x01a%\0V[\x90V[_\x90V[a%Fa%K\x91a%>a%+V[P`Va\r\xE5V[a\x06fV[\x90V[a%s\x91a%ia%n\x92a%aa%+V[P`Wa\r\xCFV[a\r\xE5V[a\x06fV[\x90V[_\x90V[\x90a%\x84\x90a\x05\xF9V[_R` R`@_ \x90V[`\x01\x80`\xA0\x1B\x03\x16\x90V[a%\xA7a%\xAC\x91a\x06MV[a%\x90V[\x90V[a%\xB9\x90Ta%\x9BV[\x90V[a%\xD3a%\xD8\x91a%\xCBa%vV[P`\x06a%zV[a%\xAFV[\x90V[a%\xED\x90a%\xE7a%vV[Pa;\x1BV[\x90V[\x90a%\xFA\x90a\x05\xF9V[_R` R`@_ \x90V[a&5\x91_a&*a&0\x93a&\x1Aa\x1F\xF9V[P\x82a&$a6\xBAV[\x01a!\x88V[\x01a%\xF0V[a%\0V[\x90V[a&Oa&T\x91a&Ga%+V[P`#a\r\xE5V[a\x06fV[\x90V[\x90a&a\x90a\x04\xE2V[\x90RV[\x90a&o\x90a\x07\xB8V[\x90RV[\x90a&}\x90a\x07\xC8V[\x90RV[\x90a&\x8B\x90a\x07\xDCV[\x90RV[a&\x9Aa\x01 a\x0E\x9BV[\x90V[\x90a'{a'q`\x06a&\xAEa&\x8FV[\x94a&\xC5a&\xBD_\x83\x01a\x06fV[_\x88\x01a&WV[a&\xDCa&\xD3_\x83\x01a\x06\x8DV[` \x88\x01a&WV[a&\xF3a&\xEA_\x83\x01a\x06\xB4V[`@\x88\x01a&WV[a'\x0Ba'\x02`\x01\x83\x01a\x06\xD8V[``\x88\x01a&eV[a'#a'\x1A`\x02\x83\x01a\x07\0V[`\x80\x88\x01a&sV[a';a'2`\x03\x83\x01a\x07$V[`\xA0\x88\x01a&\x81V[a'Sa'J`\x04\x83\x01a\x07$V[`\xC0\x88\x01a&\x81V[a'ka'b`\x05\x83\x01a\x07$V[`\xE0\x88\x01a&\x81V[\x01a\x06\xD8V[a\x01\0\x84\x01a&eV[V[a'\x86\x90a&\x9DV[\x90V[a'\x93\x90Qa\x04\xE2V[\x90V[a'\xAAa'\xA5a'\xAF\x92a\x16\x19V[a\x05\xCEV[a\x04\xE2V[\x90V[a'\xBC\x90Qa\x07\xB8V[\x90V[a'\xC9\x90Qa\x07\xDCV[\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[a'\xEFa'\xF5\x91\x93\x92\x93a\x07\xDCV[\x92a\x07\xDCV[\x82\x03\x91\x82\x11a(\0WV[a'\xCCV[a(\x14a(\x1A\x91\x93\x92\x93a\x07\xDCV[\x92a\x07\xDCV[\x91a(&\x83\x82\x02a\x07\xDCV[\x92\x81\x84\x04\x14\x90\x15\x17\x15a(5WV[a'\xCCV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[a(Za(`\x91a\x07\xDCV[\x91a\x07\xDCV[\x90\x81\x15a(kW\x04\x90V[a(:V[\x92\x91\x90\x92a(\x99a(\x94a(\x82a =V[\x95a(\x8F`U\x85\x90a\x06\x05V[a\x067V[a'}V[\x91a(\xA5_\x84\x01a'\x89V[a(\xB7a(\xB1_a'\x96V[\x91a\x04\xE2V[\x14a)xW\x90a(\xD4\x91\x90a(\xCE``\x85\x01a'\xB2V[\x91a\x92a*1a*\x13V[P`Ua\x06\x05V[a\x067V[a'}V[\x90V[a*P`@a\x0E\x9BV[\x90V[a*[a*FV[\x90` \x80\x83a*ha)\x95V[\x81R\x01a*sa)\x95V[\x81RPPV[a*\x81a*SV[\x90V[\x90a*\x8E\x90a\x06\x1BV[_R` R`@_ \x90V[\x90a*\xA4\x90a\x05\xF9V[_R` R`@_ \x90V[\x90a*\xE7a*\xDE`\x01a*\xC1a*FV[\x94a*\xD8a*\xD0_\x83\x01a\x07$V[_\x88\x01a&\x81V[\x01a\x07$V[` \x84\x01a&\x81V[V[a*\xF2\x90a*\xB0V[\x90V[a+\x1A\x91a+\x10a+\x15\x92a+\x08a*yV[P`\x10a*\x84V[a*\x9AV[a*\xE9V[\x90V[a+B\x91a+8a+=\x92a+0a%+V[P`Xa\r\xCFV[a\r\xE5V[a\x06fV[\x90V[a+Qa+V\x91a\x06sV[a\x12\x10V[\x90V[a+c\x90Ta+EV[\x90V[a+za+ua+\x7F\x92a\x1AcV[a\x05\xCEV[a\x04\xE2V[\x90V[a+\x8B\x90a\x05\xEDV[\x90V[\x90a+\x9F`\x01\x80`@\x1B\x03\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x90a+\xC1a+\xBCa+\xC8\x92a\x06\x1BV[a+\xA9V[\x82Ta+\x8EV[\x90UV[`@\x1B\x90V[\x90a+\xE1`\xFF`@\x1B\x91a+\xCCV[\x91\x81\x19\x16\x91\x16\x17\x90V[a+\xF4\x90a\x043V[\x90V[\x90V[\x90a,\x0Fa,\na,\x16\x92a+\xEBV[a+\xF7V[\x82Ta+\xD2V[\x90UV[a,#\x90a+fV[\x90RV[\x91\x90a,:\x90_` \x85\x01\x94\x01\x90a,\x1AV[V[\x90\x91\x92a,Ga=>V[\x93a,\\a,V_\x87\x01a+YV[\x15a\x043V[\x93a,h_\x87\x01a\x06fV[\x80a,{a,u_a'\x96V[\x91a\x04\xE2V[\x14\x80a-\x95W[\x90a,\x96a,\x90`\x01a+fV[\x91a\x04\xE2V[\x14\x80a-mW[a,\xA8\x90\x91\x15a\x043V[\x90\x81a-\\W[Pa-@Wa,\xD8\x93a,\xCDa,\xC5`\x01a+fV[_\x89\x01a+\xACV[\x85a-.W[a1MV[a,\xE0W[PV[a,\xED\x90_\x80\x91\x01a+\xFAV[`\x01a-%\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a-\x1Ca\x03\xD4V[\x91\x82\x91\x82a,'V[\x03\x90\xA1_a,\xDDV[a-;`\x01_\x89\x01a+\xFAV[a,\xD3V[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a-X`\x04\x82\x01a\n\\V[\x03\x90\xFD[a-g\x91P\x15a\x043V[_a,\xAFV[Pa,\xA8a-z0a+\x82V[;a-\x8Da-\x87_a yV[\x91a\x07\xDCV[\x14\x90Pa,\x9DV[P\x85a,\x82V[a-\xB0a-\xABa-\xB5\x92a\x16\x19V[a\x05\xCEV[a\x05DV[\x90V[a-\xC1\x90a-\x9CV[\x90V[a-\xCE`@a\x0E\x9BV[\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x02\x11\x15a-\xEFWV[a-\xD1V[\x90a-\xFE\x82a-\xE5V[V[\x90a.\n\x90a-\xF4V[\x90RV[\x90a.\x18\x90a\x05OV[\x90RV[a.0a.+a.5\x92a\x07\xDCV[a\x05\xCEV[a\x07\xC8V[\x90V[a.B`\xC0a\x0E\x9BV[\x90V[\x90a.O\x90a\x043V[\x90RV[\x90a.]\x90a WV[_R` R`@_ \x90V[a.s\x90Qa\x043V[\x90V[\x90a.\x82`\xFF\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a.\xA1a.\x9Ca.\xA8\x92a+\xEBV[a+\xF7V[\x82Ta.vV[\x90UV[\x90a.\xB8_\x19\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[a.\xD6a.\xD1a.\xDB\x92a\x07\xDCV[a\x05\xCEV[a\x07\xDCV[\x90V[\x90V[\x90a.\xF6a.\xF1a.\xFD\x92a.\xC2V[a.\xDEV[\x82Ta.\xACV[\x90UV[a/\x0B\x90Qa\x07\xC8V[\x90V[\x90a/\x1Ba\xFF\xFF\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[a/9a/4a/>\x92a\x07\xC8V[a\x05\xCEV[a\x07\xC8V[\x90V[\x90V[\x90a/Ya/Ta/`\x92a/%V[a/AV[\x82Ta/\x0EV[\x90UV[\x90a/\xF3`\xA0`\x05a/\xF9\x94a/\x87_\x82\x01a/\x81_\x88\x01a.iV[\x90a.\x8CV[a/\xA0`\x01\x82\x01a/\x9A` \x88\x01a'\xBFV[\x90a.\xE1V[a/\xB9`\x02\x82\x01a/\xB3`@\x88\x01a'\xBFV[\x90a.\xE1V[a/\xD2`\x03\x82\x01a/\xCC``\x88\x01a'\xBFV[\x90a.\xE1V[a/\xEB`\x04\x82\x01a/\xE5`\x80\x88\x01a'\xBFV[\x90a.\xE1V[\x01\x92\x01a/\x01V[\x90a/DV[V[\x90a0\x05\x91a/dV[V[`\x80\x1B\x90V[\x90a0\x1Da\xFF\xFF`\x80\x1B\x91a0\x07V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a06V[\x90`\x01\x92\x90_\x80\x91a1\xF1a\x1E\xC5V[a1\xFA\x90a.\x1CV[\x93a2\x03a.8V[\x96_\x88\x01\x90a2\x11\x91a.EV[` \x87\x01\x90a2\x1F\x91a&\x81V[`@\x86\x01\x90a2-\x91a&\x81V[a26\x90a yV[``\x85\x01\x90a2D\x91a&\x81V[a2M\x90a yV[`\x80\x84\x01\x90a2[\x91a&\x81V[`\xA0\x83\x01\x90a2i\x91a&sV[`\x02\x90a2u\x91a.SV[\x90a2\x7F\x91a/\xFBV[`\x01a2\x8C\x90`\x05a.\x8CV[a2\x97\x90`\x01a0'V[`\x01a2\xA2\x90a+fV[a2\xAC\x90_a+\xACV[a2\xB4a0fV[a2\xBE\x90_a0\x93V[a2\xC6a0\xD2V[a2\xD0\x90_a1\x01V[a2\xD8a0\xD2V[a2\xE3\x90`\x01a+\xACV[a2\xEBa1@V[a2\xF6\x90`\x01a0\x93V[V[\x90a3\x04\x93\x92\x91a,\xFDV[a3\xFDa3\xF8\x84\x87\x84\x91a3cV[a3xV[a4'\x7F\xBE\xB2w\x01\x82\x8FQ[\x03\x06\x9DD\xDAe\x19\xB6\xC4\x91\xDA\x13\xEF\x1C\xA7\x08.a\x99Y\xD1\xF4\x8D\xDB\x91a3\x85V[\x90a40a\x03\xD4V[\x80a4:\x81a\n\\V[\x03\x90\xA2a3F\xDD`\xE1\x1B\x81R\x80a8\xD0`\x04\x82\x01a\n\\V[\x03\x90\xFD[Pa8\xDDa@\x8EV[a9\x0Fa9\t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05OV[\x91a\x05OV[\x14\x15a8\xB2V[Pa9'a9\"a\x11\xACV[a6\xDEV[V[a92\x90a9\x16V[V[a9=\x90a\x05\xD1V[\x90V[a9I\x90a94V[\x90V[a9U\x90a\x05\xEDV[\x90V[\x90PQ\x90a9e\x82a\x08\xB2V[V[\x90` \x82\x82\x03\x12a9\x80Wa9}\x91_\x01a9XV[\x90V[a\x03\xDEV[\x91\x90a9\xB3` a9\x9Da9\x98\x86a9@V[a9LV[cR\xD1\x90-\x90a9\xABa\x03\xD4V[\x93\x84\x92a\"jV[\x82R\x81\x80a9\xC3`\x04\x82\x01a\n\\V[\x03\x91Z\xFA\x80\x91_\x92a:SW[P\x15_\x14a:\x04WPP\x90`\x01a9\xE5WP[V[a:\0\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[\x92\x83a:\x1Fa:\x19a:\x14a$\xA1V[a\x07\xB8V[\x91a\x07\xB8V[\x03a:4Wa:/\x92\x93Pa@\xB4V[a9\xE3V[a:O\x84_\x91\x82\x91c*\x87Ri`\xE2\x1B\x83R`\x04\x83\x01a\n\xB3V[\x03\x90\xFD[a:u\x91\x92P` =\x81\x11a:|W[a:m\x81\x83a\x0EtV[\x81\x01\x90a9gV[\x90_a9\xD0V[P=a:cV[a:\x8C0a8cV[a:\xBEa:\xB8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05OV[\x91a\x05OV[\x03a:\xC5WV[_cp>F\xDD`\xE1\x1B\x81R\x80a:\xDD`\x04\x82\x01a\n\\V[\x03\x90\xFD[\x7F\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x90V[\x90a;\x0F\x90a3\x85V[_R` R`@_ \x90V[a;2a;7\x91a;*a%vV[P`!a;\x05V[a%\xAFV[\x90V[\x90a;D\x90a\x05\xF9V[_R` R`@_ \x90V[\x90V[T\x90V[_R` _ \x90V[a;i\x81a;SV[\x82\x10\x15a;\x83Wa;{`\x04\x91a;WV[\x91\x02\x01\x90_\x90V[a3OV[\x90V[`\xFF\x16\x90V[a;\x9Da;\xA2\x91a\x06MV[a;\x8BV[\x90V[a;\xAF\x90Ta;\x91V[\x90V[`\x08\x1C\x90V[a;\xC4a;\xC9\x91a;\xB2V[a%\x90V[\x90V[a;\xD6\x90Ta;\xB8V[\x90V[a;\xE3`@a\x0E\x9BV[\x90V[\x90a<\x1Ca<\x13_a;\xF6a;\xD9V[\x94a<\ra<\x05\x83\x83\x01a;\xA5V[\x83\x88\x01a.\0V[\x01a;\xCCV[` \x84\x01a.\x0EV[V[a<'\x90a;\xE6V[\x90V[a<9a6V[a=/a=)\x86a\x07\xB8V[\x91a\x07\xB8V[\x14a<\xD3V[P\x93PP\x92PPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V[a=jaA=V[V[a=ta=bV[V[a=~aA=V[V[a=\x88a=vV[V[a=\x92aA=V[a=\x9Aa=\x9CV[V[a=\xA4aA\x98V[V[a=\xAEa=\x8AV[V[a=\xB8aA=V[a=\xC0a=\xC2V[V[a=\xCAaA\xDEV[V[a=\xD4a=\xB0V[V[a=\xE0\x90Qa-\xF4V[\x90V[a=\xED\x90Qa\x05OV[\x90V[a=\xF9\x90a-\xF4V[\x90V[a>\x05\x90a=\xF0V[\x90RV[\x91` a>*\x92\x94\x93a>#`@\x82\x01\x96_\x83\x01\x90a=\xFCV[\x01\x90a\x13\x9FV[V[` \x01\x90V[Q\x90V[a>>a!\x84V[Pa>\x80a>Y` a>R_\x85\x01a=\xD6V[\x93\x01a=\xE3V[\x91a>qa>ea\x03\xD4V[\x93\x84\x92` \x84\x01a>\tV[` \x82\x01\x81\x03\x82R\x03\x82a\x0EtV[a>\x92a>\x8C\x82a>2V[\x91a>,V[ \x90V[\x1B\x90V[\x91\x90`\x08a>\xBA\x91\x02\x91a>\xB4`\x01\x80`\xA0\x1B\x03\x84a>\x96V[\x92a>\x96V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x91\x90a>\xDDa>\xD8a>\xE5\x93a\x05\xF9V[a>\xC4V[\x90\x83Ta>\x9AV[\x90UV[a>\xFB\x91a>\xF5a%vV[\x91a>\xC7V[V[_a?\x0Ca?\x11\x92`!a;\x05V[a>\xE9V[V[a?&c\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16a;\x1BV[\x80a?Aa?;a?6_a-\xB8V[a\x05OV[\x91a\x05OV[\x03aB\x1CWc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16aA\xFDV[_c\xD9.#=`\xE0\x1B\x81R\x80a?n`\x04\x82\x01a\n\\V[\x03\x90\xFD[a?\x8D\x90_\x91\x82\x91c\"\xA2\xD0{`\xE2\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[a?\x9A\x90a\x03\xE6V[\x90RV[\x91` a?\xBF\x92\x94\x93a?\xB8`@\x82\x01\x96_\x83\x01\x90a?\x91V[\x01\x90a\x13\x9FV[V[a?\xDB_\x92\x83\x92c\x10\xAE\x11\xA9`\xE3\x1B\x84R`\x04\x84\x01a?\x9EV[\x03\x90\xFD[\x90a?\xF0`\x01\x80`\xA0\x1B\x03\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a@\x0Fa@\na@\x16\x92a\x05\xF9V[a>\xC4V[\x82Ta?\xDFV[\x90UV[a@)a@.\x92\x91`!a;\x05V[a?\xFAV[V[\x91` a@Q\x92\x94\x93a@J`@\x82\x01\x96_\x83\x01\x90a\x13\x9FV[\x01\x90a\x07\xBBV[V[\x90a@ha@b\x83\x83\x90a&\x06V[\x15a\x043V[a@pWPPV[a@\x8A_\x92\x83\x92c\xE2Q}?`\xE0\x1B\x84R`\x04\x84\x01a@0V[\x03\x90\xFD[a@\x96a%vV[Pa@\xB1_a@\xABa@\xA6a$\xA1V[aB:V[\x01a%\xAFV[\x90V[\x90a@\xBE\x82aB=V[\x81a@\xE9\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x91a\x05\xF9V[\x90a@\xF2a\x03\xD4V[\x80a@\xFC\x81a\n\\V[\x03\x90\xA2aA\x08\x81a>2V[aA\x1AaA\x14_a yV[\x91a\x07\xDCV[\x11_\x14aA.WaA*\x91aC\rV[P[V[PPaA8aB\x92V[aA,V[aANaAHaC_\x14aB6W=_\xF3[=_\xFD[\x90V[\x80;aBQaBK_a yV[\x91a\x07\xDCV[\x14aBsWaBq\x90_aBkaBfa$\xA1V[aB:V[\x01a?\xFAV[V[aB\x8E\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[4aB\xA5aB\x9F_a yV[\x91a\x07\xDCV[\x11aB\xACWV[_c\xB3\x98\x97\x9F`\xE0\x1B\x81R\x80aB\xC4`\x04\x82\x01a\n\\V[\x03\x90\xFD[``\x90V[\x90aB\xDFaB\xDA\x83a\x0E\xB0V[a\x0E\x9BV[\x91\x82RV[=_\x14aB\xFFWaB\xF4=aB\xCDV[\x90=_` \x84\x01>[V[aC\x07aB\xC8V[\x90aB\xFDV[_\x80aC9\x93aC\x1BaB\xC8V[P\x83\x90` \x81\x01\x90Q\x91Z\xF4\x90aC0aB\xE4V[\x90\x91\x90\x91aC~V[\x90V[aCDa\x1F\xF9V[PaCW_aCQa=>V[\x01a+YV[\x90V[\x7F\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\x90V[\x90aC\x92\x90aC\x8BaB\xC8V[P\x15a\x043V[_\x14aC\x9EWPaD\x02V[aC\xA7\x82a>2V[aC\xB9aC\xB3_a yV[\x91a\x07\xDCV[\x14\x80aC\xE7W[aC\xC8WP\x90V[aC\xE3\x90_\x91\x82\x91c\x99\x96\xB3\x15`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[P\x80;aC\xFCaC\xF6_a yV[\x91a\x07\xDCV[\x14aC\xC0V[aD\x0B\x81a>2V[aD\x1DaD\x17_a yV[\x91a\x07\xDCV[\x11_\x14aD,W\x80Q\x90` \x01\xFD[_c\xD6\xBD\xA2u`\xE0\x1B\x81R\x80aDD`\x04\x82\x01a\n\\V[\x03\x90\xFD\xFE\xA1dsolcC\0\x08\x1A\0\n", + b"`\xA0`@R4a\0>Wa\0\x11a\0MV[a\0\x19a\0CV[aD\xDCa\x03\x07\x829`\x80Q\x81\x81\x81a9\x07\x01R\x81\x81a9l\x01Ra;\x1B\x01RaD\xDC\x90\xF3[a\0IV[`@Q\x90V[_\x80\xFD[a\0Ua\0_V[a\0]a\x02*V[V[a\0ga\0iV[V[a\0qa\0sV[V[a\0{a\0}V[V[a\0\x85a\0\x87V[V[a\0\x8Fa\0\x91V[V[a\0\x99a\0\x9BV[V[a\0\xA3a\0\xA5V[V[a\0\xADa\0\xAFV[V[a\0\xB7a\0\xB9V[V[a\0\xC1a\0\xC3V[V[a\0\xCBa\0\xCDV[V[a\0\xD5a\0\xD7V[V[a\0\xDFa\0\xE1V[V[a\0\xE9a\x01-V[V[`\x01\x80`\xA0\x1B\x03\x16\x90V[\x90V[a\x01\ra\x01\x08a\x01\x12\x92a\0\xEBV[a\0\xF6V[a\0\xEBV[\x90V[a\x01\x1E\x90a\0\xF9V[\x90V[a\x01*\x90a\x01\x15V[\x90V[a\x0160a\x01!V[`\x80RV[`@\x1C\x90V[`\xFF\x16\x90V[a\x01Sa\x01X\x91a\x01;V[a\x01AV[\x90V[a\x01e\x90Ta\x01GV[\x90V[_\x01\x90V[_\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x01\x89a\x01\x8E\x91a\x01mV[a\x01rV[\x90V[a\x01\x9B\x90Ta\x01}V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[_\x1B\x90V[\x90a\x01\xBF`\x01\x80`@\x1B\x03\x91a\x01\xA9V[\x91\x81\x19\x16\x91\x16\x17\x90V[a\x01\xDDa\x01\xD8a\x01\xE2\x92a\x01\x9EV[a\0\xF6V[a\x01\x9EV[\x90V[\x90V[\x90a\x01\xFDa\x01\xF8a\x02\x04\x92a\x01\xC9V[a\x01\xE5V[\x82Ta\x01\xAEV[\x90UV[a\x02\x11\x90a\x01\x9EV[\x90RV[\x91\x90a\x02(\x90_` \x85\x01\x94\x01\x90a\x02\x08V[V[a\x022a\x02\xE2V[a\x02=_\x82\x01a\x01[V[a\x02\xC6Wa\x02L_\x82\x01a\x01\x91V[a\x02da\x02^`\x01\x80`@\x1B\x03a\x01\x9EV[\x91a\x01\x9EV[\x03a\x02mW[PV[a\x02\x80\x90_`\x01\x80`@\x1B\x03\x91\x01a\x01\xE8V[`\x01\x80`@\x1B\x03a\x02\xBD\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a\x02\xB4a\0CV[\x91\x82\x91\x82a\x02\x15V[\x03\x90\xA1_a\x02jV[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a\x02\xDE`\x04\x82\x01a\x01hV[\x03\x90\xFD[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V\xFE`\x80`@R`\x046\x10\x15a\0\x15W[6a5UW\0[a\0\x1F_5a\x03\xDEV[\x80c\x01\xFF\xC9\xA7\x14a\x03\xD9W\x80c\x05\xD6N8\x14a\x03\xD4W\x80c\n\xA8\xB1\x10\x14a\x03\xCFW\x80c\x12\xD9\x1C\x88\x14a\x03\xCAW\x80c\x18\x05m\xC2\x14a\x03\xC5W\x80c\x19\xE8.a\x14a\x03\xC0W\x80c$\x8A\x9C\xA3\x14a\x03\xBBW\x80c//\xF1]\x14a\x03\xB6W\x80c2'?a\x14a\x03\xB1W\x80c6V\x8A\xBE\x14a\x03\xACW\x80cE>\xCC\xEA\x14a\x03\xA7W\x80cF\xD1c\xAA\x14a\x03\xA2W\x80cI\x14t\x11\x14a\x03\x9DW\x80cIb\xF8\x8F\x14a\x03\x98W\x80cM\xE8\xAD\xDC\x14a\x03\x93W\x80cN\x9C\x92\x9A\x14a\x03\x8EW\x80cO\x1E\xF2\x86\x14a\x03\x89W\x80cP\x95\xAFd\x14a\x03\x84W\x80cR\xD1\x90-\x14a\x03\x7FW\x80cT\xDE# \x14a\x03zW\x80c\\\x97Z\xBB\x14a\x03uW\x80c`#V\xE3\x14a\x03pW\x80cf\xC3hu\x14a\x03kW\x80cr\xB5\x03-\x14a\x03fW\x80cu\xB28\xFC\x14a\x03aW\x80cw\xAB,\xF3\x14a\x03\\W\x80c}\xF9*\xDA\x14a\x03WW\x80c\x88\xC4\x7Fh\x14a\x03RW\x80c\x8A\x19\xC8\xBC\x14a\x03MW\x80c\x8A\x7F\xE6\x0F\x14a\x03HW\x80c\x90\x83\x7F\xF4\x14a\x03CW\x80c\x91\xD1HT\x14a\x03>W\x80c\x94\x80\xE4\xDD\x14a\x039W\x80c\x94\x94\xF4&\x14a\x034W\x80c\x96\x08Vs\x14a\x03/W\x80c\x97\"\xF4\xB9\x14a\x03*W\x80c\x9E\x87\x05\x85\x14a\x03%W\x80c\xA2\x17\xFD\xDF\x14a\x03 W\x80c\xA4W\xAF=\x14a\x03\x1BW\x80c\xA4\xB3-\xE8\x14a\x03\x16W\x80c\xA7\xFAo\x98\x14a\x03\x11W\x80c\xAA\xF5\xEBh\x14a\x03\x0CW\x80c\xAD<\xB1\xCC\x14a\x03\x07W\x80c\xB5K+\x9E\x14a\x03\x02W\x80c\xB6`\x84\t\x14a\x02\xFDW\x80c\xBA\x05\xBB\xF5\x14a\x02\xF8W\x80c\xC0tI\xE2\x14a\x02\xF3W\x80c\xC5P\xD98\x14a\x02\xEEW\x80c\xCB\xB6\xD6\xBD\x14a\x02\xE9W\x80c\xD2zo\x06\x14a\x02\xE4W\x80c\xD4_\xF5\x82\x14a\x02\xDFW\x80c\xD5Gt\x1F\x14a\x02\xDAW\x80c\xDB\x8A\x17:\x14a\x02\xD5W\x80c\xDDvJ\xBF\x14a\x02\xD0W\x80c\xE0}\xEC)\x14a\x02\xCBW\x80c\xE1\xA4R\x18\x14a\x02\xC6W\x80c\xE2~\x05\xC1\x14a\x02\xC1W\x80c\xF3\xC9\xB3\x11\x14a\x02\xBCW\x80c\xF7,\r\x8B\x14a\x02\xB7Wc\xF7\xCBx\x9A\x03a\0\x0EWa 8V[a\x1F\xF4V[a\x1F\x90V[a\x1F#V[a\x1E\xEEV[a\x1E\x85V[a\x1E\x1CV[a\x1D\xAAV[a\x1DgV[a\x1D2V[a\x1C\xC4V[a\x1CTV[a\x1B\x92V[a\x1B\\V[a\x1A\xEEV[a\x1A\xAAV[a\x1A>V[a\x19\xFAV[a\x18\xCBV[a\x18XV[a\x17\xEBV[a\x17\x86V[a\x16dV[a\x15\xF4V[a\x15\x85V[a\x15/V[a\x14\xE0V[a\x14qV[a\x14;V[a\x14\x06V[a\x13\xD1V[a\x13zV[a\x138V[a\x12\xC9V[a\x12[V[a\x11\xEBV[a\x11\x86V[a\x11QV[a\x11\x1CV[a\x10\xB8V[a\x10\x83V[a\x10\x16V[a\x0F\xE1V[a\x0F\x88V[a\x0E,V[a\r}V[a\r8V[a\x0C\xCBV[a\x0C\x98V[a\x0CEV[a\x0B\xD9V[a\x0B\xA4V[a\x0B:V[a\n\xD8V[a\nqV[a\t\xAAV[a\t'V[a\x08\x82V[a\x05\x1FV[a\x04jV[`\xE0\x1C\x90V[`@Q\x90V[_\x80\xFD[_\x80\xFD[_\x80\xFD[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90V[a\x04\x0B\x81a\x03\xF6V[\x03a\x04\x12WV[_\x80\xFD[\x90P5\x90a\x04#\x82a\x04\x02V[V[\x90` \x82\x82\x03\x12a\x04>Wa\x04;\x91_\x01a\x04\x16V[\x90V[a\x03\xEEV[\x15\x15\x90V[a\x04Q\x90a\x04CV[\x90RV[\x91\x90a\x04h\x90_` \x85\x01\x94\x01\x90a\x04HV[V[4a\x04\x9AWa\x04\x96a\x04\x85a\x04\x806`\x04a\x04%V[a qV[a\x04\x8Da\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[_\x91\x03\x12a\x04\xA9WV[a\x03\xEEV[\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xCD\x90`\x08a\x04\xD2\x93\x02a\x04\xAEV[a\x04\xB2V[\x90V[\x90a\x04\xE0\x91Ta\x04\xBDV[\x90V[a\x04\xEF_`\x10\x90a\x04\xD5V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x05\x06\x90a\x04\xF2V[\x90RV[\x91\x90a\x05\x1D\x90_` \x85\x01\x94\x01\x90a\x04\xFDV[V[4a\x05OWa\x05/6`\x04a\x04\x9FV[a\x05Ka\x05:a\x04\xE3V[a\x05Ba\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[`\x01\x80`\xA0\x1B\x03\x16\x90V[a\x05h\x90a\x05TV[\x90V[a\x05t\x81a\x05_V[\x03a\x05{WV[_\x80\xFD[\x90P5\x90a\x05\x8C\x82a\x05kV[V[a\x05\x97\x81a\x04\xF2V[\x03a\x05\x9EWV[_\x80\xFD[\x90P5\x90a\x05\xAF\x82a\x05\x8EV[V[\x91\x90`@\x83\x82\x03\x12a\x05\xD9W\x80a\x05\xCDa\x05\xD6\x92_\x86\x01a\x05\x7FV[\x93` \x01a\x05\xA2V[\x90V[a\x03\xEEV[\x90V[a\x05\xF5a\x05\xF0a\x05\xFA\x92a\x05TV[a\x05\xDEV[a\x05TV[\x90V[a\x06\x06\x90a\x05\xE1V[\x90V[a\x06\x12\x90a\x05\xFDV[\x90V[\x90a\x06\x1F\x90a\x06\tV[_R` R`@_ \x90V[a\x06?a\x06:a\x06D\x92a\x04\xF2V[a\x05\xDEV[a\x04\xF2V[\x90V[\x90a\x06Q\x90a\x06+V[_R` R`@_ \x90V[_\x1C\x90V[a\x06na\x06s\x91a\x06]V[a\x04\xB2V[\x90V[a\x06\x80\x90Ta\x06bV[\x90V[`@\x1C\x90V[a\x06\x95a\x06\x9A\x91a\x06\x83V[a\x04\xB2V[\x90V[a\x06\xA7\x90Ta\x06\x89V[\x90V[`\x80\x1C\x90V[a\x06\xBCa\x06\xC1\x91a\x06\xAAV[a\x04\xB2V[\x90V[a\x06\xCE\x90Ta\x06\xB0V[\x90V[\x90V[a\x06\xE0a\x06\xE5\x91a\x06]V[a\x06\xD1V[\x90V[a\x06\xF2\x90Ta\x06\xD4V[\x90V[a\xFF\xFF\x16\x90V[a\x07\x08a\x07\r\x91a\x06]V[a\x06\xF5V[\x90V[a\x07\x1A\x90Ta\x06\xFCV[\x90V[\x90V[a\x07,a\x071\x91a\x06]V[a\x07\x1DV[\x90V[a\x07>\x90Ta\x07 V[\x90V[\x90a\x07Pa\x07U\x92`Ua\x06\x15V[a\x06GV[a\x07`_\x82\x01a\x06vV[\x91a\x07l_\x83\x01a\x06\x9DV[\x91a\x07x_\x82\x01a\x06\xC4V[\x91a\x07\x85`\x01\x83\x01a\x06\xE8V[\x91a\x07\x92`\x02\x82\x01a\x07\x10V[\x91a\x07\x9F`\x03\x83\x01a\x074V[\x91a\x07\xAC`\x04\x82\x01a\x074V[\x91a\x07\xC5`\x06a\x07\xBE`\x05\x85\x01a\x074V[\x93\x01a\x06\xE8V[\x90V[\x90V[a\x07\xD4\x90a\x07\xC8V[\x90RV[a\xFF\xFF\x16\x90V[a\x07\xE8\x90a\x07\xD8V[\x90RV[\x90V[a\x07\xF8\x90a\x07\xECV[\x90RV[\x96\x94\x92\x90\x99\x98\x97\x95\x93\x91a\x01 \x88\x01\x9A_\x89\x01a\x08\x18\x91a\x04\xFDV[` \x88\x01a\x08%\x91a\x04\xFDV[`@\x87\x01a\x082\x91a\x04\xFDV[``\x86\x01a\x08?\x91a\x07\xCBV[`\x80\x85\x01a\x08L\x91a\x07\xDFV[`\xA0\x84\x01a\x08Y\x91a\x07\xEFV[`\xC0\x83\x01a\x08f\x91a\x07\xEFV[`\xE0\x82\x01a\x08s\x91a\x07\xEFV[a\x01\0\x01a\x08\x80\x91a\x07\xCBV[V[4a\x08\xBDWa\x08\xB9a\x08\x9Ea\x08\x986`\x04a\x05\xB1V[\x90a\x07AV[\x95a\x08\xB0\x99\x97\x99\x95\x91\x95\x94\x92\x94a\x03\xE4V[\x99\x8A\x99\x8Aa\x07\xFCV[\x03\x90\xF3[a\x03\xEAV[a\x08\xCB\x81a\x07\xC8V[\x03a\x08\xD2WV[_\x80\xFD[\x90P5\x90a\x08\xE3\x82a\x08\xC2V[V[\x91\x90`@\x83\x82\x03\x12a\t\rW\x80a\t\x01a\t\n\x92_\x86\x01a\x05\x7FV[\x93` \x01a\x08\xD6V[\x90V[a\x03\xEEV[\x91\x90a\t%\x90_` \x85\x01\x94\x01\x90a\x07\xEFV[V[4a\tXWa\tTa\tCa\t=6`\x04a\x08\xE5V[\x90a!\tV[a\tKa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\tta\toa\ty\x92a\t]V[a\x05\xDEV[a\x07\xD8V[\x90V[a\t\x87a*\xF8a\t`V[\x90V[a\t\x92a\t|V[\x90V[\x91\x90a\t\xA8\x90_` \x85\x01\x94\x01\x90a\x07\xDFV[V[4a\t\xDAWa\t\xBA6`\x04a\x04\x9FV[a\t\xD6a\t\xC5a\t\x8AV[a\t\xCDa\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[_\x80\xFD[_\x80\xFD[_\x80\xFD[\x90\x91\x82`\x1F\x83\x01\x12\x15a\n#W\x815\x91`\x01\x80`@\x1B\x03\x83\x11a\n\x1EW` \x01\x92` \x83\x02\x84\x01\x11a\n\x19WV[a\t\xE7V[a\t\xE3V[a\t\xDFV[\x91\x90\x91`@\x81\x84\x03\x12a\ngWa\nA\x83_\x83\x01a\x05\x7FV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\nbWa\n^\x92\x01a\t\xEBV[\x90\x91V[a\x03\xF2V[a\x03\xEEV[_\x01\x90V[4a\n\xA0Wa\n\x8Aa\n\x846`\x04a\n(V[\x91a!\xDAV[a\n\x92a\x03\xE4V[\x80a\n\x9C\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\n\xBEWa\n\xBB\x91_\x01a\x08\xD6V[\x90V[a\x03\xEEV[\x91\x90a\n\xD6\x90_` \x85\x01\x94\x01\x90a\x07\xCBV[V[4a\x0B\x08Wa\x0B\x04a\n\xF3a\n\xEE6`\x04a\n\xA5V[a\"\x12V[a\n\xFBa\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x91\x90`@\x83\x82\x03\x12a\x0B5W\x80a\x0B)a\x0B2\x92_\x86\x01a\x08\xD6V[\x93` \x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x0BiWa\x0BSa\x0BM6`\x04a\x0B\rV[\x90a\"fV[a\x0B[a\x03\xE4V[\x80a\x0Be\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x0B~\x90`\x08a\x0B\x83\x93\x02a\x04\xAEV[a\x06\xF5V[\x90V[\x90a\x0B\x91\x91Ta\x0BnV[\x90V[a\x0B\xA1`\x01`\x10\x90a\x0B\x86V[\x90V[4a\x0B\xD4Wa\x0B\xB46`\x04a\x04\x9FV[a\x0B\xD0a\x0B\xBFa\x0B\x94V[a\x0B\xC7a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[4a\x0C\x08Wa\x0B\xF2a\x0B\xEC6`\x04a\x0B\rV[\x90a\"rV[a\x0B\xFAa\x03\xE4V[\x80a\x0C\x04\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x0C$a\x0C\x1Fa\x0C)\x92a\x0C\rV[a\x05\xDEV[a\x07\xD8V[\x90V[a\x0C7a>\x80a\x0C\x10V[\x90V[a\x0CBa\x0C,V[\x90V[4a\x0CuWa\x0CU6`\x04a\x04\x9FV[a\x0Cqa\x0C`a\x0C:V[a\x0Cha\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\x0C\x93Wa\x0C\x90\x91_\x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x0C\xC6Wa\x0C\xB0a\x0C\xAB6`\x04a\x0CzV[a#\xB0V[a\x0C\xB8a\x03\xE4V[\x80a\x0C\xC2\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[4a\x0C\xFBWa\x0C\xF7a\x0C\xE6a\x0C\xE16`\x04a\x0CzV[a$\x8EV[a\x0C\xEEa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\r\x17a\r\x12a\r\x1C\x92a\r\0V[a\x05\xDEV[a\x07\xD8V[\x90V[a\r*a'\x10a\r\x03V[\x90V[a\r5a\r\x1FV[\x90V[4a\rhWa\rH6`\x04a\x04\x9FV[a\rda\rSa\r-V[a\r[a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[a\rz`\x01`\x08\x90a\x04\xD5V[\x90V[4a\r\xADWa\r\x8D6`\x04a\x04\x9FV[a\r\xA9a\r\x98a\rmV[a\r\xA0a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x91\x90`@\x83\x82\x03\x12a\r\xDAW\x80a\r\xCEa\r\xD7\x92_\x86\x01a\x05\xA2V[\x93` \x01a\x05\x7FV[\x90V[a\x03\xEEV[\x90a\r\xE9\x90a\x06+V[_R` R`@_ \x90V[\x90a\r\xFF\x90a\x06\tV[_R` R`@_ \x90V[a\x0E$a\x0E)\x92a\x0E\x1F`X\x93_\x94a\r\xDFV[a\r\xF5V[a\x04\xD5V[\x90V[4a\x0E]Wa\x0EYa\x0EHa\x0EB6`\x04a\r\xB2V[\x90a\x0E\x0BV[a\x0EPa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[_\x80\xFD[`\x1F\x80\x19\x91\x01\x16\x90V[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90a\x0E\x8E\x90a\x0EfV[\x81\x01\x90\x81\x10`\x01\x80`@\x1B\x03\x82\x11\x17a\x0E\xA6W`@RV[a\x0EpV[\x90a\x0E\xBEa\x0E\xB7a\x03\xE4V[\x92\x83a\x0E\x84V[V[`\x01\x80`@\x1B\x03\x81\x11a\x0E\xDCWa\x0E\xD8` \x91a\x0EfV[\x01\x90V[a\x0EpV[\x90\x82_\x93\x92\x827\x01RV[\x90\x92\x91\x92a\x0F\x01a\x0E\xFC\x82a\x0E\xC0V[a\x0E\xABV[\x93\x81\x85R` \x85\x01\x90\x82\x84\x01\x11a\x0F\x1DWa\x0F\x1B\x92a\x0E\xE1V[V[a\x0EbV[\x90\x80`\x1F\x83\x01\x12\x15a\x0F@W\x81` a\x0F=\x935\x91\x01a\x0E\xECV[\x90V[a\t\xDFV[\x91\x90\x91`@\x81\x84\x03\x12a\x0F\x83Wa\x0F^\x83_\x83\x01a\x05\x7FV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\x0F~Wa\x0F{\x92\x01a\x0F\"V[\x90V[a\x03\xF2V[a\x03\xEEV[a\x0F\x9Ca\x0F\x966`\x04a\x0FEV[\x90a$\xD6V[a\x0F\xA4a\x03\xE4V[\x80a\x0F\xAE\x81a\nlV[\x03\x90\xF3[\x7F\x12\xB4.\x8A\x16\x0F`d\xDC\x95\x9Co%\x1E:\xF0u\n\xD2\x13\xDB\xEC\xF5s\xB4q\rg\xD6\xC2\x8E9\x90V[a\x0F\xDEa\x0F\xB2V[\x90V[4a\x10\x11Wa\x0F\xF16`\x04a\x04\x9FV[a\x10\ra\x0F\xFCa\x0F\xD6V[a\x10\x04a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[4a\x10FWa\x10&6`\x04a\x04\x9FV[a\x10Ba\x101a%MV[a\x109a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x10ba\x10]a\x10g\x92a\x10KV[a\x05\xDEV[a\x07\xD8V[\x90V[a\x10ua.\xE0a\x10NV[\x90V[a\x10\x80a\x10jV[\x90V[4a\x10\xB3Wa\x10\x936`\x04a\x04\x9FV[a\x10\xAFa\x10\x9Ea\x10xV[a\x10\xA6a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[4a\x10\xE8Wa\x10\xC86`\x04a\x04\x9FV[a\x10\xE4a\x10\xD3a%\x81V[a\x10\xDBa\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x7F\x19D\x9AJ\xD5~@\xA5\xAAw\xE7\x85\xB4S\x9ES\xBA\x9E\x7F\xED\xBFpv8\x8E\xE3\xFB\x1B\xC2\xDD\xEA\x1B\x90V[a\x11\x19a\x10\xEDV[\x90V[4a\x11LWa\x11,6`\x04a\x04\x9FV[a\x11Ha\x117a\x11\x11V[a\x11?a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[4a\x11\x81Wa\x11}a\x11la\x11g6`\x04a\x0CzV[a%\xA3V[a\x11ta\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[4a\x11\xB7Wa\x11\xB3a\x11\xA2a\x11\x9C6`\x04a\r\xB2V[\x90a%\xC2V[a\x11\xAAa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x7F\xA4\x98\x07 \\\xE4\xD3U\t.\xF5\xA8\xA1\x8FV\xE8\x91<\xF4\xA2\x01\xFB\xE2\x87\x82[\tV\x93\xC2\x17u\x90V[a\x11\xE8a\x11\xBCV[\x90V[4a\x12\x1BWa\x11\xFB6`\x04a\x04\x9FV[a\x12\x17a\x12\x06a\x11\xE0V[a\x12\x0Ea\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[`\xFF\x16\x90V[a\x126\x90`\x08a\x12;\x93\x02a\x04\xAEV[a\x12 V[\x90V[\x90a\x12I\x91Ta\x12&V[\x90V[a\x12X`\x05_\x90a\x12>V[\x90V[4a\x12\x8BWa\x12k6`\x04a\x04\x9FV[a\x12\x87a\x12va\x12LV[a\x12~a\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x12\xA7a\x12\xA2a\x12\xAC\x92a\x12\x90V[a\x05\xDEV[a\x04\xF2V[\x90V[a\x12\xBBbO\x1A\0a\x12\x93V[\x90V[a\x12\xC6a\x12\xAFV[\x90V[4a\x12\xF9Wa\x12\xD96`\x04a\x04\x9FV[a\x12\xF5a\x12\xE4a\x12\xBEV[a\x12\xECa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x13\x15a\x13\x10a\x13\x1A\x92a\x12\xFEV[a\x05\xDEV[a\x07\xECV[\x90V[a\x13*c\x05\xF5\xE1\0a\x13\x01V[\x90V[a\x135a\x13\x1DV[\x90V[4a\x13hWa\x13H6`\x04a\x04\x9FV[a\x13da\x13Sa\x13-V[a\x13[a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x13w_\x80a\x04\xD5V[\x90V[4a\x13\xAAWa\x13\x8A6`\x04a\x04\x9FV[a\x13\xA6a\x13\x95a\x13mV[a\x13\x9Da\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x13\xB8\x90a\x05_V[\x90RV[\x91\x90a\x13\xCF\x90_` \x85\x01\x94\x01\x90a\x13\xAFV[V[4a\x14\x01Wa\x13\xFDa\x13\xECa\x13\xE76`\x04a\x0CzV[a&0V[a\x13\xF4a\x03\xE4V[\x91\x82\x91\x82a\x13\xBCV[\x03\x90\xF3[a\x03\xEAV[4a\x146Wa\x142a\x14!a\x14\x1C6`\x04a\x04%V[a&OV[a\x14)a\x03\xE4V[\x91\x82\x91\x82a\x13\xBCV[\x03\x90\xF3[a\x03\xEAV[4a\x14lWa\x14ha\x14Wa\x14Q6`\x04a\x0B\rV[\x90a&zV[a\x14_a\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[4a\x14\xA1Wa\x14\x9Da\x14\x8Ca\x14\x876`\x04a\x0CzV[a&\xACV[a\x14\x94a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90\x91``\x82\x84\x03\x12a\x14\xDBWa\x14\xD8a\x14\xC1\x84_\x85\x01a\x05\x7FV[\x93a\x14\xCF\x81` \x86\x01a\x05\xA2V[\x93`@\x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x15\x11Wa\x15\ra\x14\xFCa\x14\xF66`\x04a\x14\xA6V[\x91a(\xE4V[a\x15\x04a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x15,\x90a\x15'`V\x91_\x92a\r\xF5V[a\x04\xD5V[\x90V[4a\x15_Wa\x15[a\x15Ja\x15E6`\x04a\x0CzV[a\x15\x16V[a\x15Ra\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x15}a\x15\x82\x92a\x15x`W\x93_\x94a\r\xDFV[a\r\xF5V[a\x04\xD5V[\x90V[4a\x15\xB6Wa\x15\xB2a\x15\xA1a\x15\x9B6`\x04a\r\xB2V[\x90a\x15dV[a\x15\xA9a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x15\xD2a\x15\xCDa\x15\xD7\x92a\x15\xBBV[a\x05\xDEV[a\x04\xF2V[\x90V[a\x15\xE6b'\x8D\0a\x15\xBEV[\x90V[a\x15\xF1a\x15\xDAV[\x90V[4a\x16$Wa\x16\x046`\x04a\x04\x9FV[a\x16 a\x16\x0Fa\x15\xE9V[a\x16\x17a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[_\x1B\x90V[a\x16Ea\x16@a\x16J\x92a\x16)V[a\x16,V[a\x07\xC8V[\x90V[a\x16V_a\x161V[\x90V[a\x16aa\x16MV[\x90V[4a\x16\x94Wa\x16t6`\x04a\x04\x9FV[a\x16\x90a\x16\x7Fa\x16YV[a\x16\x87a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[a\x16\xA2\x90a\x04\xF2V[\x90RV[a\x16\xAF\x90a\x07\xC8V[\x90RV[a\x16\xBC\x90a\x07\xD8V[\x90RV[a\x16\xC9\x90a\x07\xECV[\x90RV[\x90a\x01\0\x80a\x17n\x93a\x16\xE6_\x82\x01Q_\x86\x01\x90a\x16\x99V[a\x16\xF8` \x82\x01Q` \x86\x01\x90a\x16\x99V[a\x17\n`@\x82\x01Q`@\x86\x01\x90a\x16\x99V[a\x17\x1C``\x82\x01Q``\x86\x01\x90a\x16\xA6V[a\x17.`\x80\x82\x01Q`\x80\x86\x01\x90a\x16\xB3V[a\x17@`\xA0\x82\x01Q`\xA0\x86\x01\x90a\x16\xC0V[a\x17R`\xC0\x82\x01Q`\xC0\x86\x01\x90a\x16\xC0V[a\x17d`\xE0\x82\x01Q`\xE0\x86\x01\x90a\x16\xC0V[\x01Q\x91\x01\x90a\x16\xA6V[V[\x91\x90a\x17\x84\x90_a\x01 \x85\x01\x94\x01\x90a\x16\xCDV[V[4a\x17\xB7Wa\x17\xB3a\x17\xA2a\x17\x9C6`\x04a\x05\xB1V[\x90a*\x92V[a\x17\xAAa\x03\xE4V[\x91\x82\x91\x82a\x17pV[\x03\x90\xF3[a\x03\xEAV[\x7F\xB1\xFA\xDD1B\xAB*\xD7\xF13~\xA4\xD9q\x12\xBC\xC83\x7F\xC1\x1C\xE5\xB2\x0C\xB0J\xD08\xAD\xF9\x98\x19\x90V[a\x17\xE8a\x17\xBCV[\x90V[4a\x18\x1BWa\x17\xFB6`\x04a\x04\x9FV[a\x18\x17a\x18\x06a\x17\xE0V[a\x18\x0Ea\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x187a\x182a\x18<\x92a\x18 V[a\x05\xDEV[a\x07\xD8V[\x90V[a\x18Ja2\xC8a\x18#V[\x90V[a\x18Ua\x18?V[\x90V[4a\x18\x88Wa\x18h6`\x04a\x04\x9FV[a\x18\x84a\x18sa\x18MV[a\x18{a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x18\xA4a\x18\x9Fa\x18\xA9\x92a\x18\x8DV[a\x05\xDEV[a\x07\xECV[\x90V[a\x18\xBDg\r\xE0\xB6\xB3\xA7d\0\0a\x18\x90V[\x90V[a\x18\xC8a\x18\xACV[\x90V[4a\x18\xFBWa\x18\xDB6`\x04a\x04\x9FV[a\x18\xF7a\x18\xE6a\x18\xC0V[a\x18\xEEa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[`\x01\x80`@\x1B\x03\x81\x11a\x19\x1CWa\x19\x18` \x91a\x0EfV[\x01\x90V[a\x0EpV[\x90a\x193a\x19.\x83a\x19\0V[a\x0E\xABV[\x91\x82RV[_\x7F5.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x01RV[a\x19i`\x05a\x19!V[\x90a\x19v` \x83\x01a\x198V[V[a\x19\x80a\x19_V[\x90V[a\x19\x8Ba\x19xV[\x90V[a\x19\x96a\x19\x83V[\x90V[Q\x90V[` \x91\x81R\x01\x90V[\x90\x82_\x93\x92\x82^\x01RV[a\x19\xD0a\x19\xD9` \x93a\x19\xDE\x93a\x19\xC7\x81a\x19\x99V[\x93\x84\x80\x93a\x19\x9DV[\x95\x86\x91\x01a\x19\xA6V[a\x0EfV[\x01\x90V[a\x19\xF7\x91` \x82\x01\x91_\x81\x84\x03\x91\x01Ra\x19\xB1V[\x90V[4a\x1A*Wa\x1A\n6`\x04a\x04\x9FV[a\x1A&a\x1A\x15a\x19\x8EV[a\x1A\x1Da\x03\xE4V[\x91\x82\x91\x82a\x19\xE2V[\x03\x90\xF3[a\x03\xEAV[a\x1A;`\x07_\x90a\x12>V[\x90V[4a\x1AnWa\x1AN6`\x04a\x04\x9FV[a\x1Aja\x1AYa\x1A/V[a\x1Aaa\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1A\x8Aa\x1A\x85a\x1A\x8F\x92a\x1AsV[a\x05\xDEV[a\x07\xECV[\x90V[a\x1A\x9C`\x01a\x1AvV[\x90V[a\x1A\xA7a\x1A\x92V[\x90V[4a\x1A\xDAWa\x1A\xBA6`\x04a\x04\x9FV[a\x1A\xD6a\x1A\xC5a\x1A\x9FV[a\x1A\xCDa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x1A\xEB_`\x18\x90a\x04\xD5V[\x90V[4a\x1B\x1EWa\x1A\xFE6`\x04a\x04\x9FV[a\x1B\x1Aa\x1B\ta\x1A\xDFV[a\x1B\x11a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90` \x80a\x1BE\x93a\x1B;_\x82\x01Q_\x86\x01\x90a\x16\xC0V[\x01Q\x91\x01\x90a\x16\xC0V[V[\x91\x90a\x1BZ\x90_`@\x85\x01\x94\x01\x90a\x1B#V[V[4a\x1B\x8DWa\x1B\x89a\x1Bxa\x1Br6`\x04a\r\xB2V[\x90a+iV[a\x1B\x80a\x03\xE4V[\x91\x82\x91\x82a\x1BGV[\x03\x90\xF3[a\x03\xEAV[4a\x1B\xC3Wa\x1B\xBFa\x1B\xAEa\x1B\xA86`\x04a\r\xB2V[\x90a+\x91V[a\x1B\xB6a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x1B\xD1\x81a\x07\xECV[\x03a\x1B\xD8WV[_\x80\xFD[\x90P5\x90a\x1B\xE9\x82a\x1B\xC8V[V[a\x1B\xF4\x81a\x07\xD8V[\x03a\x1B\xFBWV[_\x80\xFD[\x90P5\x90a\x1C\x0C\x82a\x1B\xEBV[V[`\x80\x81\x83\x03\x12a\x1COWa\x1C$\x82_\x83\x01a\x05\x7FV[\x92a\x1CLa\x1C5\x84` \x85\x01a\x1B\xDCV[\x93a\x1CC\x81`@\x86\x01a\x1B\xDCV[\x93``\x01a\x1B\xFFV[\x90V[a\x03\xEEV[4a\x1C\x86Wa\x1Cpa\x1Cg6`\x04a\x1C\x0EV[\x92\x91\x90\x91a3\x7FV[a\x1Cxa\x03\xE4V[\x80a\x1C\x82\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1C\xA2a\x1C\x9Da\x1C\xA7\x92a\x1C\x8BV[a\x05\xDEV[a\x04\xF2V[\x90V[a\x1C\xB6bv\xA7\0a\x1C\x8EV[\x90V[a\x1C\xC1a\x1C\xAAV[\x90V[4a\x1C\xF4Wa\x1C\xD46`\x04a\x04\x9FV[a\x1C\xF0a\x1C\xDFa\x1C\xB9V[a\x1C\xE7a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1D\x10a\x1D\x0Ba\x1D\x15\x92a\x1C\xF9V[a\x05\xDEV[a\x04\xF2V[\x90V[a\x1D$b\t:\x80a\x1C\xFCV[\x90V[a\x1D/a\x1D\x18V[\x90V[4a\x1DbWa\x1DB6`\x04a\x04\x9FV[a\x1D^a\x1DMa\x1D'V[a\x1DUa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[4a\x1D\x96Wa\x1D\x80a\x1Dz6`\x04a\x0B\rV[\x90a3\xB7V[a\x1D\x88a\x03\xE4V[\x80a\x1D\x92\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x1D\xA7`\x01_\x90a\x04\xD5V[\x90V[4a\x1D\xDAWa\x1D\xBA6`\x04a\x04\x9FV[a\x1D\xD6a\x1D\xC5a\x1D\x9BV[a\x1D\xCDa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1D\xF6a\x1D\xF1a\x1D\xFB\x92a\x1D\xDFV[a\x05\xDEV[a\x07\xECV[\x90V[a\x1E\x0Ef#\x86\xF2o\xC1\0\0a\x1D\xE2V[\x90V[a\x1E\x19a\x1D\xFEV[\x90V[4a\x1ELWa\x1E,6`\x04a\x04\x9FV[a\x1EHa\x1E7a\x1E\x11V[a\x1E?a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\x1E\x80W_\x82\x015`\x01\x80`@\x1B\x03\x81\x11a\x1E{Wa\x1Ew\x92\x01a\t\xEBV[\x90\x91V[a\x03\xF2V[a\x03\xEEV[4a\x1E\xB4Wa\x1E\x9Ea\x1E\x986`\x04a\x1EQV[\x90a4\x18V[a\x1E\xA6a\x03\xE4V[\x80a\x1E\xB0\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x1E\xCDa\x1E\xC8a\x1E\xD2\x92a\r\0V[a\x05\xDEV[a\x07\xECV[\x90V[a\x1E\xE0a'\x10a\x1E\xB9V[\x90V[a\x1E\xEBa\x1E\xD5V[\x90V[4a\x1F\x1EWa\x1E\xFE6`\x04a\x04\x9FV[a\x1F\x1Aa\x1F\ta\x1E\xE3V[a\x1F\x11a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[4a\x1FRWa\x1F=\x90\xFD[a#\xB8a5\x92V[a#\xE3_a#\xCDa#\xC8\x84a\"\xC6V[a\"\xD2V[cn%\xB9x\x90a#\xDBa\x03\xE4V[\x93\x84\x92a\"\xDEV[\x82R\x81\x80a#\xF3`\x04\x82\x01a\nlV[\x03\x91Z\xFA\x80\x15a$sWa$\x0F\x91_\x91a$QW[P\x82a5\xCDV[a$9\x7FM<0\xF5\x99?\x19\"\xA7y4Z\x0F~\xC1\xA1p\xF1\xE5.\x9D#\x08$\xF9\xC1~cYl\x90m\x91a\x06\tV[\x90a$Ba\x03\xE4V[\x80a$L\x81a\nlV[\x03\x90\xA2V[a$m\x91P=\x80_\x83>a$e\x81\x83a\x0E\x84V[\x81\x01\x90a#mV[_a$\x08V[a#\xA0V[\x90a$\x82\x90a\x06\tV[_R` R`@_ \x90V[a$\xA5a$\xAA\x91a$\x9Da \xB1V[P`\x1Ba$xV[a\x074V[\x90V[\x90a$\xBF\x91a$\xBAa8\xF6V[a$\xC1V[V[\x90a$\xD4\x91a$\xCF\x81a9\xB0V[a:\x0CV[V[\x90a$\xE0\x91a$\xADV[V[a$\xF3\x90a$\xEEa;\nV[a%AV[\x90V[\x90V[a%\ra%\x08a%\x12\x92a$\xF6V[a\x16,V[a\x07\xC8V[\x90V[a%>\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCa$\xF9V[\x90V[Pa%Ja%\x15V[\x90V[a%]a%Xa!\xF8V[a$\xE2V[\x90V[a%la%q\x91a\x06]V[a\x12 V[\x90V[a%~\x90Ta%`V[\x90V[a%\x89a mV[Pa%\x9C_a%\x96a;hV[\x01a%tV[\x90V[_\x90V[a%\xBAa%\xBF\x91a%\xB2a%\x9FV[P`Va\r\xF5V[a\x06vV[\x90V[a%\xE7\x91a%\xDDa%\xE2\x92a%\xD5a%\x9FV[P`Wa\r\xDFV[a\r\xF5V[a\x06vV[\x90V[_\x90V[\x90a%\xF8\x90a\x06\tV[_R` R`@_ \x90V[`\x01\x80`\xA0\x1B\x03\x16\x90V[a&\x1Ba& \x91a\x06]V[a&\x04V[\x90V[a&-\x90Ta&\x0FV[\x90V[a&Ga&L\x91a&?a%\xEAV[P`\x06a%\xEEV[a&#V[\x90V[a&a\x90a&[a%\xEAV[Pa;\xA2V[\x90V[\x90a&n\x90a\x06\tV[_R` R`@_ \x90V[a&\xA9\x91_a&\x9Ea&\xA4\x93a&\x8Ea mV[P\x82a&\x98a7AV[\x01a!\xFCV[\x01a&dV[a%tV[\x90V[a&\xC3a&\xC8\x91a&\xBBa%\x9FV[P`#a\r\xF5V[a\x06vV[\x90V[\x90a&\xD5\x90a\x04\xF2V[\x90RV[\x90a&\xE3\x90a\x07\xC8V[\x90RV[\x90a&\xF1\x90a\x07\xD8V[\x90RV[\x90a&\xFF\x90a\x07\xECV[\x90RV[a'\x0Ea\x01 a\x0E\xABV[\x90V[\x90a'\xEFa'\xE5`\x06a'\"a'\x03V[\x94a'9a'1_\x83\x01a\x06vV[_\x88\x01a&\xCBV[a'Pa'G_\x83\x01a\x06\x9DV[` \x88\x01a&\xCBV[a'ga'^_\x83\x01a\x06\xC4V[`@\x88\x01a&\xCBV[a'\x7Fa'v`\x01\x83\x01a\x06\xE8V[``\x88\x01a&\xD9V[a'\x97a'\x8E`\x02\x83\x01a\x07\x10V[`\x80\x88\x01a&\xE7V[a'\xAFa'\xA6`\x03\x83\x01a\x074V[`\xA0\x88\x01a&\xF5V[a'\xC7a'\xBE`\x04\x83\x01a\x074V[`\xC0\x88\x01a&\xF5V[a'\xDFa'\xD6`\x05\x83\x01a\x074V[`\xE0\x88\x01a&\xF5V[\x01a\x06\xE8V[a\x01\0\x84\x01a&\xD9V[V[a'\xFA\x90a'\x11V[\x90V[a(\x07\x90Qa\x04\xF2V[\x90V[a(\x1Ea(\x19a(#\x92a\x16)V[a\x05\xDEV[a\x04\xF2V[\x90V[a(0\x90Qa\x07\xC8V[\x90V[a(=\x90Qa\x07\xECV[\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[a(ca(i\x91\x93\x92\x93a\x07\xECV[\x92a\x07\xECV[\x82\x03\x91\x82\x11a(tWV[a(@V[a(\x88a(\x8E\x91\x93\x92\x93a\x07\xECV[\x92a\x07\xECV[\x91a(\x9A\x83\x82\x02a\x07\xECV[\x92\x81\x84\x04\x14\x90\x15\x17\x15a(\xA9WV[a(@V[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[a(\xCEa(\xD4\x91a\x07\xECV[\x91a\x07\xECV[\x90\x81\x15a(\xDFW\x04\x90V[a(\xAEV[\x92\x91\x90\x92a)\ra)\x08a(\xF6a \xB1V[\x95a)\x03`U\x85\x90a\x06\x15V[a\x06GV[a'\xF1V[\x91a)\x19_\x84\x01a'\xFDV[a)+a)%_a(\nV[\x91a\x04\xF2V[\x14a)\xECW\x90a)H\x91\x90a)B``\x85\x01a(&V[\x91a<\xD6V[\x90\x81a)\\a)V_a \xEDV[\x91a\x07\xECV[\x14a)\xDCWa)m`\xC0\x82\x01a(3V[a)\x8Aa)\x84a)\x7F`\xE0\x85\x01a(3V[a\x07\xECV[\x91a\x07\xECV[\x11a)\x94W[PPV[a)\xD4\x92\x93P\x90a)\xC0\x82a)\xBA`\xE0a)\xB3`\xC0a)\xC6\x97\x01a(3V[\x92\x01a(3V[\x90a(TV[\x90a(yV[a)\xCEa\x18\xACV[\x90a(\xC2V[\x90_\x80a)\x90V[PP\x90Pa)\xE9_a \xEDV[\x90V[PPP\x90Pa)\xFA_a \xEDV[\x90V[_\x90V[_\x90V[_\x90V[_\x90V[a*\x15a'\x03V[\x90` \x80\x80\x80\x80\x80\x80\x80\x80\x8Aa*)a)\xFDV[\x81R\x01a*4a)\xFDV[\x81R\x01a*?a)\xFDV[\x81R\x01a*Ja*\x01V[\x81R\x01a*Ua*\x05V[\x81R\x01a*`a*\tV[\x81R\x01a*ka*\tV[\x81R\x01a*va*\tV[\x81R\x01a*\x81a*\x01V[\x81RPPV[a*\x8Fa*\rV[\x90V[a*\xB7\x91a*\xADa*\xB2\x92a*\xA5a*\x87V[P`Ua\x06\x15V[a\x06GV[a'\xF1V[\x90V[a*\xC4`@a\x0E\xABV[\x90V[a*\xCFa*\xBAV[\x90` \x80\x83a*\xDCa*\tV[\x81R\x01a*\xE7a*\tV[\x81RPPV[a*\xF5a*\xC7V[\x90V[\x90a+\x02\x90a\x06+V[_R` R`@_ \x90V[\x90a+\x18\x90a\x06\tV[_R` R`@_ \x90V[\x90a+[a+R`\x01a+5a*\xBAV[\x94a+La+D_\x83\x01a\x074V[_\x88\x01a&\xF5V[\x01a\x074V[` \x84\x01a&\xF5V[V[a+f\x90a+$V[\x90V[a+\x8E\x91a+\x84a+\x89\x92a+|a*\xEDV[P`\x10a*\xF8V[a+\x0EV[a+]V[\x90V[a+\xB6\x91a+\xACa+\xB1\x92a+\xA4a%\x9FV[P`Xa\r\xDFV[a\r\xF5V[a\x06vV[\x90V[a+\xC5a+\xCA\x91a\x06\x83V[a\x12 V[\x90V[a+\xD7\x90Ta+\xB9V[\x90V[a+\xEEa+\xE9a+\xF3\x92a\x1AsV[a\x05\xDEV[a\x04\xF2V[\x90V[a+\xFF\x90a\x05\xFDV[\x90V[\x90a,\x13`\x01\x80`@\x1B\x03\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x90a,5a,0a,<\x92a\x06+V[a,\x1DV[\x82Ta,\x02V[\x90UV[`@\x1B\x90V[\x90a,U`\xFF`@\x1B\x91a,@V[\x91\x81\x19\x16\x91\x16\x17\x90V[a,h\x90a\x04CV[\x90V[\x90V[\x90a,\x83a,~a,\x8A\x92a,_V[a,kV[\x82Ta,FV[\x90UV[a,\x97\x90a+\xDAV[\x90RV[\x91\x90a,\xAE\x90_` \x85\x01\x94\x01\x90a,\x8EV[V[\x90\x91\x92a,\xBBa=\xC5V[\x93a,\xD0a,\xCA_\x87\x01a+\xCDV[\x15a\x04CV[\x93a,\xDC_\x87\x01a\x06vV[\x80a,\xEFa,\xE9_a(\nV[\x91a\x04\xF2V[\x14\x80a.\tW[\x90a-\na-\x04`\x01a+\xDAV[\x91a\x04\xF2V[\x14\x80a-\xE1W[a-\x1C\x90\x91\x15a\x04CV[\x90\x81a-\xD0W[Pa-\xB4Wa-L\x93a-Aa-9`\x01a+\xDAV[_\x89\x01a, V[\x85a-\xA2W[a1\xC1V[a-TW[PV[a-a\x90_\x80\x91\x01a,nV[`\x01a-\x99\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a-\x90a\x03\xE4V[\x91\x82\x91\x82a,\x9BV[\x03\x90\xA1_a-QV[a-\xAF`\x01_\x89\x01a,nV[a-GV[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a-\xCC`\x04\x82\x01a\nlV[\x03\x90\xFD[a-\xDB\x91P\x15a\x04CV[_a-#V[Pa-\x1Ca-\xEE0a+\xF6V[;a.\x01a-\xFB_a \xEDV[\x91a\x07\xECV[\x14\x90Pa-\x11V[P\x85a,\xF6V[a.$a.\x1Fa.)\x92a\x16)V[a\x05\xDEV[a\x05TV[\x90V[a.5\x90a.\x10V[\x90V[a.B`@a\x0E\xABV[\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x02\x11\x15a.cWV[a.EV[\x90a.r\x82a.YV[V[\x90a.~\x90a.hV[\x90RV[\x90a.\x8C\x90a\x05_V[\x90RV[a.\xA4a.\x9Fa.\xA9\x92a\x07\xECV[a\x05\xDEV[a\x07\xD8V[\x90V[a.\xB6`\xC0a\x0E\xABV[\x90V[\x90a.\xC3\x90a\x04CV[\x90RV[\x90a.\xD1\x90a \xCBV[_R` R`@_ \x90V[a.\xE7\x90Qa\x04CV[\x90V[\x90a.\xF6`\xFF\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a/\x15a/\x10a/\x1C\x92a,_V[a,kV[\x82Ta.\xEAV[\x90UV[\x90a/,_\x19\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[a/Ja/Ea/O\x92a\x07\xECV[a\x05\xDEV[a\x07\xECV[\x90V[\x90V[\x90a/ja/ea/q\x92a/6V[a/RV[\x82Ta/ V[\x90UV[a/\x7F\x90Qa\x07\xD8V[\x90V[\x90a/\x8Fa\xFF\xFF\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[a/\xADa/\xA8a/\xB2\x92a\x07\xD8V[a\x05\xDEV[a\x07\xD8V[\x90V[\x90V[\x90a/\xCDa/\xC8a/\xD4\x92a/\x99V[a/\xB5V[\x82Ta/\x82V[\x90UV[\x90a0g`\xA0`\x05a0m\x94a/\xFB_\x82\x01a/\xF5_\x88\x01a.\xDDV[\x90a/\0V[a0\x14`\x01\x82\x01a0\x0E` \x88\x01a(3V[\x90a/UV[a0-`\x02\x82\x01a0'`@\x88\x01a(3V[\x90a/UV[a0F`\x03\x82\x01a0@``\x88\x01a(3V[\x90a/UV[a0_`\x04\x82\x01a0Y`\x80\x88\x01a(3V[\x90a/UV[\x01\x92\x01a/uV[\x90a/\xB8V[V[\x90a0y\x91a/\xD8V[V[`\x80\x1B\x90V[\x90a0\x91a\xFF\xFF`\x80\x1B\x91a0{V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a0\xB0a0\xABa0\xB7\x92a/\x99V[a/\xB5V[\x82Ta0\x81V[\x90UV[\x90V[a0\xD2a0\xCDa0\xD7\x92a0\xBBV[a\x05\xDEV[a\x04\xF2V[\x90V[a0\xE5aT`a0\xBEV[\x90V[\x90a0\xFD`\x01`@\x1B`\x01`\x80\x1B\x03\x91a,@V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a1\x1Ca1\x17a1#\x92a\x06+V[a,\x1DV[\x82Ta0\xE8V[\x90UV[\x90V[a1>a19a1C\x92a1'V[a\x05\xDEV[a\x04\xF2V[\x90V[a1P`\x1Ca1*V[\x90V[`\xC0\x1B\x90V[\x90a1k`\x01\x80`\xC0\x1B\x03\x19\x91a1SV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a1\x8Aa1\x85a1\x91\x92a\x06+V[a,\x1DV[\x82Ta1YV[\x90UV[\x90V[a1\xACa1\xA7a1\xB1\x92a1\x95V[a\x05\xDEV[a\x04\xF2V[\x90V[a1\xBE`8a1\x98V[\x90V[\x91\x90\x91a1\xCCa=\xF3V[a1\xD4a>\x07V[a1\xDCa>-V[a1\xE4a>SV[a1\xECa\x16MV[\x81a1\xF6\x91a7yV[Pa1\xFFa\x11\xBCV[\x81a2\t\x91a7yV[Pa2\x12a\x17\xBCV[\x81a2\x1C\x91a7yV[Pa2%a\x1F\xC5V[\x90a2/\x91a7yV[P_\x80a2;\x90a.,V[a2Ca.8V[\x91_\x83\x01\x90a2Q\x91a.tV[` \x82\x01\x90a2_\x91a.\x82V[a2h\x90a>\xBDV[\x90`\x01\x92\x90_\x80\x91a2xa\x1E\xD5V[a2\x81\x90a.\x90V[\x93a2\x8Aa.\xACV[\x96_\x88\x01\x90a2\x98\x91a.\xB9V[` \x87\x01\x90a2\xA6\x91a&\xF5V[`@\x86\x01\x90a2\xB4\x91a&\xF5V[a2\xBD\x90a \xEDV[``\x85\x01\x90a2\xCB\x91a&\xF5V[a2\xD4\x90a \xEDV[`\x80\x84\x01\x90a2\xE2\x91a&\xF5V[`\xA0\x83\x01\x90a2\xF0\x91a&\xE7V[`\x02\x90a2\xFC\x91a.\xC7V[\x90a3\x06\x91a0oV[`\x01a3\x13\x90`\x05a/\0V[a3\x1E\x90`\x01a0\x9BV[`\x01a3)\x90a+\xDAV[a33\x90_a, V[a3;a0\xDAV[a3E\x90_a1\x07V[a3Ma1FV[a3W\x90_a1uV[a3_a1FV[a3j\x90`\x01a, V[a3ra1\xB4V[a3}\x90`\x01a1\x07V[V[\x90a3\x8B\x93\x92\x91a,\xB0V[V[\x90a3\xA8\x91a3\xA3a3\x9E\x82a\"\x12V[a7eV[a3\xAAV[V[\x90a3\xB4\x91a8=V[PV[\x90a3\xC1\x91a3\x8DV[V[`\x01a3\xCF\x91\x01a\x07\xECV[\x90V[P\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x91\x90\x81\x10\x15a3\xFAW` \x02\x01\x90V[a3\xD6V[5a4\t\x81a\x04\x02V[\x90V[a4\x15\x90a\x03\xF6V[\x90V[\x91\x90\x91a4#a5\x92V[a4,_a \xEDV[[\x80a4Ja4Da4?\x85\x88\x90a3\xD2V[a\x07\xECV[\x91a\x07\xECV[\x10\x15a4\xCEWa4\xC9\x90a4pa4ka4f\x85\x88\x85\x91a3\xEAV[a3\xFFV[a?\x84V[a4\x84a4\x7F\x84\x87\x84\x91a3\xEAV[a3\xFFV[a4\xAE\x7F\xBE\xB2w\x01\x82\x8FQ[\x03\x06\x9DD\xDAe\x19\xB6\xC4\x91\xDA\x13\xEF\x1C\xA7\x08.a\x99Y\xD1\xF4\x8D\xDB\x91a4\x0CV[\x90a4\xB7a\x03\xE4V[\x80a4\xC1\x81a\nlV[\x03\x90\xA2a3\xC3V[a4-V[PP\x90PV[\x90a4\xEE\x91a4\xE9a4\xE4a\x11\xBCV[a7eV[a4\xF0V[V[a5\x05\x82a5\0`#\x84\x90a\r\xF5V[a, V[a5Da52\x7F\x90\xB3~Y\xA9B\xC5A<\xE0\n:\x84JG\xC2\0\x94\x97\x98\x97\xCCe6\x06\xD9%\xE9\t\x88_5\x92a\x06\tV[\x92a5;a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xA2V[\x90a5S\x91a4\xD4V[V[a?\x9AV[a5ba mV[Pa5|a5vc\x01\xFF\xC9\xA7`\xE0\x1Ba\x03\xF6V[\x91a\x03\xF6V[\x14\x90V[a5\x90a5\x8Ba\x11\xBCV[a7eV[V[a5\x9Aa5\x80V[V[Q\x90V[\x90a5\xAA\x82a5\x9CV[\x81\x10\x15a5\xBBW` \x80\x91\x02\x01\x01\x90V[a3\xD6V[a5\xCA\x90Qa\x03\xF6V[\x90V[\x91\x90\x82a5\xEAa5\xE4a5\xDF_a.,V[a\x05_V[\x91a\x05_V[\x14a7F\xDD`\xE1\x1B\x81R\x80a9W`\x04\x82\x01a\nlV[\x03\x90\xFD[Pa9daA\x15V[a9\x96a9\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05_V[\x91a\x05_V[\x14\x15a99V[Pa9\xAEa9\xA9a\x1F\xC5V[a7eV[V[a9\xB9\x90a9\x9DV[V[a9\xC4\x90a\x05\xE1V[\x90V[a9\xD0\x90a9\xBBV[\x90V[a9\xDC\x90a\x05\xFDV[\x90V[\x90PQ\x90a9\xEC\x82a\x08\xC2V[V[\x90` \x82\x82\x03\x12a:\x07Wa:\x04\x91_\x01a9\xDFV[\x90V[a\x03\xEEV[\x91\x90a::` a:$a:\x1F\x86a9\xC7V[a9\xD3V[cR\xD1\x90-\x90a:2a\x03\xE4V[\x93\x84\x92a\"\xDEV[\x82R\x81\x80a:J`\x04\x82\x01a\nlV[\x03\x91Z\xFA\x80\x91_\x92a:\xDAW[P\x15_\x14a:\x8BWPP\x90`\x01a:lWP[V[a:\x87\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[\x92\x83a:\xA6a:\xA0a:\x9Ba%\x15V[a\x07\xC8V[\x91a\x07\xC8V[\x03a:\xBBWa:\xB6\x92\x93PaA;V[a:jV[a:\xD6\x84_\x91\x82\x91c*\x87Ri`\xE2\x1B\x83R`\x04\x83\x01a\n\xC3V[\x03\x90\xFD[a:\xFC\x91\x92P` =\x81\x11a;\x03W[a:\xF4\x81\x83a\x0E\x84V[\x81\x01\x90a9\xEEV[\x90_a:WV[P=a:\xEAV[a;\x130a8\xEAV[a;Ea;?\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05_V[\x91a\x05_V[\x03a;LWV[_cp>F\xDD`\xE1\x1B\x81R\x80a;d`\x04\x82\x01a\nlV[\x03\x90\xFD[\x7F\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x90V[\x90a;\x96\x90a4\x0CV[_R` R`@_ \x90V[a;\xB9a;\xBE\x91a;\xB1a%\xEAV[P`!a;\x8CV[a&#V[\x90V[\x90a;\xCB\x90a\x06\tV[_R` R`@_ \x90V[\x90V[T\x90V[_R` _ \x90V[a;\xF0\x81a;\xDAV[\x82\x10\x15a<\nWa<\x02`\x04\x91a;\xDEV[\x91\x02\x01\x90_\x90V[a3\xD6V[\x90V[`\xFF\x16\x90V[a<$a<)\x91a\x06]V[a<\x12V[\x90V[a<6\x90Ta<\x18V[\x90V[`\x08\x1C\x90V[a\xBDV[a=\xB6a=\xB0\x86a\x07\xC8V[\x91a\x07\xC8V[\x14a=ZV[P\x93PP\x92PPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V[a=\xF1aA\xC4V[V[a=\xFBa=\xE9V[V[a>\x05aA\xC4V[V[a>\x0Fa=\xFDV[V[a>\x19aA\xC4V[a>!a>#V[V[a>+aB\x1FV[V[a>5a>\x11V[V[a>?aA\xC4V[a>Ga>IV[V[a>QaBeV[V[a>[a>7V[V[a>g\x90Qa.hV[\x90V[a>t\x90Qa\x05_V[\x90V[a>\x80\x90a.hV[\x90V[a>\x8C\x90a>wV[\x90RV[\x91` a>\xB1\x92\x94\x93a>\xAA`@\x82\x01\x96_\x83\x01\x90a>\x83V[\x01\x90a\x13\xAFV[V[` \x01\x90V[Q\x90V[a>\xC5a!\xF8V[Pa?\x07a>\xE0` a>\xD9_\x85\x01a>]V[\x93\x01a>jV[\x91a>\xF8a>\xECa\x03\xE4V[\x93\x84\x92` \x84\x01a>\x90V[` \x82\x01\x81\x03\x82R\x03\x82a\x0E\x84V[a?\x19a?\x13\x82a>\xB9V[\x91a>\xB3V[ \x90V[\x1B\x90V[\x91\x90`\x08a?A\x91\x02\x91a?;`\x01\x80`\xA0\x1B\x03\x84a?\x1DV[\x92a?\x1DV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x91\x90a?da?_a?l\x93a\x06\tV[a?KV[\x90\x83Ta?!V[\x90UV[a?\x82\x91a?|a%\xEAV[\x91a?NV[V[_a?\x93a?\x98\x92`!a;\x8CV[a?pV[V[a?\xADc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16a;\xA2V[\x80a?\xC8a?\xC2a?\xBD_a.,V[a\x05_V[\x91a\x05_V[\x03aB\xA3Wc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16aB\x84V[_c\xD9.#=`\xE0\x1B\x81R\x80a?\xF5`\x04\x82\x01a\nlV[\x03\x90\xFD[a@\x14\x90_\x91\x82\x91c\"\xA2\xD0{`\xE2\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[a@!\x90a\x03\xF6V[\x90RV[\x91` a@F\x92\x94\x93a@?`@\x82\x01\x96_\x83\x01\x90a@\x18V[\x01\x90a\x13\xAFV[V[a@b_\x92\x83\x92c\x10\xAE\x11\xA9`\xE3\x1B\x84R`\x04\x84\x01a@%V[\x03\x90\xFD[\x90a@w`\x01\x80`\xA0\x1B\x03\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a@\x96a@\x91a@\x9D\x92a\x06\tV[a?KV[\x82Ta@fV[\x90UV[a@\xB0a@\xB5\x92\x91`!a;\x8CV[a@\x81V[V[\x91` a@\xD8\x92\x94\x93a@\xD1`@\x82\x01\x96_\x83\x01\x90a\x13\xAFV[\x01\x90a\x07\xCBV[V[\x90a@\xEFa@\xE9\x83\x83\x90a&zV[\x15a\x04CV[a@\xF7WPPV[aA\x11_\x92\x83\x92c\xE2Q}?`\xE0\x1B\x84R`\x04\x84\x01a@\xB7V[\x03\x90\xFD[aA\x1Da%\xEAV[PaA8_aA2aA-a%\x15V[aB\xC1V[\x01a&#V[\x90V[\x90aAE\x82aB\xC4V[\x81aAp\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x91a\x06\tV[\x90aAya\x03\xE4V[\x80aA\x83\x81a\nlV[\x03\x90\xA2aA\x8F\x81a>\xB9V[aA\xA1aA\x9B_a \xEDV[\x91a\x07\xECV[\x11_\x14aA\xB5WaA\xB1\x91aC\x94V[P[V[PPaA\xBFaC\x19V[aA\xB3V[aA\xD5aA\xCFaC\xC3V[\x15a\x04CV[aA\xDBWV[_c\x1A\xFC\xD7\x9F`\xE3\x1B\x81R\x80aA\xF3`\x04\x82\x01a\nlV[\x03\x90\xFD[aA\xFFaA\xC4V[aB\x07aB\tV[V[aB\x1DaB\x14a;hV[_\x80\x91\x01a/\0V[V[aB'aA\xF7V[V[aB1aA\xC4V[aB9aBHV[V[aBE`\x01a\x1AvV[\x90V[aBcaBSaC\xE1V[_aB\\aB;V[\x91\x01a/UV[V[aBmaB)V[V[\x91\x90aB\x82\x90_` \x85\x01\x94\x01\x90a@\x18V[V[aB\x9F\x90_\x91\x82\x91c\xC2\xA8%\xF5`\xE0\x1B\x83R`\x04\x83\x01aBoV[\x03\x90\xFD[_\x80\x916\x82\x807\x816\x91Z\xF4=_\x80>_\x14aB\xBDW=_\xF3[=_\xFD[\x90V[\x80;aB\xD8aB\xD2_a \xEDV[\x91a\x07\xECV[\x14aB\xFAWaB\xF8\x90_aB\xF2aB\xEDa%\x15V[aB\xC1V[\x01a@\x81V[V[aC\x15\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[4aC,aC&_a \xEDV[\x91a\x07\xECV[\x11aC3WV[_c\xB3\x98\x97\x9F`\xE0\x1B\x81R\x80aCK`\x04\x82\x01a\nlV[\x03\x90\xFD[``\x90V[\x90aCfaCa\x83a\x0E\xC0V[a\x0E\xABV[\x91\x82RV[=_\x14aC\x86WaC{=aCTV[\x90=_` \x84\x01>[V[aC\x8EaCOV[\x90aC\x84V[_\x80aC\xC0\x93aC\xA2aCOV[P\x83\x90` \x81\x01\x90Q\x91Z\xF4\x90aC\xB7aCkV[\x90\x91\x90\x91aD\x05V[\x90V[aC\xCBa mV[PaC\xDE_aC\xD8a=\xC5V[\x01a+\xCDV[\x90V[\x7F\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\x90V[\x90aD\x19\x90aD\x12aCOV[P\x15a\x04CV[_\x14aD%WPaD\x89V[aD.\x82a>\xB9V[aD@aD:_a \xEDV[\x91a\x07\xECV[\x14\x80aDnW[aDOWP\x90V[aDj\x90_\x91\x82\x91c\x99\x96\xB3\x15`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[P\x80;aD\x83aD}_a \xEDV[\x91a\x07\xECV[\x14aDGV[aD\x92\x81a>\xB9V[aD\xA4aD\x9E_a \xEDV[\x91a\x07\xECV[\x11_\x14aD\xB3W\x80Q\x90` \x01\xFD[_c\xD6\xBD\xA2u`\xE0\x1B\x81R\x80aD\xCB`\x04\x82\x01a\nlV[\x03\x90\xFD\xFE\xA1dsolcC\0\x08\x1A\0\n", ); /// The runtime bytecode of the contract, as deployed on the network. /// /// ```text - ///0x60806040526004361015610015575b366134ce57005b61001f5f356103ce565b806301ffc9a7146103c957806305d64e38146103c45780630aa8b110146103bf57806312d91c88146103ba57806318056dc2146103b557806319e82e61146103b0578063248a9ca3146103ab5780632f2ff15d146103a657806332273f61146103a157806336568abe1461039c578063453eccea1461039757806346d163aa14610392578063491474111461038d5780634962f88f146103885780634de8addc146103835780634e9c929a1461037e5780634f1ef286146103795780635095af641461037457806352d1902d1461036f57806354de23201461036a5780635c975abb14610365578063602356e31461036057806366c368751461035b57806372b5032d1461035657806375b238fc1461035157806377ab2cf31461034c5780637df92ada1461034757806388c47f68146103425780638a19c8bc1461033d5780638a7fe60f1461033857806390837ff41461033357806391d148541461032e5780639480e4dd146103295780639494f42614610324578063960856731461031f5780639722f4b91461031a5780639e87058514610315578063a217fddf14610310578063a457af3d1461030b578063a4b32de814610306578063a7fa6f9814610301578063aaf5eb68146102fc578063ad3cb1cc146102f7578063b54b2b9e146102f2578063b6608409146102ed578063ba05bbf5146102e8578063c07449e2146102e3578063c550d938146102de578063cbb6d6bd146102d9578063d27a6f06146102d4578063d45ff582146102cf578063d547741f146102ca578063db8a173a146102c5578063dd764abf146102c0578063e07dec29146102bb578063e1a45218146102b6578063e27e05c1146102b1578063f3c9b311146102ac5763f7cb789a0361000e57611fc4565b611f80565b611f13565b611ede565b611e75565b611e0c565b611d9a565b611d57565b611d22565b611cb4565b611c44565b611b82565b611b4c565b611ade565b611a9a565b611a2e565b6119ea565b6118bb565b611848565b6117db565b611776565b611654565b6115e4565b611575565b61151f565b6114d0565b611461565b61142b565b6113f6565b6113c1565b61136a565b611328565b6112b9565b61124b565b6111db565b611176565b611141565b61110c565b6110a8565b611073565b611006565b610fd1565b610f78565b610e1c565b610d6d565b610d28565b610cbb565b610c88565b610c35565b610bc9565b610b94565b610b2a565b610ac8565b610a61565b61099a565b610917565b610872565b61050f565b61045a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b6103fb816103e6565b0361040257565b5f80fd5b90503590610413826103f2565b565b9060208282031261042e5761042b915f01610406565b90565b6103de565b151590565b61044190610433565b9052565b9190610458905f60208501940190610438565b565b3461048a57610486610475610470366004610415565b611ffd565b61047d6103d4565b91829182610445565b0390f35b6103da565b5f91031261049957565b6103de565b1c90565b60018060401b031690565b6104bd9060086104c2930261049e565b6104a2565b90565b906104d091546104ad565b90565b6104df5f6010906104c5565b90565b60018060401b031690565b6104f6906104e2565b9052565b919061050d905f602085019401906104ed565b565b3461053f5761051f36600461048f565b61053b61052a6104d3565b6105326103d4565b918291826104fa565b0390f35b6103da565b60018060a01b031690565b61055890610544565b90565b6105648161054f565b0361056b57565b5f80fd5b9050359061057c8261055b565b565b610587816104e2565b0361058e57565b5f80fd5b9050359061059f8261057e565b565b91906040838203126105c957806105bd6105c6925f860161056f565b93602001610592565b90565b6103de565b90565b6105e56105e06105ea92610544565b6105ce565b610544565b90565b6105f6906105d1565b90565b610602906105ed565b90565b9061060f906105f9565b5f5260205260405f2090565b61062f61062a610634926104e2565b6105ce565b6104e2565b90565b906106419061061b565b5f5260205260405f2090565b5f1c90565b61065e6106639161064d565b6104a2565b90565b6106709054610652565b90565b60401c90565b61068561068a91610673565b6104a2565b90565b6106979054610679565b90565b60801c90565b6106ac6106b19161069a565b6104a2565b90565b6106be90546106a0565b90565b90565b6106d06106d59161064d565b6106c1565b90565b6106e290546106c4565b90565b61ffff1690565b6106f86106fd9161064d565b6106e5565b90565b61070a90546106ec565b90565b90565b61071c6107219161064d565b61070d565b90565b61072e9054610710565b90565b90610740610745926055610605565b610637565b6107505f8201610666565b9161075c5f830161068d565b916107685f82016106b4565b91610775600183016106d8565b9161078260028201610700565b9161078f60038301610724565b9161079c60048201610724565b916107b560066107ae60058501610724565b93016106d8565b90565b90565b6107c4906107b8565b9052565b61ffff1690565b6107d8906107c8565b9052565b90565b6107e8906107dc565b9052565b9694929099989795939161012088019a5f8901610808916104ed565b60208801610815916104ed565b60408701610822916104ed565b6060860161082f916107bb565b6080850161083c916107cf565b60a08401610849916107df565b60c08301610856916107df565b60e08201610863916107df565b61010001610870916107bb565b565b346108ad576108a961088e6108883660046105a1565b90610731565b956108a09997999591959492946103d4565b998a998a6107ec565b0390f35b6103da565b6108bb816107b8565b036108c257565b5f80fd5b905035906108d3826108b2565b565b91906040838203126108fd57806108f16108fa925f860161056f565b936020016108c6565b90565b6103de565b9190610915905f602085019401906107df565b565b346109485761094461093361092d3660046108d5565b90612095565b61093b6103d4565b91829182610902565b0390f35b6103da565b90565b61096461095f6109699261094d565b6105ce565b6107c8565b90565b610977612af8610950565b90565b61098261096c565b90565b9190610998905f602085019401906107cf565b565b346109ca576109aa36600461048f565b6109c66109b561097a565b6109bd6103d4565b91829182610985565b0390f35b6103da565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a135781359160018060401b038311610a0e576020019260208302840111610a0957565b6109d7565b6109d3565b6109cf565b919091604081840312610a5757610a31835f830161056f565b92602082013560018060401b038111610a5257610a4e92016109db565b9091565b6103e2565b6103de565b5f0190565b34610a9057610a7a610a74366004610a18565b91612166565b610a826103d4565b80610a8c81610a5c565b0390f35b6103da565b90602082820312610aae57610aab915f016108c6565b90565b6103de565b9190610ac6905f602085019401906107bb565b565b34610af857610af4610ae3610ade366004610a95565b61219e565b610aeb6103d4565b91829182610ab3565b0390f35b6103da565b9190604083820312610b255780610b19610b22925f86016108c6565b9360200161056f565b90565b6103de565b34610b5957610b43610b3d366004610afd565b906121f2565b610b4b6103d4565b80610b5581610a5c565b0390f35b6103da565b610b6e906008610b73930261049e565b6106e5565b90565b90610b819154610b5e565b90565b610b916001601090610b76565b90565b34610bc457610ba436600461048f565b610bc0610baf610b84565b610bb76103d4565b91829182610985565b0390f35b6103da565b34610bf857610be2610bdc366004610afd565b906121fe565b610bea6103d4565b80610bf481610a5c565b0390f35b6103da565b90565b610c14610c0f610c1992610bfd565b6105ce565b6107c8565b90565b610c27613e80610c00565b90565b610c32610c1c565b90565b34610c6557610c4536600461048f565b610c61610c50610c2a565b610c586103d4565b91829182610985565b0390f35b6103da565b90602082820312610c8357610c80915f0161056f565b90565b6103de565b34610cb657610ca0610c9b366004610c6a565b61233c565b610ca86103d4565b80610cb281610a5c565b0390f35b6103da565b34610ceb57610ce7610cd6610cd1366004610c6a565b61241a565b610cde6103d4565b91829182610902565b0390f35b6103da565b90565b610d07610d02610d0c92610cf0565b6105ce565b6107c8565b90565b610d1a612710610cf3565b90565b610d25610d0f565b90565b34610d5857610d3836600461048f565b610d54610d43610d1d565b610d4b6103d4565b91829182610985565b0390f35b6103da565b610d6a60016008906104c5565b90565b34610d9d57610d7d36600461048f565b610d99610d88610d5d565b610d906103d4565b918291826104fa565b0390f35b6103da565b9190604083820312610dca5780610dbe610dc7925f8601610592565b9360200161056f565b90565b6103de565b90610dd99061061b565b5f5260205260405f2090565b90610def906105f9565b5f5260205260405f2090565b610e14610e1992610e0f6058935f94610dcf565b610de5565b6104c5565b90565b34610e4d57610e49610e38610e32366004610da2565b90610dfb565b610e406103d4565b918291826104fa565b0390f35b6103da565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e7e90610e56565b810190811060018060401b03821117610e9657604052565b610e60565b90610eae610ea76103d4565b9283610e74565b565b60018060401b038111610ecc57610ec8602091610e56565b0190565b610e60565b90825f939282370152565b90929192610ef1610eec82610eb0565b610e9b565b93818552602085019082840111610f0d57610f0b92610ed1565b565b610e52565b9080601f83011215610f3057816020610f2d93359101610edc565b90565b6109cf565b919091604081840312610f7357610f4e835f830161056f565b92602082013560018060401b038111610f6e57610f6b9201610f12565b90565b6103e2565b6103de565b610f8c610f86366004610f35565b90612462565b610f946103d4565b80610f9e81610a5c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fce610fa2565b90565b3461100157610fe136600461048f565b610ffd610fec610fc6565b610ff46103d4565b91829182610ab3565b0390f35b6103da565b346110365761101636600461048f565b6110326110216124d9565b6110296103d4565b91829182610ab3565b0390f35b6103da565b90565b61105261104d6110579261103b565b6105ce565b6107c8565b90565b611065612ee061103e565b90565b61107061105a565b90565b346110a35761108336600461048f565b61109f61108e611068565b6110966103d4565b91829182610985565b0390f35b6103da565b346110d8576110b836600461048f565b6110d46110c361250d565b6110cb6103d4565b91829182610445565b0390f35b6103da565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111096110dd565b90565b3461113c5761111c36600461048f565b611138611127611101565b61112f6103d4565b91829182610ab3565b0390f35b6103da565b346111715761116d61115c611157366004610c6a565b61252f565b6111646103d4565b918291826104fa565b0390f35b6103da565b346111a7576111a361119261118c366004610da2565b9061254e565b61119a6103d4565b918291826104fa565b0390f35b6103da565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111d86111ac565b90565b3461120b576111eb36600461048f565b6112076111f66111d0565b6111fe6103d4565b91829182610ab3565b0390f35b6103da565b60ff1690565b61122690600861122b930261049e565b611210565b90565b906112399154611216565b90565b61124860055f9061122e565b90565b3461127b5761125b36600461048f565b61127761126661123c565b61126e6103d4565b91829182610445565b0390f35b6103da565b90565b61129761129261129c92611280565b6105ce565b6104e2565b90565b6112ab624f1a00611283565b90565b6112b661129f565b90565b346112e9576112c936600461048f565b6112e56112d46112ae565b6112dc6103d4565b918291826104fa565b0390f35b6103da565b90565b61130561130061130a926112ee565b6105ce565b6107dc565b90565b61131a6305f5e1006112f1565b90565b61132561130d565b90565b346113585761133836600461048f565b61135461134361131d565b61134b6103d4565b91829182610902565b0390f35b6103da565b6113675f806104c5565b90565b3461139a5761137a36600461048f565b61139661138561135d565b61138d6103d4565b918291826104fa565b0390f35b6103da565b6113a89061054f565b9052565b91906113bf905f6020850194019061139f565b565b346113f1576113ed6113dc6113d7366004610c6a565b6125bc565b6113e46103d4565b918291826113ac565b0390f35b6103da565b346114265761142261141161140c366004610415565b6125db565b6114196103d4565b918291826113ac565b0390f35b6103da565b3461145c57611458611447611441366004610afd565b90612606565b61144f6103d4565b91829182610445565b0390f35b6103da565b346114915761148d61147c611477366004610c6a565b612638565b6114846103d4565b918291826104fa565b0390f35b6103da565b90916060828403126114cb576114c86114b1845f850161056f565b936114bf8160208601610592565b9360400161056f565b90565b6103de565b34611501576114fd6114ec6114e6366004611496565b91612870565b6114f46103d4565b91829182610902565b0390f35b6103da565b61151c906115176056915f92610de5565b6104c5565b90565b3461154f5761154b61153a611535366004610c6a565b611506565b6115426103d4565b918291826104fa565b0390f35b6103da565b61156d611572926115686057935f94610dcf565b610de5565b6104c5565b90565b346115a6576115a261159161158b366004610da2565b90611554565b6115996103d4565b918291826104fa565b0390f35b6103da565b90565b6115c26115bd6115c7926115ab565b6105ce565b6104e2565b90565b6115d662278d006115ae565b90565b6115e16115ca565b90565b34611614576115f436600461048f565b6116106115ff6115d9565b6116076103d4565b918291826104fa565b0390f35b6103da565b90565b5f1b90565b61163561163061163a92611619565b61161c565b6107b8565b90565b6116465f611621565b90565b61165161163d565b90565b346116845761166436600461048f565b61168061166f611649565b6116776103d4565b91829182610ab3565b0390f35b6103da565b611692906104e2565b9052565b61169f906107b8565b9052565b6116ac906107c8565b9052565b6116b9906107dc565b9052565b906101008061175e936116d65f8201515f860190611689565b6116e860208201516020860190611689565b6116fa60408201516040860190611689565b61170c60608201516060860190611696565b61171e608082015160808601906116a3565b61173060a082015160a08601906116b0565b61174260c082015160c08601906116b0565b61175460e082015160e08601906116b0565b0151910190611696565b565b9190611774905f61012085019401906116bd565b565b346117a7576117a361179261178c3660046105a1565b90612a1e565b61179a6103d4565b91829182611760565b0390f35b6103da565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117d86117ac565b90565b3461180b576117eb36600461048f565b6118076117f66117d0565b6117fe6103d4565b91829182610ab3565b0390f35b6103da565b90565b61182761182261182c92611810565b6105ce565b6107c8565b90565b61183a6132c8611813565b90565b61184561182f565b90565b346118785761185836600461048f565b61187461186361183d565b61186b6103d4565b91829182610985565b0390f35b6103da565b90565b61189461188f6118999261187d565b6105ce565b6107dc565b90565b6118ad670de0b6b3a7640000611880565b90565b6118b861189c565b90565b346118eb576118cb36600461048f565b6118e76118d66118b0565b6118de6103d4565b91829182610902565b0390f35b6103da565b60018060401b03811161190c57611908602091610e56565b0190565b610e60565b9061192361191e836118f0565b610e9b565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119596005611911565b9061196660208301611928565b565b61197061194f565b90565b61197b611968565b90565b611986611973565b90565b5190565b60209181520190565b90825f9392825e0152565b6119c06119c96020936119ce936119b781611989565b9384809361198d565b95869101611996565b610e56565b0190565b6119e79160208201915f8184039101526119a1565b90565b34611a1a576119fa36600461048f565b611a16611a0561197e565b611a0d6103d4565b918291826119d2565b0390f35b6103da565b611a2b60075f9061122e565b90565b34611a5e57611a3e36600461048f565b611a5a611a49611a1f565b611a516103d4565b91829182610445565b0390f35b6103da565b90565b611a7a611a75611a7f92611a63565b6105ce565b6107dc565b90565b611a8c6001611a66565b90565b611a97611a82565b90565b34611aca57611aaa36600461048f565b611ac6611ab5611a8f565b611abd6103d4565b91829182610902565b0390f35b6103da565b611adb5f6018906104c5565b90565b34611b0e57611aee36600461048f565b611b0a611af9611acf565b611b016103d4565b918291826104fa565b0390f35b6103da565b90602080611b3593611b2b5f8201515f8601906116b0565b01519101906116b0565b565b9190611b4a905f60408501940190611b13565b565b34611b7d57611b79611b68611b62366004610da2565b90612af5565b611b706103d4565b91829182611b37565b0390f35b6103da565b34611bb357611baf611b9e611b98366004610da2565b90612b1d565b611ba66103d4565b918291826104fa565b0390f35b6103da565b611bc1816107dc565b03611bc857565b5f80fd5b90503590611bd982611bb8565b565b611be4816107c8565b03611beb57565b5f80fd5b90503590611bfc82611bdb565b565b608081830312611c3f57611c14825f830161056f565b92611c3c611c258460208501611bcc565b93611c338160408601611bcc565b93606001611bef565b90565b6103de565b34611c7657611c60611c57366004611bfe565b929190916132f8565b611c686103d4565b80611c7281610a5c565b0390f35b6103da565b90565b611c92611c8d611c9792611c7b565b6105ce565b6104e2565b90565b611ca66276a700611c7e565b90565b611cb1611c9a565b90565b34611ce457611cc436600461048f565b611ce0611ccf611ca9565b611cd76103d4565b918291826104fa565b0390f35b6103da565b90565b611d00611cfb611d0592611ce9565b6105ce565b6104e2565b90565b611d1462093a80611cec565b90565b611d1f611d08565b90565b34611d5257611d3236600461048f565b611d4e611d3d611d17565b611d456103d4565b918291826104fa565b0390f35b6103da565b34611d8657611d70611d6a366004610afd565b90613330565b611d786103d4565b80611d8281610a5c565b0390f35b6103da565b611d9760015f906104c5565b90565b34611dca57611daa36600461048f565b611dc6611db5611d8b565b611dbd6103d4565b918291826104fa565b0390f35b6103da565b90565b611de6611de1611deb92611dcf565b6105ce565b6107dc565b90565b611dfe662386f26fc10000611dd2565b90565b611e09611dee565b90565b34611e3c57611e1c36600461048f565b611e38611e27611e01565b611e2f6103d4565b91829182610902565b0390f35b6103da565b90602082820312611e70575f82013560018060401b038111611e6b57611e6792016109db565b9091565b6103e2565b6103de565b34611ea457611e8e611e88366004611e41565b90613391565b611e966103d4565b80611ea081610a5c565b0390f35b6103da565b611ebd611eb8611ec292610cf0565b6105ce565b6107dc565b90565b611ed0612710611ea9565b90565b611edb611ec5565b90565b34611f0e57611eee36600461048f565b611f0a611ef9611ed3565b611f016103d4565b91829182610902565b0390f35b6103da565b34611f4257611f2c611f263660046105a1565b906134c2565b611f346103d4565b80611f3e81610a5c565b0390f35b6103da565b90565b611f5e611f59611f6392611f47565b6105ce565b6104e2565b90565b611f7262ed4e00611f4a565b90565b611f7d611f66565b90565b34611fb057611f9036600461048f565b611fac611f9b611f75565b611fa36103d4565b918291826104fa565b0390f35b6103da565b611fc15f6008906104c5565b90565b34611ff457611fd436600461048f565b611ff0611fdf611fb5565b611fe76103d4565b918291826104fa565b0390f35b6103da565b5f90565b612005611ff9565b508061202061201a637965db0b60e01b6103e6565b916103e6565b1490811561202d575b5090565b61203791506134d3565b5f612029565b5f90565b9061204b906105f9565b5f5260205260405f2090565b612060906107b8565b90565b9061206d90612057565b5f5260205260405f2090565b61208d61208861209292611619565b6105ce565b6107dc565b90565b6120ba916120b06120b5926120a861203d565b506011612041565b612063565b610724565b806120cd6120c75f612079565b916107dc565b145f146120e157506120dd61189c565b5b90565b6120de565b60018060401b0381116120fc5760208091020190565b610e60565b90929192612116612111826120e6565b610e9b565b938185526020808601920283019281841161215357915b83831061213a5750505050565b602080916121488486610406565b81520192019161212d565b6109d7565b612163913691612101565b90565b6121829261217c9161217661350b565b92612158565b90613546565b565b5f90565b9061219290612057565b5f5260205260405f2090565b60016121bf6121c5926121af612184565b505f6121b96136ba565b01612188565b016106d8565b90565b906121e3916121de6121d98261219e565b6136de565b6121e5565b565b906121ef916136f2565b50565b906121fc916121c8565b565b908061221961221361220e6137a9565b61054f565b9161054f565b0361222a57612227916137b6565b50565b5f63334bd91960e11b81528061224260048201610a5c565b0390fd5b61224f906105d1565b90565b61225b90612246565b90565b612267906105ed565b90565b60e01b90565b9050519061227d826103f2565b565b9092919261229461228f826120e6565b610e9b565b93818552602080860192028301928184116122d157915b8383106122b85750505050565b602080916122c68486612270565b8152019201916122ab565b6109d7565b9080601f830112156122f4578160206122f19351910161227f565b90565b6109cf565b90602082820312612327575f82015160018060401b0381116123225761231f92016122d6565b90565b6103e2565b6103de565b6123346103d4565b3d5f823e3d90fd5b61234461350b565b61236f5f61235961235484612252565b61225e565b636e25b978906123676103d4565b93849261226a565b8252818061237f60048201610a5c565b03915afa80156123ff5761239b915f916123dd575b5082613546565b6123c57f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d916105f9565b906123ce6103d4565b806123d881610a5c565b0390a2565b6123f991503d805f833e6123f18183610e74565b8101906122f9565b5f612394565b61232c565b9061240e906105f9565b5f5260205260405f2090565b6124316124369161242961203d565b50601b612404565b610724565b90565b9061244b9161244661386f565b61244d565b565b906124609161245b81613929565b613985565b565b9061246c91612439565b565b61247f9061247a613a83565b6124cd565b90565b90565b61249961249461249e92612482565b61161c565b6107b8565b90565b6124ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc612485565b90565b506124d66124a1565b90565b6124e96124e4612184565b61246e565b90565b6124f86124fd9161064d565b611210565b90565b61250a90546124ec565b90565b612515611ff9565b506125285f612522613ae1565b01612500565b90565b5f90565b61254661254b9161253e61252b565b506056610de5565b610666565b90565b6125739161256961256e9261256161252b565b506057610dcf565b610de5565b610666565b90565b5f90565b90612584906105f9565b5f5260205260405f2090565b60018060a01b031690565b6125a76125ac9161064d565b612590565b90565b6125b9905461259b565b90565b6125d36125d8916125cb612576565b50600661257a565b6125af565b90565b6125ed906125e7612576565b50613b1b565b90565b906125fa906105f9565b5f5260205260405f2090565b612635915f61262a6126309361261a611ff9565b50826126246136ba565b01612188565b016125f0565b612500565b90565b61264f6126549161264761252b565b506023610de5565b610666565b90565b90612661906104e2565b9052565b9061266f906107b8565b9052565b9061267d906107c8565b9052565b9061268b906107dc565b9052565b61269a610120610e9b565b90565b9061277b61277160066126ae61268f565b946126c56126bd5f8301610666565b5f8801612657565b6126dc6126d35f830161068d565b60208801612657565b6126f36126ea5f83016106b4565b60408801612657565b61270b612702600183016106d8565b60608801612665565b61272361271a60028301610700565b60808801612673565b61273b61273260038301610724565b60a08801612681565b61275361274a60048301610724565b60c08801612681565b61276b61276260058301610724565b60e08801612681565b016106d8565b6101008401612665565b565b6127869061269d565b90565b61279390516104e2565b90565b6127aa6127a56127af92611619565b6105ce565b6104e2565b90565b6127bc90516107b8565b90565b6127c990516107dc565b90565b634e487b7160e01b5f52601160045260245ffd5b6127ef6127f5919392936107dc565b926107dc565b820391821161280057565b6127cc565b61281461281a919392936107dc565b926107dc565b916128268382026107dc565b92818404149015171561283557565b6127cc565b634e487b7160e01b5f52601260045260245ffd5b61285a612860916107dc565b916107dc565b90811561286b570490565b61283a565b9291909261289961289461288261203d565b9561288f60558590610605565b610637565b61277d565b916128a55f8401612789565b6128b76128b15f612796565b916104e2565b1461297857906128d491906128ce606085016127b2565b91613c4f565b90816128e86128e25f612079565b916107dc565b14612968576128f960c082016127bf565b61291661291061290b60e085016127bf565b6107dc565b916107dc565b11612920575b5050565b6129609293509061294c8261294660e061293f60c061295297016127bf565b92016127bf565b906127e0565b90612805565b61295a61189c565b9061284e565b905f8061291c565b505090506129755f612079565b90565b50505090506129865f612079565b90565b5f90565b5f90565b5f90565b5f90565b6129a161268f565b90602080808080808080808a6129b5612989565b8152016129c0612989565b8152016129cb612989565b8152016129d661298d565b8152016129e1612991565b8152016129ec612995565b8152016129f7612995565b815201612a02612995565b815201612a0d61298d565b81525050565b612a1b612999565b90565b612a4391612a39612a3e92612a31612a13565b506055610605565b610637565b61277d565b90565b612a506040610e9b565b90565b612a5b612a46565b9060208083612a68612995565b815201612a73612995565b81525050565b612a81612a53565b90565b90612a8e9061061b565b5f5260205260405f2090565b90612aa4906105f9565b5f5260205260405f2090565b90612ae7612ade6001612ac1612a46565b94612ad8612ad05f8301610724565b5f8801612681565b01610724565b60208401612681565b565b612af290612ab0565b90565b612b1a91612b10612b1592612b08612a79565b506010612a84565b612a9a565b612ae9565b90565b612b4291612b38612b3d92612b3061252b565b506058610dcf565b610de5565b610666565b90565b612b51612b5691610673565b611210565b90565b612b639054612b45565b90565b612b7a612b75612b7f92611a63565b6105ce565b6104e2565b90565b612b8b906105ed565b90565b90612b9f60018060401b039161161c565b9181191691161790565b90565b90612bc1612bbc612bc89261061b565b612ba9565b8254612b8e565b9055565b60401b90565b90612be160ff60401b91612bcc565b9181191691161790565b612bf490610433565b90565b90565b90612c0f612c0a612c1692612beb565b612bf7565b8254612bd2565b9055565b612c2390612b66565b9052565b9190612c3a905f60208501940190612c1a565b565b909192612c47613d3e565b93612c5c612c565f8701612b59565b15610433565b93612c685f8701610666565b80612c7b612c755f612796565b916104e2565b1480612d95575b90612c96612c906001612b66565b916104e2565b1480612d6d575b612ca8909115610433565b9081612d5c575b50612d4057612cd893612ccd612cc56001612b66565b5f8901612bac565b85612d2e575b61314d565b612ce0575b50565b612ced905f809101612bfa565b6001612d257fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d1c6103d4565b91829182612c27565b0390a15f612cdd565b612d3b60015f8901612bfa565b612cd3565b5f63f92ee8a960e01b815280612d5860048201610a5c565b0390fd5b612d67915015610433565b5f612caf565b50612ca8612d7a30612b82565b3b612d8d612d875f612079565b916107dc565b149050612c9d565b5085612c82565b612db0612dab612db592611619565b6105ce565b610544565b90565b612dc190612d9c565b90565b612dce6040610e9b565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612def57565b612dd1565b90612dfe82612de5565b565b90612e0a90612df4565b9052565b90612e189061054f565b9052565b612e30612e2b612e35926107dc565b6105ce565b6107c8565b90565b612e4260c0610e9b565b90565b90612e4f90610433565b9052565b90612e5d90612057565b5f5260205260405f2090565b612e739051610433565b90565b90612e8260ff9161161c565b9181191691161790565b90612ea1612e9c612ea892612beb565b612bf7565b8254612e76565b9055565b90612eb85f199161161c565b9181191691161790565b612ed6612ed1612edb926107dc565b6105ce565b6107dc565b90565b90565b90612ef6612ef1612efd92612ec2565b612ede565b8254612eac565b9055565b612f0b90516107c8565b90565b90612f1b61ffff9161161c565b9181191691161790565b612f39612f34612f3e926107c8565b6105ce565b6107c8565b90565b90565b90612f59612f54612f6092612f25565b612f41565b8254612f0e565b9055565b90612ff360a06005612ff994612f875f8201612f815f8801612e69565b90612e8c565b612fa060018201612f9a602088016127bf565b90612ee1565b612fb960028201612fb3604088016127bf565b90612ee1565b612fd260038201612fcc606088016127bf565b90612ee1565b612feb60048201612fe5608088016127bf565b90612ee1565b019201612f01565b90612f44565b565b9061300591612f64565b565b60801b90565b9061301d61ffff60801b91613007565b9181191691161790565b9061303c61303761304392612f25565b612f41565b825461300d565b9055565b90565b61305e61305961306392613047565b6105ce565b6104e2565b90565b61307161546061304a565b90565b90613089600160401b600160801b0391612bcc565b9181191691161790565b906130a86130a36130af9261061b565b612ba9565b8254613074565b9055565b90565b6130ca6130c56130cf926130b3565b6105ce565b6104e2565b90565b6130dc601c6130b6565b90565b60c01b90565b906130f760018060c01b0319916130df565b9181191691161790565b9061311661311161311d9261061b565b612ba9565b82546130e5565b9055565b90565b61313861313361313d92613121565b6105ce565b6104e2565b90565b61314a6038613124565b90565b919091613158613d6c565b613160613d80565b613168613da6565b613170613dcc565b61317861163d565b81613182916136f2565b5061318b6111ac565b81613195916136f2565b5061319e6117ac565b906131a8916136f2565b505f806131b490612db8565b6131bc612dc4565b915f8301906131ca91612e00565b60208201906131d891612e0e565b6131e190613e36565b90600192905f80916131f1611ec5565b6131fa90612e1c565b93613203612e38565b965f88019061321191612e45565b602087019061321f91612681565b604086019061322d91612681565b61323690612079565b606085019061324491612681565b61324d90612079565b608084019061325b91612681565b60a083019061326991612673565b60029061327591612e53565b9061327f91612ffb565b600161328c906005612e8c565b613297906001613027565b60016132a290612b66565b6132ac905f612bac565b6132b4613066565b6132be905f613093565b6132c66130d2565b6132d0905f613101565b6132d86130d2565b6132e3906001612bac565b6132eb613140565b6132f6906001613093565b565b90613304939291612c3c565b565b906133219161331c6133178261219e565b6136de565b613323565b565b9061332d916137b6565b50565b9061333a91613306565b565b600161334891016107dc565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b9190811015613373576020020190565b61334f565b35613382816103f2565b90565b61338e906103e6565b90565b91909161339c61350b565b6133a55f612079565b5b806133c36133bd6133b885889061334b565b6107dc565b916107dc565b101561344757613442906133e96133e46133df85888591613363565b613378565b613efd565b6133fd6133f884878491613363565b613378565b6134277fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb91613385565b906134306103d4565b8061343a81610a5c565b0390a261333c565b6133a6565b50509050565b906134679161346261345d6111ac565b6136de565b613469565b565b61347e8261347960238490610de5565b612bac565b6134bd6134ab7f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f35926105f9565b926134b46103d4565b918291826104fa565b0390a2565b906134cc9161344d565b565b613f13565b6134db611ff9565b506134f56134ef6301ffc9a760e01b6103e6565b916103e6565b1490565b6135096135046111ac565b6136de565b565b6135136134f9565b565b5190565b9061352382613515565b811015613534576020809102010190565b61334f565b61354390516103e6565b90565b91908261356361355d6135585f612db8565b61054f565b9161054f565b146136b557823b61357c6135765f612079565b916107dc565b146136af5761358a5f612079565b5b806135a66135a061359b85613515565b6107dc565b916107dc565b10156136a9576135c76135c26135bd848490613519565b613539565b613b1b565b806135e26135dc6135d75f612db8565b61054f565b9161054f565b14158061368e575b613677575061367290613610613609613604858490613519565b613539565b869061401a565b61362361361e848390613519565b613539565b856136576136517f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b3993613385565b916105f9565b916136606103d4565b8061366a81610a5c565b0390a361333c565b61358b565b6136896136848385613519565b613539565b613fc1565b50806136a261369c8761054f565b9161054f565b14156135ea565b50509050565b82613f72565b613f56565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b6136f0906136ea6137a9565b90614053565b565b6136fa611ff9565b506137036136ba565b613717613711838590612606565b15610433565b5f146137a2576137419061373c5f61373481600194018690612188565b0185906125f0565b612e8c565b9061374a6137a9565b9061378761378161377b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d95612057565b926105f9565b926105f9565b926137906103d4565b8061379a81610a5c565b0390a4600190565b5050505f90565b6137b1612576565b503390565b6137be611ff9565b506137c76136ba565b6137d2828490612606565b5f1461385c576137fb906137f65f6137ee818094018690612188565b0185906125f0565b612e8c565b906138046137a9565b9061384161383b6138357ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b95612057565b926105f9565b926105f9565b9261384a6103d4565b8061385481610a5c565b0390a4600190565b5050505f90565b61386c906105ed565b90565b61387830613863565b6138aa6138a47f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b1480156138d4575b6138b857565b5f63703e46dd60e11b8152806138d060048201610a5c565b0390fd5b506138dd61408e565b61390f6139097f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b14156138b2565b506139276139226111ac565b6136de565b565b61393290613916565b565b61393d906105d1565b90565b61394990613934565b90565b613955906105ed565b90565b90505190613965826108b2565b565b906020828203126139805761397d915f01613958565b90565b6103de565b91906139b3602061399d61399886613940565b61394c565b6352d1902d906139ab6103d4565b93849261226a565b825281806139c360048201610a5c565b03915afa80915f92613a53575b50155f14613a045750509060016139e557505b565b613a00905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b9283613a1f613a19613a146124a1565b6107b8565b916107b8565b03613a3457613a2f9293506140b4565b6139e3565b613a4f845f918291632a87526960e21b835260048301610ab3565b0390fd5b613a7591925060203d8111613a7c575b613a6d8183610e74565b810190613967565b905f6139d0565b503d613a63565b613a8c30613863565b613abe613ab87f000000000000000000000000000000000000000000000000000000000000000061054f565b9161054f565b03613ac557565b5f63703e46dd60e11b815280613add60048201610a5c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b0f90613385565b5f5260205260405f2090565b613b32613b3791613b2a612576565b506021613b05565b6125af565b90565b90613b44906105f9565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613b6981613b53565b821015613b8357613b7b600491613b57565b910201905f90565b61334f565b90565b60ff1690565b613b9d613ba29161064d565b613b8b565b90565b613baf9054613b91565b90565b60081c90565b613bc4613bc991613bb2565b612590565b90565b613bd69054613bb8565b90565b613be36040610e9b565b90565b90613c1c613c135f613bf6613bd9565b94613c0d613c05838301613ba5565b838801612e00565b01613bcc565b60208401612e0e565b565b613c2790613be6565b90565b613c39613c3f919392936107dc565b926107dc565b8201809211613c4a57565b6127cc565b929192613c6d613c68613c6061203d565b926015613b3a565b613b50565b93613c7785613b53565b93613c815f612079565b5b80613c95613c8f886107dc565b916107dc565b1015613d3557613caf613ca9888390613b60565b50613b88565b613cba5f82016125af565b613ccc613cc68861054f565b9161054f565b1480613d08575b613ce7575b50613ce29061333c565b613c82565b613ce29194613cfb6001613d019301610724565b90613c2a565b9390613cd8565b50613d1d613d1860028301613c1e565b613e36565b613d2f613d29866107b8565b916107b8565b14613cd3565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613d6a61413d565b565b613d74613d62565b565b613d7e61413d565b565b613d88613d76565b565b613d9261413d565b613d9a613d9c565b565b613da4614198565b565b613dae613d8a565b565b613db861413d565b613dc0613dc2565b565b613dca6141de565b565b613dd4613db0565b565b613de09051612df4565b90565b613ded905161054f565b90565b613df990612df4565b90565b613e0590613df0565b9052565b916020613e2a929493613e2360408201965f830190613dfc565b019061139f565b565b60200190565b5190565b613e3e612184565b50613e80613e596020613e525f8501613dd6565b9301613de3565b91613e71613e656103d4565b93849260208401613e09565b60208201810382520382610e74565b613e92613e8c82613e32565b91613e2c565b2090565b1b90565b91906008613eba910291613eb460018060a01b0384613e96565b92613e96565b9181191691161790565b90565b9190613edd613ed8613ee5936105f9565b613ec4565b908354613e9a565b9055565b613efb91613ef5612576565b91613ec7565b565b5f613f0c613f11926021613b05565b613ee9565b565b613f2663ffffffff60e01b5f3516613b1b565b80613f41613f3b613f365f612db8565b61054f565b9161054f565b0361421c5763ffffffff60e01b5f35166141fd565b5f63d92e233d60e01b815280613f6e60048201610a5c565b0390fd5b613f8d905f9182916322a2d07b60e21b8352600483016113ac565b0390fd5b613f9a906103e6565b9052565b916020613fbf929493613fb860408201965f830190613f91565b019061139f565b565b613fdb5f9283926310ae11a960e31b845260048401613f9e565b0390fd5b90613ff060018060a01b039161161c565b9181191691161790565b9061400f61400a614016926105f9565b613ec4565b8254613fdf565b9055565b61402961402e92916021613b05565b613ffa565b565b91602061405192949361404a60408201965f83019061139f565b01906107bb565b565b90614068614062838390612606565b15610433565b614070575050565b61408a5f92839263e2517d3f60e01b845260048401614030565b0390fd5b614096612576565b506140b15f6140ab6140a66124a1565b61423a565b016125af565b90565b906140be8261423d565b816140e97fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b916105f9565b906140f26103d4565b806140fc81610a5c565b0390a261410881613e32565b61411a6141145f612079565b916107dc565b115f1461412e5761412a9161430d565b505b565b5050614138614292565b61412c565b61414e61414861433c565b15610433565b61415457565b5f631afcd79f60e31b81528061416c60048201610a5c565b0390fd5b61417861413d565b614180614182565b565b61419661418d613ae1565b5f809101612e8c565b565b6141a0614170565b565b6141aa61413d565b6141b26141c1565b565b6141be6001611a66565b90565b6141dc6141cc61435a565b5f6141d56141b4565b9101612ee1565b565b6141e66141a2565b565b91906141fb905f60208501940190613f91565b565b614218905f91829163c2a825f560e01b8352600483016141e8565b0390fd5b5f8091368280378136915af43d5f803e5f14614236573d5ff35b3d5ffd5b90565b803b61425161424b5f612079565b916107dc565b1461427357614271905f61426b6142666124a1565b61423a565b01613ffa565b565b61428e905f918291634c9c8ce360e01b8352600483016113ac565b0390fd5b346142a561429f5f612079565b916107dc565b116142ac57565b5f63b398979f60e01b8152806142c460048201610a5c565b0390fd5b606090565b906142df6142da83610eb0565b610e9b565b918252565b3d5f146142ff576142f43d6142cd565b903d5f602084013e5b565b6143076142c8565b906142fd565b5f806143399361431b6142c8565b508390602081019051915af4906143306142e4565b9091909161437e565b90565b614344611ff9565b506143575f614351613d3e565b01612b59565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906143929061438b6142c8565b5015610433565b5f1461439e5750614402565b6143a782613e32565b6143b96143b35f612079565b916107dc565b14806143e7575b6143c8575090565b6143e3905f918291639996b31560e01b8352600483016113ac565b0390fd5b50803b6143fc6143f65f612079565b916107dc565b146143c0565b61440b81613e32565b61441d6144175f612079565b916107dc565b115f1461442c57805190602001fd5b5f63d6bda27560e01b81528061444460048201610a5c565b0390fdfea164736f6c634300081a000a + ///0x60806040526004361015610015575b3661355557005b61001f5f356103de565b806301ffc9a7146103d957806305d64e38146103d45780630aa8b110146103cf57806312d91c88146103ca57806318056dc2146103c557806319e82e61146103c0578063248a9ca3146103bb5780632f2ff15d146103b657806332273f61146103b157806336568abe146103ac578063453eccea146103a757806346d163aa146103a2578063491474111461039d5780634962f88f146103985780634de8addc146103935780634e9c929a1461038e5780634f1ef286146103895780635095af641461038457806352d1902d1461037f57806354de23201461037a5780635c975abb14610375578063602356e31461037057806366c368751461036b57806372b5032d1461036657806375b238fc1461036157806377ab2cf31461035c5780637df92ada1461035757806388c47f68146103525780638a19c8bc1461034d5780638a7fe60f1461034857806390837ff41461034357806391d148541461033e5780639480e4dd146103395780639494f42614610334578063960856731461032f5780639722f4b91461032a5780639e87058514610325578063a217fddf14610320578063a457af3d1461031b578063a4b32de814610316578063a7fa6f9814610311578063aaf5eb681461030c578063ad3cb1cc14610307578063b54b2b9e14610302578063b6608409146102fd578063ba05bbf5146102f8578063c07449e2146102f3578063c550d938146102ee578063cbb6d6bd146102e9578063d27a6f06146102e4578063d45ff582146102df578063d547741f146102da578063db8a173a146102d5578063dd764abf146102d0578063e07dec29146102cb578063e1a45218146102c6578063e27e05c1146102c1578063f3c9b311146102bc578063f72c0d8b146102b75763f7cb789a0361000e57612038565b611ff4565b611f90565b611f23565b611eee565b611e85565b611e1c565b611daa565b611d67565b611d32565b611cc4565b611c54565b611b92565b611b5c565b611aee565b611aaa565b611a3e565b6119fa565b6118cb565b611858565b6117eb565b611786565b611664565b6115f4565b611585565b61152f565b6114e0565b611471565b61143b565b611406565b6113d1565b61137a565b611338565b6112c9565b61125b565b6111eb565b611186565b611151565b61111c565b6110b8565b611083565b611016565b610fe1565b610f88565b610e2c565b610d7d565b610d38565b610ccb565b610c98565b610c45565b610bd9565b610ba4565b610b3a565b610ad8565b610a71565b6109aa565b610927565b610882565b61051f565b61046a565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b61040b816103f6565b0361041257565b5f80fd5b9050359061042382610402565b565b9060208282031261043e5761043b915f01610416565b90565b6103ee565b151590565b61045190610443565b9052565b9190610468905f60208501940190610448565b565b3461049a57610496610485610480366004610425565b612071565b61048d6103e4565b91829182610455565b0390f35b6103ea565b5f9103126104a957565b6103ee565b1c90565b60018060401b031690565b6104cd9060086104d293026104ae565b6104b2565b90565b906104e091546104bd565b90565b6104ef5f6010906104d5565b90565b60018060401b031690565b610506906104f2565b9052565b919061051d905f602085019401906104fd565b565b3461054f5761052f36600461049f565b61054b61053a6104e3565b6105426103e4565b9182918261050a565b0390f35b6103ea565b60018060a01b031690565b61056890610554565b90565b6105748161055f565b0361057b57565b5f80fd5b9050359061058c8261056b565b565b610597816104f2565b0361059e57565b5f80fd5b905035906105af8261058e565b565b91906040838203126105d957806105cd6105d6925f860161057f565b936020016105a2565b90565b6103ee565b90565b6105f56105f06105fa92610554565b6105de565b610554565b90565b610606906105e1565b90565b610612906105fd565b90565b9061061f90610609565b5f5260205260405f2090565b61063f61063a610644926104f2565b6105de565b6104f2565b90565b906106519061062b565b5f5260205260405f2090565b5f1c90565b61066e6106739161065d565b6104b2565b90565b6106809054610662565b90565b60401c90565b61069561069a91610683565b6104b2565b90565b6106a79054610689565b90565b60801c90565b6106bc6106c1916106aa565b6104b2565b90565b6106ce90546106b0565b90565b90565b6106e06106e59161065d565b6106d1565b90565b6106f290546106d4565b90565b61ffff1690565b61070861070d9161065d565b6106f5565b90565b61071a90546106fc565b90565b90565b61072c6107319161065d565b61071d565b90565b61073e9054610720565b90565b90610750610755926055610615565b610647565b6107605f8201610676565b9161076c5f830161069d565b916107785f82016106c4565b91610785600183016106e8565b9161079260028201610710565b9161079f60038301610734565b916107ac60048201610734565b916107c560066107be60058501610734565b93016106e8565b90565b90565b6107d4906107c8565b9052565b61ffff1690565b6107e8906107d8565b9052565b90565b6107f8906107ec565b9052565b9694929099989795939161012088019a5f8901610818916104fd565b60208801610825916104fd565b60408701610832916104fd565b6060860161083f916107cb565b6080850161084c916107df565b60a08401610859916107ef565b60c08301610866916107ef565b60e08201610873916107ef565b61010001610880916107cb565b565b346108bd576108b961089e6108983660046105b1565b90610741565b956108b09997999591959492946103e4565b998a998a6107fc565b0390f35b6103ea565b6108cb816107c8565b036108d257565b5f80fd5b905035906108e3826108c2565b565b919060408382031261090d578061090161090a925f860161057f565b936020016108d6565b90565b6103ee565b9190610925905f602085019401906107ef565b565b346109585761095461094361093d3660046108e5565b90612109565b61094b6103e4565b91829182610912565b0390f35b6103ea565b90565b61097461096f6109799261095d565b6105de565b6107d8565b90565b610987612af8610960565b90565b61099261097c565b90565b91906109a8905f602085019401906107df565b565b346109da576109ba36600461049f565b6109d66109c561098a565b6109cd6103e4565b91829182610995565b0390f35b6103ea565b5f80fd5b5f80fd5b5f80fd5b909182601f83011215610a235781359160018060401b038311610a1e576020019260208302840111610a1957565b6109e7565b6109e3565b6109df565b919091604081840312610a6757610a41835f830161057f565b92602082013560018060401b038111610a6257610a5e92016109eb565b9091565b6103f2565b6103ee565b5f0190565b34610aa057610a8a610a84366004610a28565b916121da565b610a926103e4565b80610a9c81610a6c565b0390f35b6103ea565b90602082820312610abe57610abb915f016108d6565b90565b6103ee565b9190610ad6905f602085019401906107cb565b565b34610b0857610b04610af3610aee366004610aa5565b612212565b610afb6103e4565b91829182610ac3565b0390f35b6103ea565b9190604083820312610b355780610b29610b32925f86016108d6565b9360200161057f565b90565b6103ee565b34610b6957610b53610b4d366004610b0d565b90612266565b610b5b6103e4565b80610b6581610a6c565b0390f35b6103ea565b610b7e906008610b8393026104ae565b6106f5565b90565b90610b919154610b6e565b90565b610ba16001601090610b86565b90565b34610bd457610bb436600461049f565b610bd0610bbf610b94565b610bc76103e4565b91829182610995565b0390f35b6103ea565b34610c0857610bf2610bec366004610b0d565b90612272565b610bfa6103e4565b80610c0481610a6c565b0390f35b6103ea565b90565b610c24610c1f610c2992610c0d565b6105de565b6107d8565b90565b610c37613e80610c10565b90565b610c42610c2c565b90565b34610c7557610c5536600461049f565b610c71610c60610c3a565b610c686103e4565b91829182610995565b0390f35b6103ea565b90602082820312610c9357610c90915f0161057f565b90565b6103ee565b34610cc657610cb0610cab366004610c7a565b6123b0565b610cb86103e4565b80610cc281610a6c565b0390f35b6103ea565b34610cfb57610cf7610ce6610ce1366004610c7a565b61248e565b610cee6103e4565b91829182610912565b0390f35b6103ea565b90565b610d17610d12610d1c92610d00565b6105de565b6107d8565b90565b610d2a612710610d03565b90565b610d35610d1f565b90565b34610d6857610d4836600461049f565b610d64610d53610d2d565b610d5b6103e4565b91829182610995565b0390f35b6103ea565b610d7a60016008906104d5565b90565b34610dad57610d8d36600461049f565b610da9610d98610d6d565b610da06103e4565b9182918261050a565b0390f35b6103ea565b9190604083820312610dda5780610dce610dd7925f86016105a2565b9360200161057f565b90565b6103ee565b90610de99061062b565b5f5260205260405f2090565b90610dff90610609565b5f5260205260405f2090565b610e24610e2992610e1f6058935f94610ddf565b610df5565b6104d5565b90565b34610e5d57610e59610e48610e42366004610db2565b90610e0b565b610e506103e4565b9182918261050a565b0390f35b6103ea565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610e8e90610e66565b810190811060018060401b03821117610ea657604052565b610e70565b90610ebe610eb76103e4565b9283610e84565b565b60018060401b038111610edc57610ed8602091610e66565b0190565b610e70565b90825f939282370152565b90929192610f01610efc82610ec0565b610eab565b93818552602085019082840111610f1d57610f1b92610ee1565b565b610e62565b9080601f83011215610f4057816020610f3d93359101610eec565b90565b6109df565b919091604081840312610f8357610f5e835f830161057f565b92602082013560018060401b038111610f7e57610f7b9201610f22565b90565b6103f2565b6103ee565b610f9c610f96366004610f45565b906124d6565b610fa46103e4565b80610fae81610a6c565b0390f35b7f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e3990565b610fde610fb2565b90565b3461101157610ff136600461049f565b61100d610ffc610fd6565b6110046103e4565b91829182610ac3565b0390f35b6103ea565b346110465761102636600461049f565b61104261103161254d565b6110396103e4565b91829182610ac3565b0390f35b6103ea565b90565b61106261105d6110679261104b565b6105de565b6107d8565b90565b611075612ee061104e565b90565b61108061106a565b90565b346110b35761109336600461049f565b6110af61109e611078565b6110a66103e4565b91829182610995565b0390f35b6103ea565b346110e8576110c836600461049f565b6110e46110d3612581565b6110db6103e4565b91829182610455565b0390f35b6103ea565b7f19449a4ad57e40a5aa77e785b4539e53ba9e7fedbf7076388ee3fb1bc2ddea1b90565b6111196110ed565b90565b3461114c5761112c36600461049f565b611148611137611111565b61113f6103e4565b91829182610ac3565b0390f35b6103ea565b346111815761117d61116c611167366004610c7a565b6125a3565b6111746103e4565b9182918261050a565b0390f35b6103ea565b346111b7576111b36111a261119c366004610db2565b906125c2565b6111aa6103e4565b9182918261050a565b0390f35b6103ea565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177590565b6111e86111bc565b90565b3461121b576111fb36600461049f565b6112176112066111e0565b61120e6103e4565b91829182610ac3565b0390f35b6103ea565b60ff1690565b61123690600861123b93026104ae565b611220565b90565b906112499154611226565b90565b61125860055f9061123e565b90565b3461128b5761126b36600461049f565b61128761127661124c565b61127e6103e4565b91829182610455565b0390f35b6103ea565b90565b6112a76112a26112ac92611290565b6105de565b6104f2565b90565b6112bb624f1a00611293565b90565b6112c66112af565b90565b346112f9576112d936600461049f565b6112f56112e46112be565b6112ec6103e4565b9182918261050a565b0390f35b6103ea565b90565b61131561131061131a926112fe565b6105de565b6107ec565b90565b61132a6305f5e100611301565b90565b61133561131d565b90565b346113685761134836600461049f565b61136461135361132d565b61135b6103e4565b91829182610912565b0390f35b6103ea565b6113775f806104d5565b90565b346113aa5761138a36600461049f565b6113a661139561136d565b61139d6103e4565b9182918261050a565b0390f35b6103ea565b6113b89061055f565b9052565b91906113cf905f602085019401906113af565b565b34611401576113fd6113ec6113e7366004610c7a565b612630565b6113f46103e4565b918291826113bc565b0390f35b6103ea565b346114365761143261142161141c366004610425565b61264f565b6114296103e4565b918291826113bc565b0390f35b6103ea565b3461146c57611468611457611451366004610b0d565b9061267a565b61145f6103e4565b91829182610455565b0390f35b6103ea565b346114a15761149d61148c611487366004610c7a565b6126ac565b6114946103e4565b9182918261050a565b0390f35b6103ea565b90916060828403126114db576114d86114c1845f850161057f565b936114cf81602086016105a2565b9360400161057f565b90565b6103ee565b346115115761150d6114fc6114f63660046114a6565b916128e4565b6115046103e4565b91829182610912565b0390f35b6103ea565b61152c906115276056915f92610df5565b6104d5565b90565b3461155f5761155b61154a611545366004610c7a565b611516565b6115526103e4565b9182918261050a565b0390f35b6103ea565b61157d611582926115786057935f94610ddf565b610df5565b6104d5565b90565b346115b6576115b26115a161159b366004610db2565b90611564565b6115a96103e4565b9182918261050a565b0390f35b6103ea565b90565b6115d26115cd6115d7926115bb565b6105de565b6104f2565b90565b6115e662278d006115be565b90565b6115f16115da565b90565b346116245761160436600461049f565b61162061160f6115e9565b6116176103e4565b9182918261050a565b0390f35b6103ea565b90565b5f1b90565b61164561164061164a92611629565b61162c565b6107c8565b90565b6116565f611631565b90565b61166161164d565b90565b346116945761167436600461049f565b61169061167f611659565b6116876103e4565b91829182610ac3565b0390f35b6103ea565b6116a2906104f2565b9052565b6116af906107c8565b9052565b6116bc906107d8565b9052565b6116c9906107ec565b9052565b906101008061176e936116e65f8201515f860190611699565b6116f860208201516020860190611699565b61170a60408201516040860190611699565b61171c606082015160608601906116a6565b61172e608082015160808601906116b3565b61174060a082015160a08601906116c0565b61175260c082015160c08601906116c0565b61176460e082015160e08601906116c0565b01519101906116a6565b565b9190611784905f61012085019401906116cd565b565b346117b7576117b36117a261179c3660046105b1565b90612a92565b6117aa6103e4565b91829182611770565b0390f35b6103ea565b7fb1fadd3142ab2ad7f1337ea4d97112bcc8337fc11ce5b20cb04ad038adf9981990565b6117e86117bc565b90565b3461181b576117fb36600461049f565b6118176118066117e0565b61180e6103e4565b91829182610ac3565b0390f35b6103ea565b90565b61183761183261183c92611820565b6105de565b6107d8565b90565b61184a6132c8611823565b90565b61185561183f565b90565b346118885761186836600461049f565b61188461187361184d565b61187b6103e4565b91829182610995565b0390f35b6103ea565b90565b6118a461189f6118a99261188d565b6105de565b6107ec565b90565b6118bd670de0b6b3a7640000611890565b90565b6118c86118ac565b90565b346118fb576118db36600461049f565b6118f76118e66118c0565b6118ee6103e4565b91829182610912565b0390f35b6103ea565b60018060401b03811161191c57611918602091610e66565b0190565b610e70565b9061193361192e83611900565b610eab565b918252565b5f7f352e302e30000000000000000000000000000000000000000000000000000000910152565b6119696005611921565b9061197660208301611938565b565b61198061195f565b90565b61198b611978565b90565b611996611983565b90565b5190565b60209181520190565b90825f9392825e0152565b6119d06119d96020936119de936119c781611999565b9384809361199d565b958691016119a6565b610e66565b0190565b6119f79160208201915f8184039101526119b1565b90565b34611a2a57611a0a36600461049f565b611a26611a1561198e565b611a1d6103e4565b918291826119e2565b0390f35b6103ea565b611a3b60075f9061123e565b90565b34611a6e57611a4e36600461049f565b611a6a611a59611a2f565b611a616103e4565b91829182610455565b0390f35b6103ea565b90565b611a8a611a85611a8f92611a73565b6105de565b6107ec565b90565b611a9c6001611a76565b90565b611aa7611a92565b90565b34611ada57611aba36600461049f565b611ad6611ac5611a9f565b611acd6103e4565b91829182610912565b0390f35b6103ea565b611aeb5f6018906104d5565b90565b34611b1e57611afe36600461049f565b611b1a611b09611adf565b611b116103e4565b9182918261050a565b0390f35b6103ea565b90602080611b4593611b3b5f8201515f8601906116c0565b01519101906116c0565b565b9190611b5a905f60408501940190611b23565b565b34611b8d57611b89611b78611b72366004610db2565b90612b69565b611b806103e4565b91829182611b47565b0390f35b6103ea565b34611bc357611bbf611bae611ba8366004610db2565b90612b91565b611bb66103e4565b9182918261050a565b0390f35b6103ea565b611bd1816107ec565b03611bd857565b5f80fd5b90503590611be982611bc8565b565b611bf4816107d8565b03611bfb57565b5f80fd5b90503590611c0c82611beb565b565b608081830312611c4f57611c24825f830161057f565b92611c4c611c358460208501611bdc565b93611c438160408601611bdc565b93606001611bff565b90565b6103ee565b34611c8657611c70611c67366004611c0e565b9291909161337f565b611c786103e4565b80611c8281610a6c565b0390f35b6103ea565b90565b611ca2611c9d611ca792611c8b565b6105de565b6104f2565b90565b611cb66276a700611c8e565b90565b611cc1611caa565b90565b34611cf457611cd436600461049f565b611cf0611cdf611cb9565b611ce76103e4565b9182918261050a565b0390f35b6103ea565b90565b611d10611d0b611d1592611cf9565b6105de565b6104f2565b90565b611d2462093a80611cfc565b90565b611d2f611d18565b90565b34611d6257611d4236600461049f565b611d5e611d4d611d27565b611d556103e4565b9182918261050a565b0390f35b6103ea565b34611d9657611d80611d7a366004610b0d565b906133b7565b611d886103e4565b80611d9281610a6c565b0390f35b6103ea565b611da760015f906104d5565b90565b34611dda57611dba36600461049f565b611dd6611dc5611d9b565b611dcd6103e4565b9182918261050a565b0390f35b6103ea565b90565b611df6611df1611dfb92611ddf565b6105de565b6107ec565b90565b611e0e662386f26fc10000611de2565b90565b611e19611dfe565b90565b34611e4c57611e2c36600461049f565b611e48611e37611e11565b611e3f6103e4565b91829182610912565b0390f35b6103ea565b90602082820312611e80575f82013560018060401b038111611e7b57611e7792016109eb565b9091565b6103f2565b6103ee565b34611eb457611e9e611e98366004611e51565b90613418565b611ea66103e4565b80611eb081610a6c565b0390f35b6103ea565b611ecd611ec8611ed292610d00565b6105de565b6107ec565b90565b611ee0612710611eb9565b90565b611eeb611ed5565b90565b34611f1e57611efe36600461049f565b611f1a611f09611ee3565b611f116103e4565b91829182610912565b0390f35b6103ea565b34611f5257611f3c611f363660046105b1565b90613549565b611f446103e4565b80611f4e81610a6c565b0390f35b6103ea565b90565b611f6e611f69611f7392611f57565b6105de565b6104f2565b90565b611f8262ed4e00611f5a565b90565b611f8d611f76565b90565b34611fc057611fa036600461049f565b611fbc611fab611f85565b611fb36103e4565b9182918261050a565b0390f35b6103ea565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390565b611ff1611fc5565b90565b346120245761200436600461049f565b61202061200f611fe9565b6120176103e4565b91829182610ac3565b0390f35b6103ea565b6120355f6008906104d5565b90565b346120685761204836600461049f565b612064612053612029565b61205b6103e4565b9182918261050a565b0390f35b6103ea565b5f90565b61207961206d565b508061209461208e637965db0b60e01b6103f6565b916103f6565b149081156120a1575b5090565b6120ab915061355a565b5f61209d565b5f90565b906120bf90610609565b5f5260205260405f2090565b6120d4906107c8565b90565b906120e1906120cb565b5f5260205260405f2090565b6121016120fc61210692611629565b6105de565b6107ec565b90565b61212e916121246121299261211c6120b1565b5060116120b5565b6120d7565b610734565b8061214161213b5f6120ed565b916107ec565b145f1461215557506121516118ac565b5b90565b612152565b60018060401b0381116121705760208091020190565b610e70565b9092919261218a6121858261215a565b610eab565b93818552602080860192028301928184116121c757915b8383106121ae5750505050565b602080916121bc8486610416565b8152019201916121a1565b6109e7565b6121d7913691612175565b90565b6121f6926121f0916121ea613592565b926121cc565b906135cd565b565b5f90565b90612206906120cb565b5f5260205260405f2090565b6001612233612239926122236121f8565b505f61222d613741565b016121fc565b016106e8565b90565b906122579161225261224d82612212565b613765565b612259565b565b9061226391613779565b50565b906122709161223c565b565b908061228d612287612282613830565b61055f565b9161055f565b0361229e5761229b9161383d565b50565b5f63334bd91960e11b8152806122b660048201610a6c565b0390fd5b6122c3906105e1565b90565b6122cf906122ba565b90565b6122db906105fd565b90565b60e01b90565b905051906122f182610402565b565b909291926123086123038261215a565b610eab565b938185526020808601920283019281841161234557915b83831061232c5750505050565b6020809161233a84866122e4565b81520192019161231f565b6109e7565b9080601f8301121561236857816020612365935191016122f3565b90565b6109df565b9060208282031261239b575f82015160018060401b03811161239657612393920161234a565b90565b6103f2565b6103ee565b6123a86103e4565b3d5f823e3d90fd5b6123b8613592565b6123e35f6123cd6123c8846122c6565b6122d2565b636e25b978906123db6103e4565b9384926122de565b825281806123f360048201610a6c565b03915afa80156124735761240f915f91612451575b50826135cd565b6124397f4d3c30f5993f1922a779345a0f7ec1a170f1e52e9d230824f9c17e63596c906d91610609565b906124426103e4565b8061244c81610a6c565b0390a2565b61246d91503d805f833e6124658183610e84565b81019061236d565b5f612408565b6123a0565b9061248290610609565b5f5260205260405f2090565b6124a56124aa9161249d6120b1565b50601b612478565b610734565b90565b906124bf916124ba6138f6565b6124c1565b565b906124d4916124cf816139b0565b613a0c565b565b906124e0916124ad565b565b6124f3906124ee613b0a565b612541565b90565b90565b61250d612508612512926124f6565b61162c565b6107c8565b90565b61253e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6124f9565b90565b5061254a612515565b90565b61255d6125586121f8565b6124e2565b90565b61256c6125719161065d565b611220565b90565b61257e9054612560565b90565b61258961206d565b5061259c5f612596613b68565b01612574565b90565b5f90565b6125ba6125bf916125b261259f565b506056610df5565b610676565b90565b6125e7916125dd6125e2926125d561259f565b506057610ddf565b610df5565b610676565b90565b5f90565b906125f890610609565b5f5260205260405f2090565b60018060a01b031690565b61261b6126209161065d565b612604565b90565b61262d905461260f565b90565b61264761264c9161263f6125ea565b5060066125ee565b612623565b90565b6126619061265b6125ea565b50613ba2565b90565b9061266e90610609565b5f5260205260405f2090565b6126a9915f61269e6126a49361268e61206d565b5082612698613741565b016121fc565b01612664565b612574565b90565b6126c36126c8916126bb61259f565b506023610df5565b610676565b90565b906126d5906104f2565b9052565b906126e3906107c8565b9052565b906126f1906107d8565b9052565b906126ff906107ec565b9052565b61270e610120610eab565b90565b906127ef6127e56006612722612703565b946127396127315f8301610676565b5f88016126cb565b6127506127475f830161069d565b602088016126cb565b61276761275e5f83016106c4565b604088016126cb565b61277f612776600183016106e8565b606088016126d9565b61279761278e60028301610710565b608088016126e7565b6127af6127a660038301610734565b60a088016126f5565b6127c76127be60048301610734565b60c088016126f5565b6127df6127d660058301610734565b60e088016126f5565b016106e8565b61010084016126d9565b565b6127fa90612711565b90565b61280790516104f2565b90565b61281e61281961282392611629565b6105de565b6104f2565b90565b61283090516107c8565b90565b61283d90516107ec565b90565b634e487b7160e01b5f52601160045260245ffd5b612863612869919392936107ec565b926107ec565b820391821161287457565b612840565b61288861288e919392936107ec565b926107ec565b9161289a8382026107ec565b9281840414901517156128a957565b612840565b634e487b7160e01b5f52601260045260245ffd5b6128ce6128d4916107ec565b916107ec565b9081156128df570490565b6128ae565b9291909261290d6129086128f66120b1565b9561290360558590610615565b610647565b6127f1565b916129195f84016127fd565b61292b6129255f61280a565b916104f2565b146129ec5790612948919061294260608501612826565b91613cd6565b908161295c6129565f6120ed565b916107ec565b146129dc5761296d60c08201612833565b61298a61298461297f60e08501612833565b6107ec565b916107ec565b11612994575b5050565b6129d4929350906129c0826129ba60e06129b360c06129c69701612833565b9201612833565b90612854565b90612879565b6129ce6118ac565b906128c2565b905f80612990565b505090506129e95f6120ed565b90565b50505090506129fa5f6120ed565b90565b5f90565b5f90565b5f90565b5f90565b612a15612703565b90602080808080808080808a612a296129fd565b815201612a346129fd565b815201612a3f6129fd565b815201612a4a612a01565b815201612a55612a05565b815201612a60612a09565b815201612a6b612a09565b815201612a76612a09565b815201612a81612a01565b81525050565b612a8f612a0d565b90565b612ab791612aad612ab292612aa5612a87565b506055610615565b610647565b6127f1565b90565b612ac46040610eab565b90565b612acf612aba565b9060208083612adc612a09565b815201612ae7612a09565b81525050565b612af5612ac7565b90565b90612b029061062b565b5f5260205260405f2090565b90612b1890610609565b5f5260205260405f2090565b90612b5b612b526001612b35612aba565b94612b4c612b445f8301610734565b5f88016126f5565b01610734565b602084016126f5565b565b612b6690612b24565b90565b612b8e91612b84612b8992612b7c612aed565b506010612af8565b612b0e565b612b5d565b90565b612bb691612bac612bb192612ba461259f565b506058610ddf565b610df5565b610676565b90565b612bc5612bca91610683565b611220565b90565b612bd79054612bb9565b90565b612bee612be9612bf392611a73565b6105de565b6104f2565b90565b612bff906105fd565b90565b90612c1360018060401b039161162c565b9181191691161790565b90565b90612c35612c30612c3c9261062b565b612c1d565b8254612c02565b9055565b60401b90565b90612c5560ff60401b91612c40565b9181191691161790565b612c6890610443565b90565b90565b90612c83612c7e612c8a92612c5f565b612c6b565b8254612c46565b9055565b612c9790612bda565b9052565b9190612cae905f60208501940190612c8e565b565b909192612cbb613dc5565b93612cd0612cca5f8701612bcd565b15610443565b93612cdc5f8701610676565b80612cef612ce95f61280a565b916104f2565b1480612e09575b90612d0a612d046001612bda565b916104f2565b1480612de1575b612d1c909115610443565b9081612dd0575b50612db457612d4c93612d41612d396001612bda565b5f8901612c20565b85612da2575b6131c1565b612d54575b50565b612d61905f809101612c6e565b6001612d997fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291612d906103e4565b91829182612c9b565b0390a15f612d51565b612daf60015f8901612c6e565b612d47565b5f63f92ee8a960e01b815280612dcc60048201610a6c565b0390fd5b612ddb915015610443565b5f612d23565b50612d1c612dee30612bf6565b3b612e01612dfb5f6120ed565b916107ec565b149050612d11565b5085612cf6565b612e24612e1f612e2992611629565b6105de565b610554565b90565b612e3590612e10565b90565b612e426040610eab565b90565b634e487b7160e01b5f52602160045260245ffd5b60021115612e6357565b612e45565b90612e7282612e59565b565b90612e7e90612e68565b9052565b90612e8c9061055f565b9052565b612ea4612e9f612ea9926107ec565b6105de565b6107d8565b90565b612eb660c0610eab565b90565b90612ec390610443565b9052565b90612ed1906120cb565b5f5260205260405f2090565b612ee79051610443565b90565b90612ef660ff9161162c565b9181191691161790565b90612f15612f10612f1c92612c5f565b612c6b565b8254612eea565b9055565b90612f2c5f199161162c565b9181191691161790565b612f4a612f45612f4f926107ec565b6105de565b6107ec565b90565b90565b90612f6a612f65612f7192612f36565b612f52565b8254612f20565b9055565b612f7f90516107d8565b90565b90612f8f61ffff9161162c565b9181191691161790565b612fad612fa8612fb2926107d8565b6105de565b6107d8565b90565b90565b90612fcd612fc8612fd492612f99565b612fb5565b8254612f82565b9055565b9061306760a0600561306d94612ffb5f8201612ff55f8801612edd565b90612f00565b6130146001820161300e60208801612833565b90612f55565b61302d6002820161302760408801612833565b90612f55565b6130466003820161304060608801612833565b90612f55565b61305f6004820161305960808801612833565b90612f55565b019201612f75565b90612fb8565b565b9061307991612fd8565b565b60801b90565b9061309161ffff60801b9161307b565b9181191691161790565b906130b06130ab6130b792612f99565b612fb5565b8254613081565b9055565b90565b6130d26130cd6130d7926130bb565b6105de565b6104f2565b90565b6130e56154606130be565b90565b906130fd600160401b600160801b0391612c40565b9181191691161790565b9061311c6131176131239261062b565b612c1d565b82546130e8565b9055565b90565b61313e61313961314392613127565b6105de565b6104f2565b90565b613150601c61312a565b90565b60c01b90565b9061316b60018060c01b031991613153565b9181191691161790565b9061318a6131856131919261062b565b612c1d565b8254613159565b9055565b90565b6131ac6131a76131b192613195565b6105de565b6104f2565b90565b6131be6038613198565b90565b9190916131cc613df3565b6131d4613e07565b6131dc613e2d565b6131e4613e53565b6131ec61164d565b816131f691613779565b506131ff6111bc565b8161320991613779565b506132126117bc565b8161321c91613779565b50613225611fc5565b9061322f91613779565b505f8061323b90612e2c565b613243612e38565b915f83019061325191612e74565b602082019061325f91612e82565b61326890613ebd565b90600192905f8091613278611ed5565b61328190612e90565b9361328a612eac565b965f88019061329891612eb9565b60208701906132a6916126f5565b60408601906132b4916126f5565b6132bd906120ed565b60608501906132cb916126f5565b6132d4906120ed565b60808401906132e2916126f5565b60a08301906132f0916126e7565b6002906132fc91612ec7565b906133069161306f565b6001613313906005612f00565b61331e90600161309b565b600161332990612bda565b613333905f612c20565b61333b6130da565b613345905f613107565b61334d613146565b613357905f613175565b61335f613146565b61336a906001612c20565b6133726131b4565b61337d906001613107565b565b9061338b939291612cb0565b565b906133a8916133a361339e82612212565b613765565b6133aa565b565b906133b49161383d565b50565b906133c19161338d565b565b60016133cf91016107ec565b90565b5090565b634e487b7160e01b5f52603260045260245ffd5b91908110156133fa576020020190565b6133d6565b3561340981610402565b90565b613415906103f6565b90565b919091613423613592565b61342c5f6120ed565b5b8061344a61344461343f8588906133d2565b6107ec565b916107ec565b10156134ce576134c99061347061346b613466858885916133ea565b6133ff565b613f84565b61348461347f848784916133ea565b6133ff565b6134ae7fbeb27701828f515b03069d44da6519b6c491da13ef1ca7082e619959d1f48ddb9161340c565b906134b76103e4565b806134c181610a6c565b0390a26133c3565b61342d565b50509050565b906134ee916134e96134e46111bc565b613765565b6134f0565b565b6135058261350060238490610df5565b612c20565b6135446135327f90b37e59a942c5413ce00a3a844a47c20094979897cc653606d925e909885f3592610609565b9261353b6103e4565b9182918261050a565b0390a2565b90613553916134d4565b565b613f9a565b61356261206d565b5061357c6135766301ffc9a760e01b6103f6565b916103f6565b1490565b61359061358b6111bc565b613765565b565b61359a613580565b565b5190565b906135aa8261359c565b8110156135bb576020809102010190565b6133d6565b6135ca90516103f6565b90565b9190826135ea6135e46135df5f612e2c565b61055f565b9161055f565b1461373c57823b6136036135fd5f6120ed565b916107ec565b14613736576136115f6120ed565b5b8061362d6136276136228561359c565b6107ec565b916107ec565b10156137305761364e6136496136448484906135a0565b6135c0565b613ba2565b8061366961366361365e5f612e2c565b61055f565b9161055f565b141580613715575b6136fe57506136f99061369761369061368b8584906135a0565b6135c0565b86906140a1565b6136aa6136a58483906135a0565b6135c0565b856136de6136d87f12557f25e458d9682d7c959b5a960bc9332e8b7af1120b54a333bfc1ff282b399361340c565b91610609565b916136e76103e4565b806136f181610a6c565b0390a36133c3565b613612565b61371061370b83856135a0565b6135c0565b614048565b50806137296137238761055f565b9161055f565b1415613671565b50509050565b82613ff9565b613fdd565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b61377790613771613830565b906140da565b565b61378161206d565b5061378a613741565b61379e61379883859061267a565b15610443565b5f14613829576137c8906137c35f6137bb816001940186906121fc565b018590612664565b612f00565b906137d1613830565b9061380e6138086138027f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d956120cb565b92610609565b92610609565b926138176103e4565b8061382181610a6c565b0390a4600190565b5050505f90565b6138386125ea565b503390565b61384561206d565b5061384e613741565b61385982849061267a565b5f146138e3576138829061387d5f6138758180940186906121fc565b018590612664565b612f00565b9061388b613830565b906138c86138c26138bc7ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b956120cb565b92610609565b92610609565b926138d16103e4565b806138db81610a6c565b0390a4600190565b5050505f90565b6138f3906105fd565b90565b6138ff306138ea565b61393161392b7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b14801561395b575b61393f57565b5f63703e46dd60e11b81528061395760048201610a6c565b0390fd5b50613964614115565b6139966139907f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b1415613939565b506139ae6139a9611fc5565b613765565b565b6139b99061399d565b565b6139c4906105e1565b90565b6139d0906139bb565b90565b6139dc906105fd565b90565b905051906139ec826108c2565b565b90602082820312613a0757613a04915f016139df565b90565b6103ee565b9190613a3a6020613a24613a1f866139c7565b6139d3565b6352d1902d90613a326103e4565b9384926122de565b82528180613a4a60048201610a6c565b03915afa80915f92613ada575b50155f14613a8b575050906001613a6c57505b565b613a87905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b9283613aa6613aa0613a9b612515565b6107c8565b916107c8565b03613abb57613ab692935061413b565b613a6a565b613ad6845f918291632a87526960e21b835260048301610ac3565b0390fd5b613afc91925060203d8111613b03575b613af48183610e84565b8101906139ee565b905f613a57565b503d613aea565b613b13306138ea565b613b45613b3f7f000000000000000000000000000000000000000000000000000000000000000061055f565b9161055f565b03613b4c57565b5f63703e46dd60e11b815280613b6460048201610a6c565b0390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b90613b969061340c565b5f5260205260405f2090565b613bb9613bbe91613bb16125ea565b506021613b8c565b612623565b90565b90613bcb90610609565b5f5260205260405f2090565b90565b5490565b5f5260205f2090565b613bf081613bda565b821015613c0a57613c02600491613bde565b910201905f90565b6133d6565b90565b60ff1690565b613c24613c299161065d565b613c12565b90565b613c369054613c18565b90565b60081c90565b613c4b613c5091613c39565b612604565b90565b613c5d9054613c3f565b90565b613c6a6040610eab565b90565b90613ca3613c9a5f613c7d613c60565b94613c94613c8c838301613c2c565b838801612e74565b01613c53565b60208401612e82565b565b613cae90613c6d565b90565b613cc0613cc6919392936107ec565b926107ec565b8201809211613cd157565b612840565b929192613cf4613cef613ce76120b1565b926015613bc1565b613bd7565b93613cfe85613bda565b93613d085f6120ed565b5b80613d1c613d16886107ec565b916107ec565b1015613dbc57613d36613d30888390613be7565b50613c0f565b613d415f8201612623565b613d53613d4d8861055f565b9161055f565b1480613d8f575b613d6e575b50613d69906133c3565b613d09565b613d699194613d826001613d889301610734565b90613cb1565b9390613d5f565b50613da4613d9f60028301613ca5565b613ebd565b613db6613db0866107c8565b916107c8565b14613d5a565b50935050925050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b613df16141c4565b565b613dfb613de9565b565b613e056141c4565b565b613e0f613dfd565b565b613e196141c4565b613e21613e23565b565b613e2b61421f565b565b613e35613e11565b565b613e3f6141c4565b613e47613e49565b565b613e51614265565b565b613e5b613e37565b565b613e679051612e68565b90565b613e74905161055f565b90565b613e8090612e68565b90565b613e8c90613e77565b9052565b916020613eb1929493613eaa60408201965f830190613e83565b01906113af565b565b60200190565b5190565b613ec56121f8565b50613f07613ee06020613ed95f8501613e5d565b9301613e6a565b91613ef8613eec6103e4565b93849260208401613e90565b60208201810382520382610e84565b613f19613f1382613eb9565b91613eb3565b2090565b1b90565b91906008613f41910291613f3b60018060a01b0384613f1d565b92613f1d565b9181191691161790565b90565b9190613f64613f5f613f6c93610609565b613f4b565b908354613f21565b9055565b613f8291613f7c6125ea565b91613f4e565b565b5f613f93613f98926021613b8c565b613f70565b565b613fad63ffffffff60e01b5f3516613ba2565b80613fc8613fc2613fbd5f612e2c565b61055f565b9161055f565b036142a35763ffffffff60e01b5f3516614284565b5f63d92e233d60e01b815280613ff560048201610a6c565b0390fd5b614014905f9182916322a2d07b60e21b8352600483016113bc565b0390fd5b614021906103f6565b9052565b91602061404692949361403f60408201965f830190614018565b01906113af565b565b6140625f9283926310ae11a960e31b845260048401614025565b0390fd5b9061407760018060a01b039161162c565b9181191691161790565b9061409661409161409d92610609565b613f4b565b8254614066565b9055565b6140b06140b592916021613b8c565b614081565b565b9160206140d89294936140d160408201965f8301906113af565b01906107cb565b565b906140ef6140e983839061267a565b15610443565b6140f7575050565b6141115f92839263e2517d3f60e01b8452600484016140b7565b0390fd5b61411d6125ea565b506141385f61413261412d612515565b6142c1565b01612623565b90565b90614145826142c4565b816141707fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91610609565b906141796103e4565b8061418381610a6c565b0390a261418f81613eb9565b6141a161419b5f6120ed565b916107ec565b115f146141b5576141b191614394565b505b565b50506141bf614319565b6141b3565b6141d56141cf6143c3565b15610443565b6141db57565b5f631afcd79f60e31b8152806141f360048201610a6c565b0390fd5b6141ff6141c4565b614207614209565b565b61421d614214613b68565b5f809101612f00565b565b6142276141f7565b565b6142316141c4565b614239614248565b565b6142456001611a76565b90565b6142636142536143e1565b5f61425c61423b565b9101612f55565b565b61426d614229565b565b9190614282905f60208501940190614018565b565b61429f905f91829163c2a825f560e01b83526004830161426f565b0390fd5b5f8091368280378136915af43d5f803e5f146142bd573d5ff35b3d5ffd5b90565b803b6142d86142d25f6120ed565b916107ec565b146142fa576142f8905f6142f26142ed612515565b6142c1565b01614081565b565b614315905f918291634c9c8ce360e01b8352600483016113bc565b0390fd5b3461432c6143265f6120ed565b916107ec565b1161433357565b5f63b398979f60e01b81528061434b60048201610a6c565b0390fd5b606090565b9061436661436183610ec0565b610eab565b918252565b3d5f146143865761437b3d614354565b903d5f602084013e5b565b61438e61434f565b90614384565b5f806143c0936143a261434f565b508390602081019051915af4906143b761436b565b90919091614405565b90565b6143cb61206d565b506143de5f6143d8613dc5565b01612bcd565b90565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0090565b906144199061441261434f565b5015610443565b5f146144255750614489565b61442e82613eb9565b61444061443a5f6120ed565b916107ec565b148061446e575b61444f575090565b61446a905f918291639996b31560e01b8352600483016113bc565b0390fd5b50803b61448361447d5f6120ed565b916107ec565b14614447565b61449281613eb9565b6144a461449e5f6120ed565b916107ec565b115f146144b357805190602001fd5b5f63d6bda27560e01b8152806144cb60048201610a6c565b0390fdfea164736f6c634300081a000a /// ``` #[rustfmt::skip] #[allow(clippy::all)] pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static( - b"`\x80`@R`\x046\x10\x15a\0\x15W[6a4\xCEW\0[a\0\x1F_5a\x03\xCEV[\x80c\x01\xFF\xC9\xA7\x14a\x03\xC9W\x80c\x05\xD6N8\x14a\x03\xC4W\x80c\n\xA8\xB1\x10\x14a\x03\xBFW\x80c\x12\xD9\x1C\x88\x14a\x03\xBAW\x80c\x18\x05m\xC2\x14a\x03\xB5W\x80c\x19\xE8.a\x14a\x03\xB0W\x80c$\x8A\x9C\xA3\x14a\x03\xABW\x80c//\xF1]\x14a\x03\xA6W\x80c2'?a\x14a\x03\xA1W\x80c6V\x8A\xBE\x14a\x03\x9CW\x80cE>\xCC\xEA\x14a\x03\x97W\x80cF\xD1c\xAA\x14a\x03\x92W\x80cI\x14t\x11\x14a\x03\x8DW\x80cIb\xF8\x8F\x14a\x03\x88W\x80cM\xE8\xAD\xDC\x14a\x03\x83W\x80cN\x9C\x92\x9A\x14a\x03~W\x80cO\x1E\xF2\x86\x14a\x03yW\x80cP\x95\xAFd\x14a\x03tW\x80cR\xD1\x90-\x14a\x03oW\x80cT\xDE# \x14a\x03jW\x80c\\\x97Z\xBB\x14a\x03eW\x80c`#V\xE3\x14a\x03`W\x80cf\xC3hu\x14a\x03[W\x80cr\xB5\x03-\x14a\x03VW\x80cu\xB28\xFC\x14a\x03QW\x80cw\xAB,\xF3\x14a\x03LW\x80c}\xF9*\xDA\x14a\x03GW\x80c\x88\xC4\x7Fh\x14a\x03BW\x80c\x8A\x19\xC8\xBC\x14a\x03=W\x80c\x8A\x7F\xE6\x0F\x14a\x038W\x80c\x90\x83\x7F\xF4\x14a\x033W\x80c\x91\xD1HT\x14a\x03.W\x80c\x94\x80\xE4\xDD\x14a\x03)W\x80c\x94\x94\xF4&\x14a\x03$W\x80c\x96\x08Vs\x14a\x03\x1FW\x80c\x97\"\xF4\xB9\x14a\x03\x1AW\x80c\x9E\x87\x05\x85\x14a\x03\x15W\x80c\xA2\x17\xFD\xDF\x14a\x03\x10W\x80c\xA4W\xAF=\x14a\x03\x0BW\x80c\xA4\xB3-\xE8\x14a\x03\x06W\x80c\xA7\xFAo\x98\x14a\x03\x01W\x80c\xAA\xF5\xEBh\x14a\x02\xFCW\x80c\xAD<\xB1\xCC\x14a\x02\xF7W\x80c\xB5K+\x9E\x14a\x02\xF2W\x80c\xB6`\x84\t\x14a\x02\xEDW\x80c\xBA\x05\xBB\xF5\x14a\x02\xE8W\x80c\xC0tI\xE2\x14a\x02\xE3W\x80c\xC5P\xD98\x14a\x02\xDEW\x80c\xCB\xB6\xD6\xBD\x14a\x02\xD9W\x80c\xD2zo\x06\x14a\x02\xD4W\x80c\xD4_\xF5\x82\x14a\x02\xCFW\x80c\xD5Gt\x1F\x14a\x02\xCAW\x80c\xDB\x8A\x17:\x14a\x02\xC5W\x80c\xDDvJ\xBF\x14a\x02\xC0W\x80c\xE0}\xEC)\x14a\x02\xBBW\x80c\xE1\xA4R\x18\x14a\x02\xB6W\x80c\xE2~\x05\xC1\x14a\x02\xB1W\x80c\xF3\xC9\xB3\x11\x14a\x02\xACWc\xF7\xCBx\x9A\x03a\0\x0EWa\x1F\xC4V[a\x1F\x80V[a\x1F\x13V[a\x1E\xDEV[a\x1EuV[a\x1E\x0CV[a\x1D\x9AV[a\x1DWV[a\x1D\"V[a\x1C\xB4V[a\x1CDV[a\x1B\x82V[a\x1BLV[a\x1A\xDEV[a\x1A\x9AV[a\x1A.V[a\x19\xEAV[a\x18\xBBV[a\x18HV[a\x17\xDBV[a\x17vV[a\x16TV[a\x15\xE4V[a\x15uV[a\x15\x1FV[a\x14\xD0V[a\x14aV[a\x14+V[a\x13\xF6V[a\x13\xC1V[a\x13jV[a\x13(V[a\x12\xB9V[a\x12KV[a\x11\xDBV[a\x11vV[a\x11AV[a\x11\x0CV[a\x10\xA8V[a\x10sV[a\x10\x06V[a\x0F\xD1V[a\x0FxV[a\x0E\x1CV[a\rmV[a\r(V[a\x0C\xBBV[a\x0C\x88V[a\x0C5V[a\x0B\xC9V[a\x0B\x94V[a\x0B*V[a\n\xC8V[a\naV[a\t\x9AV[a\t\x17V[a\x08rV[a\x05\x0FV[a\x04ZV[`\xE0\x1C\x90V[`@Q\x90V[_\x80\xFD[_\x80\xFD[_\x80\xFD[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90V[a\x03\xFB\x81a\x03\xE6V[\x03a\x04\x02WV[_\x80\xFD[\x90P5\x90a\x04\x13\x82a\x03\xF2V[V[\x90` \x82\x82\x03\x12a\x04.Wa\x04+\x91_\x01a\x04\x06V[\x90V[a\x03\xDEV[\x15\x15\x90V[a\x04A\x90a\x043V[\x90RV[\x91\x90a\x04X\x90_` \x85\x01\x94\x01\x90a\x048V[V[4a\x04\x8AWa\x04\x86a\x04ua\x04p6`\x04a\x04\x15V[a\x1F\xFDV[a\x04}a\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[_\x91\x03\x12a\x04\x99WV[a\x03\xDEV[\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xBD\x90`\x08a\x04\xC2\x93\x02a\x04\x9EV[a\x04\xA2V[\x90V[\x90a\x04\xD0\x91Ta\x04\xADV[\x90V[a\x04\xDF_`\x10\x90a\x04\xC5V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xF6\x90a\x04\xE2V[\x90RV[\x91\x90a\x05\r\x90_` \x85\x01\x94\x01\x90a\x04\xEDV[V[4a\x05?Wa\x05\x1F6`\x04a\x04\x8FV[a\x05;a\x05*a\x04\xD3V[a\x052a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[`\x01\x80`\xA0\x1B\x03\x16\x90V[a\x05X\x90a\x05DV[\x90V[a\x05d\x81a\x05OV[\x03a\x05kWV[_\x80\xFD[\x90P5\x90a\x05|\x82a\x05[V[V[a\x05\x87\x81a\x04\xE2V[\x03a\x05\x8EWV[_\x80\xFD[\x90P5\x90a\x05\x9F\x82a\x05~V[V[\x91\x90`@\x83\x82\x03\x12a\x05\xC9W\x80a\x05\xBDa\x05\xC6\x92_\x86\x01a\x05oV[\x93` \x01a\x05\x92V[\x90V[a\x03\xDEV[\x90V[a\x05\xE5a\x05\xE0a\x05\xEA\x92a\x05DV[a\x05\xCEV[a\x05DV[\x90V[a\x05\xF6\x90a\x05\xD1V[\x90V[a\x06\x02\x90a\x05\xEDV[\x90V[\x90a\x06\x0F\x90a\x05\xF9V[_R` R`@_ \x90V[a\x06/a\x06*a\x064\x92a\x04\xE2V[a\x05\xCEV[a\x04\xE2V[\x90V[\x90a\x06A\x90a\x06\x1BV[_R` R`@_ \x90V[_\x1C\x90V[a\x06^a\x06c\x91a\x06MV[a\x04\xA2V[\x90V[a\x06p\x90Ta\x06RV[\x90V[`@\x1C\x90V[a\x06\x85a\x06\x8A\x91a\x06sV[a\x04\xA2V[\x90V[a\x06\x97\x90Ta\x06yV[\x90V[`\x80\x1C\x90V[a\x06\xACa\x06\xB1\x91a\x06\x9AV[a\x04\xA2V[\x90V[a\x06\xBE\x90Ta\x06\xA0V[\x90V[\x90V[a\x06\xD0a\x06\xD5\x91a\x06MV[a\x06\xC1V[\x90V[a\x06\xE2\x90Ta\x06\xC4V[\x90V[a\xFF\xFF\x16\x90V[a\x06\xF8a\x06\xFD\x91a\x06MV[a\x06\xE5V[\x90V[a\x07\n\x90Ta\x06\xECV[\x90V[\x90V[a\x07\x1Ca\x07!\x91a\x06MV[a\x07\rV[\x90V[a\x07.\x90Ta\x07\x10V[\x90V[\x90a\x07@a\x07E\x92`Ua\x06\x05V[a\x067V[a\x07P_\x82\x01a\x06fV[\x91a\x07\\_\x83\x01a\x06\x8DV[\x91a\x07h_\x82\x01a\x06\xB4V[\x91a\x07u`\x01\x83\x01a\x06\xD8V[\x91a\x07\x82`\x02\x82\x01a\x07\0V[\x91a\x07\x8F`\x03\x83\x01a\x07$V[\x91a\x07\x9C`\x04\x82\x01a\x07$V[\x91a\x07\xB5`\x06a\x07\xAE`\x05\x85\x01a\x07$V[\x93\x01a\x06\xD8V[\x90V[\x90V[a\x07\xC4\x90a\x07\xB8V[\x90RV[a\xFF\xFF\x16\x90V[a\x07\xD8\x90a\x07\xC8V[\x90RV[\x90V[a\x07\xE8\x90a\x07\xDCV[\x90RV[\x96\x94\x92\x90\x99\x98\x97\x95\x93\x91a\x01 \x88\x01\x9A_\x89\x01a\x08\x08\x91a\x04\xEDV[` \x88\x01a\x08\x15\x91a\x04\xEDV[`@\x87\x01a\x08\"\x91a\x04\xEDV[``\x86\x01a\x08/\x91a\x07\xBBV[`\x80\x85\x01a\x08<\x91a\x07\xCFV[`\xA0\x84\x01a\x08I\x91a\x07\xDFV[`\xC0\x83\x01a\x08V\x91a\x07\xDFV[`\xE0\x82\x01a\x08c\x91a\x07\xDFV[a\x01\0\x01a\x08p\x91a\x07\xBBV[V[4a\x08\xADWa\x08\xA9a\x08\x8Ea\x08\x886`\x04a\x05\xA1V[\x90a\x071V[\x95a\x08\xA0\x99\x97\x99\x95\x91\x95\x94\x92\x94a\x03\xD4V[\x99\x8A\x99\x8Aa\x07\xECV[\x03\x90\xF3[a\x03\xDAV[a\x08\xBB\x81a\x07\xB8V[\x03a\x08\xC2WV[_\x80\xFD[\x90P5\x90a\x08\xD3\x82a\x08\xB2V[V[\x91\x90`@\x83\x82\x03\x12a\x08\xFDW\x80a\x08\xF1a\x08\xFA\x92_\x86\x01a\x05oV[\x93` \x01a\x08\xC6V[\x90V[a\x03\xDEV[\x91\x90a\t\x15\x90_` \x85\x01\x94\x01\x90a\x07\xDFV[V[4a\tHWa\tDa\t3a\t-6`\x04a\x08\xD5V[\x90a \x95V[a\t;a\x03\xD4V[\x91\x82\x91\x82a\t\x02V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\tda\t_a\ti\x92a\tMV[a\x05\xCEV[a\x07\xC8V[\x90V[a\twa*\xF8a\tPV[\x90V[a\t\x82a\tlV[\x90V[\x91\x90a\t\x98\x90_` \x85\x01\x94\x01\x90a\x07\xCFV[V[4a\t\xCAWa\t\xAA6`\x04a\x04\x8FV[a\t\xC6a\t\xB5a\tzV[a\t\xBDa\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[_\x80\xFD[_\x80\xFD[_\x80\xFD[\x90\x91\x82`\x1F\x83\x01\x12\x15a\n\x13W\x815\x91`\x01\x80`@\x1B\x03\x83\x11a\n\x0EW` \x01\x92` \x83\x02\x84\x01\x11a\n\tWV[a\t\xD7V[a\t\xD3V[a\t\xCFV[\x91\x90\x91`@\x81\x84\x03\x12a\nWWa\n1\x83_\x83\x01a\x05oV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\nRWa\nN\x92\x01a\t\xDBV[\x90\x91V[a\x03\xE2V[a\x03\xDEV[_\x01\x90V[4a\n\x90Wa\nza\nt6`\x04a\n\x18V[\x91a!fV[a\n\x82a\x03\xD4V[\x80a\n\x8C\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90` \x82\x82\x03\x12a\n\xAEWa\n\xAB\x91_\x01a\x08\xC6V[\x90V[a\x03\xDEV[\x91\x90a\n\xC6\x90_` \x85\x01\x94\x01\x90a\x07\xBBV[V[4a\n\xF8Wa\n\xF4a\n\xE3a\n\xDE6`\x04a\n\x95V[a!\x9EV[a\n\xEBa\x03\xD4V[\x91\x82\x91\x82a\n\xB3V[\x03\x90\xF3[a\x03\xDAV[\x91\x90`@\x83\x82\x03\x12a\x0B%W\x80a\x0B\x19a\x0B\"\x92_\x86\x01a\x08\xC6V[\x93` \x01a\x05oV[\x90V[a\x03\xDEV[4a\x0BYWa\x0BCa\x0B=6`\x04a\n\xFDV[\x90a!\xF2V[a\x0BKa\x03\xD4V[\x80a\x0BU\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[a\x0Bn\x90`\x08a\x0Bs\x93\x02a\x04\x9EV[a\x06\xE5V[\x90V[\x90a\x0B\x81\x91Ta\x0B^V[\x90V[a\x0B\x91`\x01`\x10\x90a\x0BvV[\x90V[4a\x0B\xC4Wa\x0B\xA46`\x04a\x04\x8FV[a\x0B\xC0a\x0B\xAFa\x0B\x84V[a\x0B\xB7a\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[4a\x0B\xF8Wa\x0B\xE2a\x0B\xDC6`\x04a\n\xFDV[\x90a!\xFEV[a\x0B\xEAa\x03\xD4V[\x80a\x0B\xF4\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x0C\x14a\x0C\x0Fa\x0C\x19\x92a\x0B\xFDV[a\x05\xCEV[a\x07\xC8V[\x90V[a\x0C'a>\x80a\x0C\0V[\x90V[a\x0C2a\x0C\x1CV[\x90V[4a\x0CeWa\x0CE6`\x04a\x04\x8FV[a\x0Caa\x0CPa\x0C*V[a\x0CXa\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[\x90` \x82\x82\x03\x12a\x0C\x83Wa\x0C\x80\x91_\x01a\x05oV[\x90V[a\x03\xDEV[4a\x0C\xB6Wa\x0C\xA0a\x0C\x9B6`\x04a\x0CjV[a#V[\x90V[a\x10pa\x10ZV[\x90V[4a\x10\xA3Wa\x10\x836`\x04a\x04\x8FV[a\x10\x9Fa\x10\x8Ea\x10hV[a\x10\x96a\x03\xD4V[\x91\x82\x91\x82a\t\x85V[\x03\x90\xF3[a\x03\xDAV[4a\x10\xD8Wa\x10\xB86`\x04a\x04\x8FV[a\x10\xD4a\x10\xC3a%\rV[a\x10\xCBa\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[\x7F\x19D\x9AJ\xD5~@\xA5\xAAw\xE7\x85\xB4S\x9ES\xBA\x9E\x7F\xED\xBFpv8\x8E\xE3\xFB\x1B\xC2\xDD\xEA\x1B\x90V[a\x11\ta\x10\xDDV[\x90V[4a\x116`\x04a\x04\x8FV[a\x1AZa\x1AIa\x1A\x1FV[a\x1AQa\x03\xD4V[\x91\x82\x91\x82a\x04EV[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x1Aza\x1Aua\x1A\x7F\x92a\x1AcV[a\x05\xCEV[a\x07\xDCV[\x90V[a\x1A\x8C`\x01a\x1AfV[\x90V[a\x1A\x97a\x1A\x82V[\x90V[4a\x1A\xCAWa\x1A\xAA6`\x04a\x04\x8FV[a\x1A\xC6a\x1A\xB5a\x1A\x8FV[a\x1A\xBDa\x03\xD4V[\x91\x82\x91\x82a\t\x02V[\x03\x90\xF3[a\x03\xDAV[a\x1A\xDB_`\x18\x90a\x04\xC5V[\x90V[4a\x1B\x0EWa\x1A\xEE6`\x04a\x04\x8FV[a\x1B\na\x1A\xF9a\x1A\xCFV[a\x1B\x01a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[\x90` \x80a\x1B5\x93a\x1B+_\x82\x01Q_\x86\x01\x90a\x16\xB0V[\x01Q\x91\x01\x90a\x16\xB0V[V[\x91\x90a\x1BJ\x90_`@\x85\x01\x94\x01\x90a\x1B\x13V[V[4a\x1B}Wa\x1Bya\x1Bha\x1Bb6`\x04a\r\xA2V[\x90a*\xF5V[a\x1Bpa\x03\xD4V[\x91\x82\x91\x82a\x1B7V[\x03\x90\xF3[a\x03\xDAV[4a\x1B\xB3Wa\x1B\xAFa\x1B\x9Ea\x1B\x986`\x04a\r\xA2V[\x90a+\x1DV[a\x1B\xA6a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[a\x1B\xC1\x81a\x07\xDCV[\x03a\x1B\xC8WV[_\x80\xFD[\x90P5\x90a\x1B\xD9\x82a\x1B\xB8V[V[a\x1B\xE4\x81a\x07\xC8V[\x03a\x1B\xEBWV[_\x80\xFD[\x90P5\x90a\x1B\xFC\x82a\x1B\xDBV[V[`\x80\x81\x83\x03\x12a\x1C?Wa\x1C\x14\x82_\x83\x01a\x05oV[\x92a\x1C\x81a\n\\V[\x03\x90\xF3[a\x03\xDAV[\x90V[a\x1F^a\x1FYa\x1Fc\x92a\x1FGV[a\x05\xCEV[a\x04\xE2V[\x90V[a\x1Frb\xEDN\0a\x1FJV[\x90V[a\x1F}a\x1FfV[\x90V[4a\x1F\xB0Wa\x1F\x906`\x04a\x04\x8FV[a\x1F\xACa\x1F\x9Ba\x1FuV[a\x1F\xA3a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[a\x1F\xC1_`\x08\x90a\x04\xC5V[\x90V[4a\x1F\xF4Wa\x1F\xD46`\x04a\x04\x8FV[a\x1F\xF0a\x1F\xDFa\x1F\xB5V[a\x1F\xE7a\x03\xD4V[\x91\x82\x91\x82a\x04\xFAV[\x03\x90\xF3[a\x03\xDAV[_\x90V[a \x05a\x1F\xF9V[P\x80a a \x1Acye\xDB\x0B`\xE0\x1Ba\x03\xE6V[\x91a\x03\xE6V[\x14\x90\x81\x15a -W[P\x90V[a 7\x91Pa4\xD3V[_a )V[_\x90V[\x90a K\x90a\x05\xF9V[_R` R`@_ \x90V[a `\x90a\x07\xB8V[\x90V[\x90a m\x90a WV[_R` R`@_ \x90V[a \x8Da \x88a \x92\x92a\x16\x19V[a\x05\xCEV[a\x07\xDCV[\x90V[a \xBA\x91a \xB0a \xB5\x92a \xA8a =V[P`\x11a AV[a cV[a\x07$V[\x80a \xCDa \xC7_a yV[\x91a\x07\xDCV[\x14_\x14a \xE1WPa \xDDa\x18\x9CV[[\x90V[a \xDEV[`\x01\x80`@\x1B\x03\x81\x11a \xFCW` \x80\x91\x02\x01\x90V[a\x0E`V[\x90\x92\x91\x92a!\x16a!\x11\x82a \xE6V[a\x0E\x9BV[\x93\x81\x85R` \x80\x86\x01\x92\x02\x83\x01\x92\x81\x84\x11a!SW\x91[\x83\x83\x10a!:WPPPPV[` \x80\x91a!H\x84\x86a\x04\x06V[\x81R\x01\x92\x01\x91a!-V[a\t\xD7V[a!c\x916\x91a!\x01V[\x90V[a!\x82\x92a!|\x91a!va5\x0BV[\x92a!XV[\x90a5FV[V[_\x90V[\x90a!\x92\x90a WV[_R` R`@_ \x90V[`\x01a!\xBFa!\xC5\x92a!\xAFa!\x84V[P_a!\xB9a6\xBAV[\x01a!\x88V[\x01a\x06\xD8V[\x90V[\x90a!\xE3\x91a!\xDEa!\xD9\x82a!\x9EV[a6\xDEV[a!\xE5V[V[\x90a!\xEF\x91a6\xF2V[PV[\x90a!\xFC\x91a!\xC8V[V[\x90\x80a\"\x19a\"\x13a\"\x0Ea7\xA9V[a\x05OV[\x91a\x05OV[\x03a\"*Wa\"'\x91a7\xB6V[PV[_c3K\xD9\x19`\xE1\x1B\x81R\x80a\"B`\x04\x82\x01a\n\\V[\x03\x90\xFD[a\"O\x90a\x05\xD1V[\x90V[a\"[\x90a\"FV[\x90V[a\"g\x90a\x05\xEDV[\x90V[`\xE0\x1B\x90V[\x90PQ\x90a\"}\x82a\x03\xF2V[V[\x90\x92\x91\x92a\"\x94a\"\x8F\x82a \xE6V[a\x0E\x9BV[\x93\x81\x85R` \x80\x86\x01\x92\x02\x83\x01\x92\x81\x84\x11a\"\xD1W\x91[\x83\x83\x10a\"\xB8WPPPPV[` \x80\x91a\"\xC6\x84\x86a\"pV[\x81R\x01\x92\x01\x91a\"\xABV[a\t\xD7V[\x90\x80`\x1F\x83\x01\x12\x15a\"\xF4W\x81` a\"\xF1\x93Q\x91\x01a\"\x7FV[\x90V[a\t\xCFV[\x90` \x82\x82\x03\x12a#'W_\x82\x01Q`\x01\x80`@\x1B\x03\x81\x11a#\"Wa#\x1F\x92\x01a\"\xD6V[\x90V[a\x03\xE2V[a\x03\xDEV[a#4a\x03\xD4V[=_\x82>=\x90\xFD[a#Da5\x0BV[a#o_a#Ya#T\x84a\"RV[a\"^V[cn%\xB9x\x90a#ga\x03\xD4V[\x93\x84\x92a\"jV[\x82R\x81\x80a#\x7F`\x04\x82\x01a\n\\V[\x03\x91Z\xFA\x80\x15a#\xFFWa#\x9B\x91_\x91a#\xDDW[P\x82a5FV[a#\xC5\x7FM<0\xF5\x99?\x19\"\xA7y4Z\x0F~\xC1\xA1p\xF1\xE5.\x9D#\x08$\xF9\xC1~cYl\x90m\x91a\x05\xF9V[\x90a#\xCEa\x03\xD4V[\x80a#\xD8\x81a\n\\V[\x03\x90\xA2V[a#\xF9\x91P=\x80_\x83>a#\xF1\x81\x83a\x0EtV[\x81\x01\x90a\"\xF9V[_a#\x94V[a#,V[\x90a$\x0E\x90a\x05\xF9V[_R` R`@_ \x90V[a$1a$6\x91a$)a =V[P`\x1Ba$\x04V[a\x07$V[\x90V[\x90a$K\x91a$Fa8oV[a$MV[V[\x90a$`\x91a$[\x81a9)V[a9\x85V[V[\x90a$l\x91a$9V[V[a$\x7F\x90a$za:\x83V[a$\xCDV[\x90V[\x90V[a$\x99a$\x94a$\x9E\x92a$\x82V[a\x16\x1CV[a\x07\xB8V[\x90V[a$\xCA\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCa$\x85V[\x90V[Pa$\xD6a$\xA1V[\x90V[a$\xE9a$\xE4a!\x84V[a$nV[\x90V[a$\xF8a$\xFD\x91a\x06MV[a\x12\x10V[\x90V[a%\n\x90Ta$\xECV[\x90V[a%\x15a\x1F\xF9V[Pa%(_a%\"a:\xE1V[\x01a%\0V[\x90V[_\x90V[a%Fa%K\x91a%>a%+V[P`Va\r\xE5V[a\x06fV[\x90V[a%s\x91a%ia%n\x92a%aa%+V[P`Wa\r\xCFV[a\r\xE5V[a\x06fV[\x90V[_\x90V[\x90a%\x84\x90a\x05\xF9V[_R` R`@_ \x90V[`\x01\x80`\xA0\x1B\x03\x16\x90V[a%\xA7a%\xAC\x91a\x06MV[a%\x90V[\x90V[a%\xB9\x90Ta%\x9BV[\x90V[a%\xD3a%\xD8\x91a%\xCBa%vV[P`\x06a%zV[a%\xAFV[\x90V[a%\xED\x90a%\xE7a%vV[Pa;\x1BV[\x90V[\x90a%\xFA\x90a\x05\xF9V[_R` R`@_ \x90V[a&5\x91_a&*a&0\x93a&\x1Aa\x1F\xF9V[P\x82a&$a6\xBAV[\x01a!\x88V[\x01a%\xF0V[a%\0V[\x90V[a&Oa&T\x91a&Ga%+V[P`#a\r\xE5V[a\x06fV[\x90V[\x90a&a\x90a\x04\xE2V[\x90RV[\x90a&o\x90a\x07\xB8V[\x90RV[\x90a&}\x90a\x07\xC8V[\x90RV[\x90a&\x8B\x90a\x07\xDCV[\x90RV[a&\x9Aa\x01 a\x0E\x9BV[\x90V[\x90a'{a'q`\x06a&\xAEa&\x8FV[\x94a&\xC5a&\xBD_\x83\x01a\x06fV[_\x88\x01a&WV[a&\xDCa&\xD3_\x83\x01a\x06\x8DV[` \x88\x01a&WV[a&\xF3a&\xEA_\x83\x01a\x06\xB4V[`@\x88\x01a&WV[a'\x0Ba'\x02`\x01\x83\x01a\x06\xD8V[``\x88\x01a&eV[a'#a'\x1A`\x02\x83\x01a\x07\0V[`\x80\x88\x01a&sV[a';a'2`\x03\x83\x01a\x07$V[`\xA0\x88\x01a&\x81V[a'Sa'J`\x04\x83\x01a\x07$V[`\xC0\x88\x01a&\x81V[a'ka'b`\x05\x83\x01a\x07$V[`\xE0\x88\x01a&\x81V[\x01a\x06\xD8V[a\x01\0\x84\x01a&eV[V[a'\x86\x90a&\x9DV[\x90V[a'\x93\x90Qa\x04\xE2V[\x90V[a'\xAAa'\xA5a'\xAF\x92a\x16\x19V[a\x05\xCEV[a\x04\xE2V[\x90V[a'\xBC\x90Qa\x07\xB8V[\x90V[a'\xC9\x90Qa\x07\xDCV[\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[a'\xEFa'\xF5\x91\x93\x92\x93a\x07\xDCV[\x92a\x07\xDCV[\x82\x03\x91\x82\x11a(\0WV[a'\xCCV[a(\x14a(\x1A\x91\x93\x92\x93a\x07\xDCV[\x92a\x07\xDCV[\x91a(&\x83\x82\x02a\x07\xDCV[\x92\x81\x84\x04\x14\x90\x15\x17\x15a(5WV[a'\xCCV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[a(Za(`\x91a\x07\xDCV[\x91a\x07\xDCV[\x90\x81\x15a(kW\x04\x90V[a(:V[\x92\x91\x90\x92a(\x99a(\x94a(\x82a =V[\x95a(\x8F`U\x85\x90a\x06\x05V[a\x067V[a'}V[\x91a(\xA5_\x84\x01a'\x89V[a(\xB7a(\xB1_a'\x96V[\x91a\x04\xE2V[\x14a)xW\x90a(\xD4\x91\x90a(\xCE``\x85\x01a'\xB2V[\x91a\x92a*1a*\x13V[P`Ua\x06\x05V[a\x067V[a'}V[\x90V[a*P`@a\x0E\x9BV[\x90V[a*[a*FV[\x90` \x80\x83a*ha)\x95V[\x81R\x01a*sa)\x95V[\x81RPPV[a*\x81a*SV[\x90V[\x90a*\x8E\x90a\x06\x1BV[_R` R`@_ \x90V[\x90a*\xA4\x90a\x05\xF9V[_R` R`@_ \x90V[\x90a*\xE7a*\xDE`\x01a*\xC1a*FV[\x94a*\xD8a*\xD0_\x83\x01a\x07$V[_\x88\x01a&\x81V[\x01a\x07$V[` \x84\x01a&\x81V[V[a*\xF2\x90a*\xB0V[\x90V[a+\x1A\x91a+\x10a+\x15\x92a+\x08a*yV[P`\x10a*\x84V[a*\x9AV[a*\xE9V[\x90V[a+B\x91a+8a+=\x92a+0a%+V[P`Xa\r\xCFV[a\r\xE5V[a\x06fV[\x90V[a+Qa+V\x91a\x06sV[a\x12\x10V[\x90V[a+c\x90Ta+EV[\x90V[a+za+ua+\x7F\x92a\x1AcV[a\x05\xCEV[a\x04\xE2V[\x90V[a+\x8B\x90a\x05\xEDV[\x90V[\x90a+\x9F`\x01\x80`@\x1B\x03\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x90a+\xC1a+\xBCa+\xC8\x92a\x06\x1BV[a+\xA9V[\x82Ta+\x8EV[\x90UV[`@\x1B\x90V[\x90a+\xE1`\xFF`@\x1B\x91a+\xCCV[\x91\x81\x19\x16\x91\x16\x17\x90V[a+\xF4\x90a\x043V[\x90V[\x90V[\x90a,\x0Fa,\na,\x16\x92a+\xEBV[a+\xF7V[\x82Ta+\xD2V[\x90UV[a,#\x90a+fV[\x90RV[\x91\x90a,:\x90_` \x85\x01\x94\x01\x90a,\x1AV[V[\x90\x91\x92a,Ga=>V[\x93a,\\a,V_\x87\x01a+YV[\x15a\x043V[\x93a,h_\x87\x01a\x06fV[\x80a,{a,u_a'\x96V[\x91a\x04\xE2V[\x14\x80a-\x95W[\x90a,\x96a,\x90`\x01a+fV[\x91a\x04\xE2V[\x14\x80a-mW[a,\xA8\x90\x91\x15a\x043V[\x90\x81a-\\W[Pa-@Wa,\xD8\x93a,\xCDa,\xC5`\x01a+fV[_\x89\x01a+\xACV[\x85a-.W[a1MV[a,\xE0W[PV[a,\xED\x90_\x80\x91\x01a+\xFAV[`\x01a-%\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a-\x1Ca\x03\xD4V[\x91\x82\x91\x82a,'V[\x03\x90\xA1_a,\xDDV[a-;`\x01_\x89\x01a+\xFAV[a,\xD3V[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a-X`\x04\x82\x01a\n\\V[\x03\x90\xFD[a-g\x91P\x15a\x043V[_a,\xAFV[Pa,\xA8a-z0a+\x82V[;a-\x8Da-\x87_a yV[\x91a\x07\xDCV[\x14\x90Pa,\x9DV[P\x85a,\x82V[a-\xB0a-\xABa-\xB5\x92a\x16\x19V[a\x05\xCEV[a\x05DV[\x90V[a-\xC1\x90a-\x9CV[\x90V[a-\xCE`@a\x0E\x9BV[\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x02\x11\x15a-\xEFWV[a-\xD1V[\x90a-\xFE\x82a-\xE5V[V[\x90a.\n\x90a-\xF4V[\x90RV[\x90a.\x18\x90a\x05OV[\x90RV[a.0a.+a.5\x92a\x07\xDCV[a\x05\xCEV[a\x07\xC8V[\x90V[a.B`\xC0a\x0E\x9BV[\x90V[\x90a.O\x90a\x043V[\x90RV[\x90a.]\x90a WV[_R` R`@_ \x90V[a.s\x90Qa\x043V[\x90V[\x90a.\x82`\xFF\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a.\xA1a.\x9Ca.\xA8\x92a+\xEBV[a+\xF7V[\x82Ta.vV[\x90UV[\x90a.\xB8_\x19\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[a.\xD6a.\xD1a.\xDB\x92a\x07\xDCV[a\x05\xCEV[a\x07\xDCV[\x90V[\x90V[\x90a.\xF6a.\xF1a.\xFD\x92a.\xC2V[a.\xDEV[\x82Ta.\xACV[\x90UV[a/\x0B\x90Qa\x07\xC8V[\x90V[\x90a/\x1Ba\xFF\xFF\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[a/9a/4a/>\x92a\x07\xC8V[a\x05\xCEV[a\x07\xC8V[\x90V[\x90V[\x90a/Ya/Ta/`\x92a/%V[a/AV[\x82Ta/\x0EV[\x90UV[\x90a/\xF3`\xA0`\x05a/\xF9\x94a/\x87_\x82\x01a/\x81_\x88\x01a.iV[\x90a.\x8CV[a/\xA0`\x01\x82\x01a/\x9A` \x88\x01a'\xBFV[\x90a.\xE1V[a/\xB9`\x02\x82\x01a/\xB3`@\x88\x01a'\xBFV[\x90a.\xE1V[a/\xD2`\x03\x82\x01a/\xCC``\x88\x01a'\xBFV[\x90a.\xE1V[a/\xEB`\x04\x82\x01a/\xE5`\x80\x88\x01a'\xBFV[\x90a.\xE1V[\x01\x92\x01a/\x01V[\x90a/DV[V[\x90a0\x05\x91a/dV[V[`\x80\x1B\x90V[\x90a0\x1Da\xFF\xFF`\x80\x1B\x91a0\x07V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a06V[\x90`\x01\x92\x90_\x80\x91a1\xF1a\x1E\xC5V[a1\xFA\x90a.\x1CV[\x93a2\x03a.8V[\x96_\x88\x01\x90a2\x11\x91a.EV[` \x87\x01\x90a2\x1F\x91a&\x81V[`@\x86\x01\x90a2-\x91a&\x81V[a26\x90a yV[``\x85\x01\x90a2D\x91a&\x81V[a2M\x90a yV[`\x80\x84\x01\x90a2[\x91a&\x81V[`\xA0\x83\x01\x90a2i\x91a&sV[`\x02\x90a2u\x91a.SV[\x90a2\x7F\x91a/\xFBV[`\x01a2\x8C\x90`\x05a.\x8CV[a2\x97\x90`\x01a0'V[`\x01a2\xA2\x90a+fV[a2\xAC\x90_a+\xACV[a2\xB4a0fV[a2\xBE\x90_a0\x93V[a2\xC6a0\xD2V[a2\xD0\x90_a1\x01V[a2\xD8a0\xD2V[a2\xE3\x90`\x01a+\xACV[a2\xEBa1@V[a2\xF6\x90`\x01a0\x93V[V[\x90a3\x04\x93\x92\x91a,\xFDV[a3\xFDa3\xF8\x84\x87\x84\x91a3cV[a3xV[a4'\x7F\xBE\xB2w\x01\x82\x8FQ[\x03\x06\x9DD\xDAe\x19\xB6\xC4\x91\xDA\x13\xEF\x1C\xA7\x08.a\x99Y\xD1\xF4\x8D\xDB\x91a3\x85V[\x90a40a\x03\xD4V[\x80a4:\x81a\n\\V[\x03\x90\xA2a3F\xDD`\xE1\x1B\x81R\x80a8\xD0`\x04\x82\x01a\n\\V[\x03\x90\xFD[Pa8\xDDa@\x8EV[a9\x0Fa9\t\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05OV[\x91a\x05OV[\x14\x15a8\xB2V[Pa9'a9\"a\x11\xACV[a6\xDEV[V[a92\x90a9\x16V[V[a9=\x90a\x05\xD1V[\x90V[a9I\x90a94V[\x90V[a9U\x90a\x05\xEDV[\x90V[\x90PQ\x90a9e\x82a\x08\xB2V[V[\x90` \x82\x82\x03\x12a9\x80Wa9}\x91_\x01a9XV[\x90V[a\x03\xDEV[\x91\x90a9\xB3` a9\x9Da9\x98\x86a9@V[a9LV[cR\xD1\x90-\x90a9\xABa\x03\xD4V[\x93\x84\x92a\"jV[\x82R\x81\x80a9\xC3`\x04\x82\x01a\n\\V[\x03\x91Z\xFA\x80\x91_\x92a:SW[P\x15_\x14a:\x04WPP\x90`\x01a9\xE5WP[V[a:\0\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[\x92\x83a:\x1Fa:\x19a:\x14a$\xA1V[a\x07\xB8V[\x91a\x07\xB8V[\x03a:4Wa:/\x92\x93Pa@\xB4V[a9\xE3V[a:O\x84_\x91\x82\x91c*\x87Ri`\xE2\x1B\x83R`\x04\x83\x01a\n\xB3V[\x03\x90\xFD[a:u\x91\x92P` =\x81\x11a:|W[a:m\x81\x83a\x0EtV[\x81\x01\x90a9gV[\x90_a9\xD0V[P=a:cV[a:\x8C0a8cV[a:\xBEa:\xB8\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05OV[\x91a\x05OV[\x03a:\xC5WV[_cp>F\xDD`\xE1\x1B\x81R\x80a:\xDD`\x04\x82\x01a\n\\V[\x03\x90\xFD[\x7F\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x90V[\x90a;\x0F\x90a3\x85V[_R` R`@_ \x90V[a;2a;7\x91a;*a%vV[P`!a;\x05V[a%\xAFV[\x90V[\x90a;D\x90a\x05\xF9V[_R` R`@_ \x90V[\x90V[T\x90V[_R` _ \x90V[a;i\x81a;SV[\x82\x10\x15a;\x83Wa;{`\x04\x91a;WV[\x91\x02\x01\x90_\x90V[a3OV[\x90V[`\xFF\x16\x90V[a;\x9Da;\xA2\x91a\x06MV[a;\x8BV[\x90V[a;\xAF\x90Ta;\x91V[\x90V[`\x08\x1C\x90V[a;\xC4a;\xC9\x91a;\xB2V[a%\x90V[\x90V[a;\xD6\x90Ta;\xB8V[\x90V[a;\xE3`@a\x0E\x9BV[\x90V[\x90a<\x1Ca<\x13_a;\xF6a;\xD9V[\x94a<\ra<\x05\x83\x83\x01a;\xA5V[\x83\x88\x01a.\0V[\x01a;\xCCV[` \x84\x01a.\x0EV[V[a<'\x90a;\xE6V[\x90V[a<9a6V[a=/a=)\x86a\x07\xB8V[\x91a\x07\xB8V[\x14a<\xD3V[P\x93PP\x92PPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V[a=jaA=V[V[a=ta=bV[V[a=~aA=V[V[a=\x88a=vV[V[a=\x92aA=V[a=\x9Aa=\x9CV[V[a=\xA4aA\x98V[V[a=\xAEa=\x8AV[V[a=\xB8aA=V[a=\xC0a=\xC2V[V[a=\xCAaA\xDEV[V[a=\xD4a=\xB0V[V[a=\xE0\x90Qa-\xF4V[\x90V[a=\xED\x90Qa\x05OV[\x90V[a=\xF9\x90a-\xF4V[\x90V[a>\x05\x90a=\xF0V[\x90RV[\x91` a>*\x92\x94\x93a>#`@\x82\x01\x96_\x83\x01\x90a=\xFCV[\x01\x90a\x13\x9FV[V[` \x01\x90V[Q\x90V[a>>a!\x84V[Pa>\x80a>Y` a>R_\x85\x01a=\xD6V[\x93\x01a=\xE3V[\x91a>qa>ea\x03\xD4V[\x93\x84\x92` \x84\x01a>\tV[` \x82\x01\x81\x03\x82R\x03\x82a\x0EtV[a>\x92a>\x8C\x82a>2V[\x91a>,V[ \x90V[\x1B\x90V[\x91\x90`\x08a>\xBA\x91\x02\x91a>\xB4`\x01\x80`\xA0\x1B\x03\x84a>\x96V[\x92a>\x96V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x91\x90a>\xDDa>\xD8a>\xE5\x93a\x05\xF9V[a>\xC4V[\x90\x83Ta>\x9AV[\x90UV[a>\xFB\x91a>\xF5a%vV[\x91a>\xC7V[V[_a?\x0Ca?\x11\x92`!a;\x05V[a>\xE9V[V[a?&c\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16a;\x1BV[\x80a?Aa?;a?6_a-\xB8V[a\x05OV[\x91a\x05OV[\x03aB\x1CWc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16aA\xFDV[_c\xD9.#=`\xE0\x1B\x81R\x80a?n`\x04\x82\x01a\n\\V[\x03\x90\xFD[a?\x8D\x90_\x91\x82\x91c\"\xA2\xD0{`\xE2\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[a?\x9A\x90a\x03\xE6V[\x90RV[\x91` a?\xBF\x92\x94\x93a?\xB8`@\x82\x01\x96_\x83\x01\x90a?\x91V[\x01\x90a\x13\x9FV[V[a?\xDB_\x92\x83\x92c\x10\xAE\x11\xA9`\xE3\x1B\x84R`\x04\x84\x01a?\x9EV[\x03\x90\xFD[\x90a?\xF0`\x01\x80`\xA0\x1B\x03\x91a\x16\x1CV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a@\x0Fa@\na@\x16\x92a\x05\xF9V[a>\xC4V[\x82Ta?\xDFV[\x90UV[a@)a@.\x92\x91`!a;\x05V[a?\xFAV[V[\x91` a@Q\x92\x94\x93a@J`@\x82\x01\x96_\x83\x01\x90a\x13\x9FV[\x01\x90a\x07\xBBV[V[\x90a@ha@b\x83\x83\x90a&\x06V[\x15a\x043V[a@pWPPV[a@\x8A_\x92\x83\x92c\xE2Q}?`\xE0\x1B\x84R`\x04\x84\x01a@0V[\x03\x90\xFD[a@\x96a%vV[Pa@\xB1_a@\xABa@\xA6a$\xA1V[aB:V[\x01a%\xAFV[\x90V[\x90a@\xBE\x82aB=V[\x81a@\xE9\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x91a\x05\xF9V[\x90a@\xF2a\x03\xD4V[\x80a@\xFC\x81a\n\\V[\x03\x90\xA2aA\x08\x81a>2V[aA\x1AaA\x14_a yV[\x91a\x07\xDCV[\x11_\x14aA.WaA*\x91aC\rV[P[V[PPaA8aB\x92V[aA,V[aANaAHaC_\x14aB6W=_\xF3[=_\xFD[\x90V[\x80;aBQaBK_a yV[\x91a\x07\xDCV[\x14aBsWaBq\x90_aBkaBfa$\xA1V[aB:V[\x01a?\xFAV[V[aB\x8E\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[4aB\xA5aB\x9F_a yV[\x91a\x07\xDCV[\x11aB\xACWV[_c\xB3\x98\x97\x9F`\xE0\x1B\x81R\x80aB\xC4`\x04\x82\x01a\n\\V[\x03\x90\xFD[``\x90V[\x90aB\xDFaB\xDA\x83a\x0E\xB0V[a\x0E\x9BV[\x91\x82RV[=_\x14aB\xFFWaB\xF4=aB\xCDV[\x90=_` \x84\x01>[V[aC\x07aB\xC8V[\x90aB\xFDV[_\x80aC9\x93aC\x1BaB\xC8V[P\x83\x90` \x81\x01\x90Q\x91Z\xF4\x90aC0aB\xE4V[\x90\x91\x90\x91aC~V[\x90V[aCDa\x1F\xF9V[PaCW_aCQa=>V[\x01a+YV[\x90V[\x7F\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\x90V[\x90aC\x92\x90aC\x8BaB\xC8V[P\x15a\x043V[_\x14aC\x9EWPaD\x02V[aC\xA7\x82a>2V[aC\xB9aC\xB3_a yV[\x91a\x07\xDCV[\x14\x80aC\xE7W[aC\xC8WP\x90V[aC\xE3\x90_\x91\x82\x91c\x99\x96\xB3\x15`\xE0\x1B\x83R`\x04\x83\x01a\x13\xACV[\x03\x90\xFD[P\x80;aC\xFCaC\xF6_a yV[\x91a\x07\xDCV[\x14aC\xC0V[aD\x0B\x81a>2V[aD\x1DaD\x17_a yV[\x91a\x07\xDCV[\x11_\x14aD,W\x80Q\x90` \x01\xFD[_c\xD6\xBD\xA2u`\xE0\x1B\x81R\x80aDD`\x04\x82\x01a\n\\V[\x03\x90\xFD\xFE\xA1dsolcC\0\x08\x1A\0\n", + b"`\x80`@R`\x046\x10\x15a\0\x15W[6a5UW\0[a\0\x1F_5a\x03\xDEV[\x80c\x01\xFF\xC9\xA7\x14a\x03\xD9W\x80c\x05\xD6N8\x14a\x03\xD4W\x80c\n\xA8\xB1\x10\x14a\x03\xCFW\x80c\x12\xD9\x1C\x88\x14a\x03\xCAW\x80c\x18\x05m\xC2\x14a\x03\xC5W\x80c\x19\xE8.a\x14a\x03\xC0W\x80c$\x8A\x9C\xA3\x14a\x03\xBBW\x80c//\xF1]\x14a\x03\xB6W\x80c2'?a\x14a\x03\xB1W\x80c6V\x8A\xBE\x14a\x03\xACW\x80cE>\xCC\xEA\x14a\x03\xA7W\x80cF\xD1c\xAA\x14a\x03\xA2W\x80cI\x14t\x11\x14a\x03\x9DW\x80cIb\xF8\x8F\x14a\x03\x98W\x80cM\xE8\xAD\xDC\x14a\x03\x93W\x80cN\x9C\x92\x9A\x14a\x03\x8EW\x80cO\x1E\xF2\x86\x14a\x03\x89W\x80cP\x95\xAFd\x14a\x03\x84W\x80cR\xD1\x90-\x14a\x03\x7FW\x80cT\xDE# \x14a\x03zW\x80c\\\x97Z\xBB\x14a\x03uW\x80c`#V\xE3\x14a\x03pW\x80cf\xC3hu\x14a\x03kW\x80cr\xB5\x03-\x14a\x03fW\x80cu\xB28\xFC\x14a\x03aW\x80cw\xAB,\xF3\x14a\x03\\W\x80c}\xF9*\xDA\x14a\x03WW\x80c\x88\xC4\x7Fh\x14a\x03RW\x80c\x8A\x19\xC8\xBC\x14a\x03MW\x80c\x8A\x7F\xE6\x0F\x14a\x03HW\x80c\x90\x83\x7F\xF4\x14a\x03CW\x80c\x91\xD1HT\x14a\x03>W\x80c\x94\x80\xE4\xDD\x14a\x039W\x80c\x94\x94\xF4&\x14a\x034W\x80c\x96\x08Vs\x14a\x03/W\x80c\x97\"\xF4\xB9\x14a\x03*W\x80c\x9E\x87\x05\x85\x14a\x03%W\x80c\xA2\x17\xFD\xDF\x14a\x03 W\x80c\xA4W\xAF=\x14a\x03\x1BW\x80c\xA4\xB3-\xE8\x14a\x03\x16W\x80c\xA7\xFAo\x98\x14a\x03\x11W\x80c\xAA\xF5\xEBh\x14a\x03\x0CW\x80c\xAD<\xB1\xCC\x14a\x03\x07W\x80c\xB5K+\x9E\x14a\x03\x02W\x80c\xB6`\x84\t\x14a\x02\xFDW\x80c\xBA\x05\xBB\xF5\x14a\x02\xF8W\x80c\xC0tI\xE2\x14a\x02\xF3W\x80c\xC5P\xD98\x14a\x02\xEEW\x80c\xCB\xB6\xD6\xBD\x14a\x02\xE9W\x80c\xD2zo\x06\x14a\x02\xE4W\x80c\xD4_\xF5\x82\x14a\x02\xDFW\x80c\xD5Gt\x1F\x14a\x02\xDAW\x80c\xDB\x8A\x17:\x14a\x02\xD5W\x80c\xDDvJ\xBF\x14a\x02\xD0W\x80c\xE0}\xEC)\x14a\x02\xCBW\x80c\xE1\xA4R\x18\x14a\x02\xC6W\x80c\xE2~\x05\xC1\x14a\x02\xC1W\x80c\xF3\xC9\xB3\x11\x14a\x02\xBCW\x80c\xF7,\r\x8B\x14a\x02\xB7Wc\xF7\xCBx\x9A\x03a\0\x0EWa 8V[a\x1F\xF4V[a\x1F\x90V[a\x1F#V[a\x1E\xEEV[a\x1E\x85V[a\x1E\x1CV[a\x1D\xAAV[a\x1DgV[a\x1D2V[a\x1C\xC4V[a\x1CTV[a\x1B\x92V[a\x1B\\V[a\x1A\xEEV[a\x1A\xAAV[a\x1A>V[a\x19\xFAV[a\x18\xCBV[a\x18XV[a\x17\xEBV[a\x17\x86V[a\x16dV[a\x15\xF4V[a\x15\x85V[a\x15/V[a\x14\xE0V[a\x14qV[a\x14;V[a\x14\x06V[a\x13\xD1V[a\x13zV[a\x138V[a\x12\xC9V[a\x12[V[a\x11\xEBV[a\x11\x86V[a\x11QV[a\x11\x1CV[a\x10\xB8V[a\x10\x83V[a\x10\x16V[a\x0F\xE1V[a\x0F\x88V[a\x0E,V[a\r}V[a\r8V[a\x0C\xCBV[a\x0C\x98V[a\x0CEV[a\x0B\xD9V[a\x0B\xA4V[a\x0B:V[a\n\xD8V[a\nqV[a\t\xAAV[a\t'V[a\x08\x82V[a\x05\x1FV[a\x04jV[`\xE0\x1C\x90V[`@Q\x90V[_\x80\xFD[_\x80\xFD[_\x80\xFD[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16\x90V[a\x04\x0B\x81a\x03\xF6V[\x03a\x04\x12WV[_\x80\xFD[\x90P5\x90a\x04#\x82a\x04\x02V[V[\x90` \x82\x82\x03\x12a\x04>Wa\x04;\x91_\x01a\x04\x16V[\x90V[a\x03\xEEV[\x15\x15\x90V[a\x04Q\x90a\x04CV[\x90RV[\x91\x90a\x04h\x90_` \x85\x01\x94\x01\x90a\x04HV[V[4a\x04\x9AWa\x04\x96a\x04\x85a\x04\x806`\x04a\x04%V[a qV[a\x04\x8Da\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[_\x91\x03\x12a\x04\xA9WV[a\x03\xEEV[\x1C\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x04\xCD\x90`\x08a\x04\xD2\x93\x02a\x04\xAEV[a\x04\xB2V[\x90V[\x90a\x04\xE0\x91Ta\x04\xBDV[\x90V[a\x04\xEF_`\x10\x90a\x04\xD5V[\x90V[`\x01\x80`@\x1B\x03\x16\x90V[a\x05\x06\x90a\x04\xF2V[\x90RV[\x91\x90a\x05\x1D\x90_` \x85\x01\x94\x01\x90a\x04\xFDV[V[4a\x05OWa\x05/6`\x04a\x04\x9FV[a\x05Ka\x05:a\x04\xE3V[a\x05Ba\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[`\x01\x80`\xA0\x1B\x03\x16\x90V[a\x05h\x90a\x05TV[\x90V[a\x05t\x81a\x05_V[\x03a\x05{WV[_\x80\xFD[\x90P5\x90a\x05\x8C\x82a\x05kV[V[a\x05\x97\x81a\x04\xF2V[\x03a\x05\x9EWV[_\x80\xFD[\x90P5\x90a\x05\xAF\x82a\x05\x8EV[V[\x91\x90`@\x83\x82\x03\x12a\x05\xD9W\x80a\x05\xCDa\x05\xD6\x92_\x86\x01a\x05\x7FV[\x93` \x01a\x05\xA2V[\x90V[a\x03\xEEV[\x90V[a\x05\xF5a\x05\xF0a\x05\xFA\x92a\x05TV[a\x05\xDEV[a\x05TV[\x90V[a\x06\x06\x90a\x05\xE1V[\x90V[a\x06\x12\x90a\x05\xFDV[\x90V[\x90a\x06\x1F\x90a\x06\tV[_R` R`@_ \x90V[a\x06?a\x06:a\x06D\x92a\x04\xF2V[a\x05\xDEV[a\x04\xF2V[\x90V[\x90a\x06Q\x90a\x06+V[_R` R`@_ \x90V[_\x1C\x90V[a\x06na\x06s\x91a\x06]V[a\x04\xB2V[\x90V[a\x06\x80\x90Ta\x06bV[\x90V[`@\x1C\x90V[a\x06\x95a\x06\x9A\x91a\x06\x83V[a\x04\xB2V[\x90V[a\x06\xA7\x90Ta\x06\x89V[\x90V[`\x80\x1C\x90V[a\x06\xBCa\x06\xC1\x91a\x06\xAAV[a\x04\xB2V[\x90V[a\x06\xCE\x90Ta\x06\xB0V[\x90V[\x90V[a\x06\xE0a\x06\xE5\x91a\x06]V[a\x06\xD1V[\x90V[a\x06\xF2\x90Ta\x06\xD4V[\x90V[a\xFF\xFF\x16\x90V[a\x07\x08a\x07\r\x91a\x06]V[a\x06\xF5V[\x90V[a\x07\x1A\x90Ta\x06\xFCV[\x90V[\x90V[a\x07,a\x071\x91a\x06]V[a\x07\x1DV[\x90V[a\x07>\x90Ta\x07 V[\x90V[\x90a\x07Pa\x07U\x92`Ua\x06\x15V[a\x06GV[a\x07`_\x82\x01a\x06vV[\x91a\x07l_\x83\x01a\x06\x9DV[\x91a\x07x_\x82\x01a\x06\xC4V[\x91a\x07\x85`\x01\x83\x01a\x06\xE8V[\x91a\x07\x92`\x02\x82\x01a\x07\x10V[\x91a\x07\x9F`\x03\x83\x01a\x074V[\x91a\x07\xAC`\x04\x82\x01a\x074V[\x91a\x07\xC5`\x06a\x07\xBE`\x05\x85\x01a\x074V[\x93\x01a\x06\xE8V[\x90V[\x90V[a\x07\xD4\x90a\x07\xC8V[\x90RV[a\xFF\xFF\x16\x90V[a\x07\xE8\x90a\x07\xD8V[\x90RV[\x90V[a\x07\xF8\x90a\x07\xECV[\x90RV[\x96\x94\x92\x90\x99\x98\x97\x95\x93\x91a\x01 \x88\x01\x9A_\x89\x01a\x08\x18\x91a\x04\xFDV[` \x88\x01a\x08%\x91a\x04\xFDV[`@\x87\x01a\x082\x91a\x04\xFDV[``\x86\x01a\x08?\x91a\x07\xCBV[`\x80\x85\x01a\x08L\x91a\x07\xDFV[`\xA0\x84\x01a\x08Y\x91a\x07\xEFV[`\xC0\x83\x01a\x08f\x91a\x07\xEFV[`\xE0\x82\x01a\x08s\x91a\x07\xEFV[a\x01\0\x01a\x08\x80\x91a\x07\xCBV[V[4a\x08\xBDWa\x08\xB9a\x08\x9Ea\x08\x986`\x04a\x05\xB1V[\x90a\x07AV[\x95a\x08\xB0\x99\x97\x99\x95\x91\x95\x94\x92\x94a\x03\xE4V[\x99\x8A\x99\x8Aa\x07\xFCV[\x03\x90\xF3[a\x03\xEAV[a\x08\xCB\x81a\x07\xC8V[\x03a\x08\xD2WV[_\x80\xFD[\x90P5\x90a\x08\xE3\x82a\x08\xC2V[V[\x91\x90`@\x83\x82\x03\x12a\t\rW\x80a\t\x01a\t\n\x92_\x86\x01a\x05\x7FV[\x93` \x01a\x08\xD6V[\x90V[a\x03\xEEV[\x91\x90a\t%\x90_` \x85\x01\x94\x01\x90a\x07\xEFV[V[4a\tXWa\tTa\tCa\t=6`\x04a\x08\xE5V[\x90a!\tV[a\tKa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\tta\toa\ty\x92a\t]V[a\x05\xDEV[a\x07\xD8V[\x90V[a\t\x87a*\xF8a\t`V[\x90V[a\t\x92a\t|V[\x90V[\x91\x90a\t\xA8\x90_` \x85\x01\x94\x01\x90a\x07\xDFV[V[4a\t\xDAWa\t\xBA6`\x04a\x04\x9FV[a\t\xD6a\t\xC5a\t\x8AV[a\t\xCDa\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[_\x80\xFD[_\x80\xFD[_\x80\xFD[\x90\x91\x82`\x1F\x83\x01\x12\x15a\n#W\x815\x91`\x01\x80`@\x1B\x03\x83\x11a\n\x1EW` \x01\x92` \x83\x02\x84\x01\x11a\n\x19WV[a\t\xE7V[a\t\xE3V[a\t\xDFV[\x91\x90\x91`@\x81\x84\x03\x12a\ngWa\nA\x83_\x83\x01a\x05\x7FV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\nbWa\n^\x92\x01a\t\xEBV[\x90\x91V[a\x03\xF2V[a\x03\xEEV[_\x01\x90V[4a\n\xA0Wa\n\x8Aa\n\x846`\x04a\n(V[\x91a!\xDAV[a\n\x92a\x03\xE4V[\x80a\n\x9C\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\n\xBEWa\n\xBB\x91_\x01a\x08\xD6V[\x90V[a\x03\xEEV[\x91\x90a\n\xD6\x90_` \x85\x01\x94\x01\x90a\x07\xCBV[V[4a\x0B\x08Wa\x0B\x04a\n\xF3a\n\xEE6`\x04a\n\xA5V[a\"\x12V[a\n\xFBa\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x91\x90`@\x83\x82\x03\x12a\x0B5W\x80a\x0B)a\x0B2\x92_\x86\x01a\x08\xD6V[\x93` \x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x0BiWa\x0BSa\x0BM6`\x04a\x0B\rV[\x90a\"fV[a\x0B[a\x03\xE4V[\x80a\x0Be\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x0B~\x90`\x08a\x0B\x83\x93\x02a\x04\xAEV[a\x06\xF5V[\x90V[\x90a\x0B\x91\x91Ta\x0BnV[\x90V[a\x0B\xA1`\x01`\x10\x90a\x0B\x86V[\x90V[4a\x0B\xD4Wa\x0B\xB46`\x04a\x04\x9FV[a\x0B\xD0a\x0B\xBFa\x0B\x94V[a\x0B\xC7a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[4a\x0C\x08Wa\x0B\xF2a\x0B\xEC6`\x04a\x0B\rV[\x90a\"rV[a\x0B\xFAa\x03\xE4V[\x80a\x0C\x04\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x0C$a\x0C\x1Fa\x0C)\x92a\x0C\rV[a\x05\xDEV[a\x07\xD8V[\x90V[a\x0C7a>\x80a\x0C\x10V[\x90V[a\x0CBa\x0C,V[\x90V[4a\x0CuWa\x0CU6`\x04a\x04\x9FV[a\x0Cqa\x0C`a\x0C:V[a\x0Cha\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\x0C\x93Wa\x0C\x90\x91_\x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x0C\xC6Wa\x0C\xB0a\x0C\xAB6`\x04a\x0CzV[a#\xB0V[a\x0C\xB8a\x03\xE4V[\x80a\x0C\xC2\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[4a\x0C\xFBWa\x0C\xF7a\x0C\xE6a\x0C\xE16`\x04a\x0CzV[a$\x8EV[a\x0C\xEEa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\r\x17a\r\x12a\r\x1C\x92a\r\0V[a\x05\xDEV[a\x07\xD8V[\x90V[a\r*a'\x10a\r\x03V[\x90V[a\r5a\r\x1FV[\x90V[4a\rhWa\rH6`\x04a\x04\x9FV[a\rda\rSa\r-V[a\r[a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[a\rz`\x01`\x08\x90a\x04\xD5V[\x90V[4a\r\xADWa\r\x8D6`\x04a\x04\x9FV[a\r\xA9a\r\x98a\rmV[a\r\xA0a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x91\x90`@\x83\x82\x03\x12a\r\xDAW\x80a\r\xCEa\r\xD7\x92_\x86\x01a\x05\xA2V[\x93` \x01a\x05\x7FV[\x90V[a\x03\xEEV[\x90a\r\xE9\x90a\x06+V[_R` R`@_ \x90V[\x90a\r\xFF\x90a\x06\tV[_R` R`@_ \x90V[a\x0E$a\x0E)\x92a\x0E\x1F`X\x93_\x94a\r\xDFV[a\r\xF5V[a\x04\xD5V[\x90V[4a\x0E]Wa\x0EYa\x0EHa\x0EB6`\x04a\r\xB2V[\x90a\x0E\x0BV[a\x0EPa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[_\x80\xFD[`\x1F\x80\x19\x91\x01\x16\x90V[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90a\x0E\x8E\x90a\x0EfV[\x81\x01\x90\x81\x10`\x01\x80`@\x1B\x03\x82\x11\x17a\x0E\xA6W`@RV[a\x0EpV[\x90a\x0E\xBEa\x0E\xB7a\x03\xE4V[\x92\x83a\x0E\x84V[V[`\x01\x80`@\x1B\x03\x81\x11a\x0E\xDCWa\x0E\xD8` \x91a\x0EfV[\x01\x90V[a\x0EpV[\x90\x82_\x93\x92\x827\x01RV[\x90\x92\x91\x92a\x0F\x01a\x0E\xFC\x82a\x0E\xC0V[a\x0E\xABV[\x93\x81\x85R` \x85\x01\x90\x82\x84\x01\x11a\x0F\x1DWa\x0F\x1B\x92a\x0E\xE1V[V[a\x0EbV[\x90\x80`\x1F\x83\x01\x12\x15a\x0F@W\x81` a\x0F=\x935\x91\x01a\x0E\xECV[\x90V[a\t\xDFV[\x91\x90\x91`@\x81\x84\x03\x12a\x0F\x83Wa\x0F^\x83_\x83\x01a\x05\x7FV[\x92` \x82\x015`\x01\x80`@\x1B\x03\x81\x11a\x0F~Wa\x0F{\x92\x01a\x0F\"V[\x90V[a\x03\xF2V[a\x03\xEEV[a\x0F\x9Ca\x0F\x966`\x04a\x0FEV[\x90a$\xD6V[a\x0F\xA4a\x03\xE4V[\x80a\x0F\xAE\x81a\nlV[\x03\x90\xF3[\x7F\x12\xB4.\x8A\x16\x0F`d\xDC\x95\x9Co%\x1E:\xF0u\n\xD2\x13\xDB\xEC\xF5s\xB4q\rg\xD6\xC2\x8E9\x90V[a\x0F\xDEa\x0F\xB2V[\x90V[4a\x10\x11Wa\x0F\xF16`\x04a\x04\x9FV[a\x10\ra\x0F\xFCa\x0F\xD6V[a\x10\x04a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[4a\x10FWa\x10&6`\x04a\x04\x9FV[a\x10Ba\x101a%MV[a\x109a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x10ba\x10]a\x10g\x92a\x10KV[a\x05\xDEV[a\x07\xD8V[\x90V[a\x10ua.\xE0a\x10NV[\x90V[a\x10\x80a\x10jV[\x90V[4a\x10\xB3Wa\x10\x936`\x04a\x04\x9FV[a\x10\xAFa\x10\x9Ea\x10xV[a\x10\xA6a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[4a\x10\xE8Wa\x10\xC86`\x04a\x04\x9FV[a\x10\xE4a\x10\xD3a%\x81V[a\x10\xDBa\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x7F\x19D\x9AJ\xD5~@\xA5\xAAw\xE7\x85\xB4S\x9ES\xBA\x9E\x7F\xED\xBFpv8\x8E\xE3\xFB\x1B\xC2\xDD\xEA\x1B\x90V[a\x11\x19a\x10\xEDV[\x90V[4a\x11LWa\x11,6`\x04a\x04\x9FV[a\x11Ha\x117a\x11\x11V[a\x11?a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[4a\x11\x81Wa\x11}a\x11la\x11g6`\x04a\x0CzV[a%\xA3V[a\x11ta\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[4a\x11\xB7Wa\x11\xB3a\x11\xA2a\x11\x9C6`\x04a\r\xB2V[\x90a%\xC2V[a\x11\xAAa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x7F\xA4\x98\x07 \\\xE4\xD3U\t.\xF5\xA8\xA1\x8FV\xE8\x91<\xF4\xA2\x01\xFB\xE2\x87\x82[\tV\x93\xC2\x17u\x90V[a\x11\xE8a\x11\xBCV[\x90V[4a\x12\x1BWa\x11\xFB6`\x04a\x04\x9FV[a\x12\x17a\x12\x06a\x11\xE0V[a\x12\x0Ea\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[`\xFF\x16\x90V[a\x126\x90`\x08a\x12;\x93\x02a\x04\xAEV[a\x12 V[\x90V[\x90a\x12I\x91Ta\x12&V[\x90V[a\x12X`\x05_\x90a\x12>V[\x90V[4a\x12\x8BWa\x12k6`\x04a\x04\x9FV[a\x12\x87a\x12va\x12LV[a\x12~a\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x12\xA7a\x12\xA2a\x12\xAC\x92a\x12\x90V[a\x05\xDEV[a\x04\xF2V[\x90V[a\x12\xBBbO\x1A\0a\x12\x93V[\x90V[a\x12\xC6a\x12\xAFV[\x90V[4a\x12\xF9Wa\x12\xD96`\x04a\x04\x9FV[a\x12\xF5a\x12\xE4a\x12\xBEV[a\x12\xECa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x13\x15a\x13\x10a\x13\x1A\x92a\x12\xFEV[a\x05\xDEV[a\x07\xECV[\x90V[a\x13*c\x05\xF5\xE1\0a\x13\x01V[\x90V[a\x135a\x13\x1DV[\x90V[4a\x13hWa\x13H6`\x04a\x04\x9FV[a\x13da\x13Sa\x13-V[a\x13[a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x13w_\x80a\x04\xD5V[\x90V[4a\x13\xAAWa\x13\x8A6`\x04a\x04\x9FV[a\x13\xA6a\x13\x95a\x13mV[a\x13\x9Da\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x13\xB8\x90a\x05_V[\x90RV[\x91\x90a\x13\xCF\x90_` \x85\x01\x94\x01\x90a\x13\xAFV[V[4a\x14\x01Wa\x13\xFDa\x13\xECa\x13\xE76`\x04a\x0CzV[a&0V[a\x13\xF4a\x03\xE4V[\x91\x82\x91\x82a\x13\xBCV[\x03\x90\xF3[a\x03\xEAV[4a\x146Wa\x142a\x14!a\x14\x1C6`\x04a\x04%V[a&OV[a\x14)a\x03\xE4V[\x91\x82\x91\x82a\x13\xBCV[\x03\x90\xF3[a\x03\xEAV[4a\x14lWa\x14ha\x14Wa\x14Q6`\x04a\x0B\rV[\x90a&zV[a\x14_a\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[4a\x14\xA1Wa\x14\x9Da\x14\x8Ca\x14\x876`\x04a\x0CzV[a&\xACV[a\x14\x94a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90\x91``\x82\x84\x03\x12a\x14\xDBWa\x14\xD8a\x14\xC1\x84_\x85\x01a\x05\x7FV[\x93a\x14\xCF\x81` \x86\x01a\x05\xA2V[\x93`@\x01a\x05\x7FV[\x90V[a\x03\xEEV[4a\x15\x11Wa\x15\ra\x14\xFCa\x14\xF66`\x04a\x14\xA6V[\x91a(\xE4V[a\x15\x04a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x15,\x90a\x15'`V\x91_\x92a\r\xF5V[a\x04\xD5V[\x90V[4a\x15_Wa\x15[a\x15Ja\x15E6`\x04a\x0CzV[a\x15\x16V[a\x15Ra\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x15}a\x15\x82\x92a\x15x`W\x93_\x94a\r\xDFV[a\r\xF5V[a\x04\xD5V[\x90V[4a\x15\xB6Wa\x15\xB2a\x15\xA1a\x15\x9B6`\x04a\r\xB2V[\x90a\x15dV[a\x15\xA9a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x15\xD2a\x15\xCDa\x15\xD7\x92a\x15\xBBV[a\x05\xDEV[a\x04\xF2V[\x90V[a\x15\xE6b'\x8D\0a\x15\xBEV[\x90V[a\x15\xF1a\x15\xDAV[\x90V[4a\x16$Wa\x16\x046`\x04a\x04\x9FV[a\x16 a\x16\x0Fa\x15\xE9V[a\x16\x17a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[_\x1B\x90V[a\x16Ea\x16@a\x16J\x92a\x16)V[a\x16,V[a\x07\xC8V[\x90V[a\x16V_a\x161V[\x90V[a\x16aa\x16MV[\x90V[4a\x16\x94Wa\x16t6`\x04a\x04\x9FV[a\x16\x90a\x16\x7Fa\x16YV[a\x16\x87a\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[a\x16\xA2\x90a\x04\xF2V[\x90RV[a\x16\xAF\x90a\x07\xC8V[\x90RV[a\x16\xBC\x90a\x07\xD8V[\x90RV[a\x16\xC9\x90a\x07\xECV[\x90RV[\x90a\x01\0\x80a\x17n\x93a\x16\xE6_\x82\x01Q_\x86\x01\x90a\x16\x99V[a\x16\xF8` \x82\x01Q` \x86\x01\x90a\x16\x99V[a\x17\n`@\x82\x01Q`@\x86\x01\x90a\x16\x99V[a\x17\x1C``\x82\x01Q``\x86\x01\x90a\x16\xA6V[a\x17.`\x80\x82\x01Q`\x80\x86\x01\x90a\x16\xB3V[a\x17@`\xA0\x82\x01Q`\xA0\x86\x01\x90a\x16\xC0V[a\x17R`\xC0\x82\x01Q`\xC0\x86\x01\x90a\x16\xC0V[a\x17d`\xE0\x82\x01Q`\xE0\x86\x01\x90a\x16\xC0V[\x01Q\x91\x01\x90a\x16\xA6V[V[\x91\x90a\x17\x84\x90_a\x01 \x85\x01\x94\x01\x90a\x16\xCDV[V[4a\x17\xB7Wa\x17\xB3a\x17\xA2a\x17\x9C6`\x04a\x05\xB1V[\x90a*\x92V[a\x17\xAAa\x03\xE4V[\x91\x82\x91\x82a\x17pV[\x03\x90\xF3[a\x03\xEAV[\x7F\xB1\xFA\xDD1B\xAB*\xD7\xF13~\xA4\xD9q\x12\xBC\xC83\x7F\xC1\x1C\xE5\xB2\x0C\xB0J\xD08\xAD\xF9\x98\x19\x90V[a\x17\xE8a\x17\xBCV[\x90V[4a\x18\x1BWa\x17\xFB6`\x04a\x04\x9FV[a\x18\x17a\x18\x06a\x17\xE0V[a\x18\x0Ea\x03\xE4V[\x91\x82\x91\x82a\n\xC3V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x187a\x182a\x18<\x92a\x18 V[a\x05\xDEV[a\x07\xD8V[\x90V[a\x18Ja2\xC8a\x18#V[\x90V[a\x18Ua\x18?V[\x90V[4a\x18\x88Wa\x18h6`\x04a\x04\x9FV[a\x18\x84a\x18sa\x18MV[a\x18{a\x03\xE4V[\x91\x82\x91\x82a\t\x95V[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x18\xA4a\x18\x9Fa\x18\xA9\x92a\x18\x8DV[a\x05\xDEV[a\x07\xECV[\x90V[a\x18\xBDg\r\xE0\xB6\xB3\xA7d\0\0a\x18\x90V[\x90V[a\x18\xC8a\x18\xACV[\x90V[4a\x18\xFBWa\x18\xDB6`\x04a\x04\x9FV[a\x18\xF7a\x18\xE6a\x18\xC0V[a\x18\xEEa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[`\x01\x80`@\x1B\x03\x81\x11a\x19\x1CWa\x19\x18` \x91a\x0EfV[\x01\x90V[a\x0EpV[\x90a\x193a\x19.\x83a\x19\0V[a\x0E\xABV[\x91\x82RV[_\x7F5.0.0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x01RV[a\x19i`\x05a\x19!V[\x90a\x19v` \x83\x01a\x198V[V[a\x19\x80a\x19_V[\x90V[a\x19\x8Ba\x19xV[\x90V[a\x19\x96a\x19\x83V[\x90V[Q\x90V[` \x91\x81R\x01\x90V[\x90\x82_\x93\x92\x82^\x01RV[a\x19\xD0a\x19\xD9` \x93a\x19\xDE\x93a\x19\xC7\x81a\x19\x99V[\x93\x84\x80\x93a\x19\x9DV[\x95\x86\x91\x01a\x19\xA6V[a\x0EfV[\x01\x90V[a\x19\xF7\x91` \x82\x01\x91_\x81\x84\x03\x91\x01Ra\x19\xB1V[\x90V[4a\x1A*Wa\x1A\n6`\x04a\x04\x9FV[a\x1A&a\x1A\x15a\x19\x8EV[a\x1A\x1Da\x03\xE4V[\x91\x82\x91\x82a\x19\xE2V[\x03\x90\xF3[a\x03\xEAV[a\x1A;`\x07_\x90a\x12>V[\x90V[4a\x1AnWa\x1AN6`\x04a\x04\x9FV[a\x1Aja\x1AYa\x1A/V[a\x1Aaa\x03\xE4V[\x91\x82\x91\x82a\x04UV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1A\x8Aa\x1A\x85a\x1A\x8F\x92a\x1AsV[a\x05\xDEV[a\x07\xECV[\x90V[a\x1A\x9C`\x01a\x1AvV[\x90V[a\x1A\xA7a\x1A\x92V[\x90V[4a\x1A\xDAWa\x1A\xBA6`\x04a\x04\x9FV[a\x1A\xD6a\x1A\xC5a\x1A\x9FV[a\x1A\xCDa\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[a\x1A\xEB_`\x18\x90a\x04\xD5V[\x90V[4a\x1B\x1EWa\x1A\xFE6`\x04a\x04\x9FV[a\x1B\x1Aa\x1B\ta\x1A\xDFV[a\x1B\x11a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90` \x80a\x1BE\x93a\x1B;_\x82\x01Q_\x86\x01\x90a\x16\xC0V[\x01Q\x91\x01\x90a\x16\xC0V[V[\x91\x90a\x1BZ\x90_`@\x85\x01\x94\x01\x90a\x1B#V[V[4a\x1B\x8DWa\x1B\x89a\x1Bxa\x1Br6`\x04a\r\xB2V[\x90a+iV[a\x1B\x80a\x03\xE4V[\x91\x82\x91\x82a\x1BGV[\x03\x90\xF3[a\x03\xEAV[4a\x1B\xC3Wa\x1B\xBFa\x1B\xAEa\x1B\xA86`\x04a\r\xB2V[\x90a+\x91V[a\x1B\xB6a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[a\x1B\xD1\x81a\x07\xECV[\x03a\x1B\xD8WV[_\x80\xFD[\x90P5\x90a\x1B\xE9\x82a\x1B\xC8V[V[a\x1B\xF4\x81a\x07\xD8V[\x03a\x1B\xFBWV[_\x80\xFD[\x90P5\x90a\x1C\x0C\x82a\x1B\xEBV[V[`\x80\x81\x83\x03\x12a\x1COWa\x1C$\x82_\x83\x01a\x05\x7FV[\x92a\x1CLa\x1C5\x84` \x85\x01a\x1B\xDCV[\x93a\x1CC\x81`@\x86\x01a\x1B\xDCV[\x93``\x01a\x1B\xFFV[\x90V[a\x03\xEEV[4a\x1C\x86Wa\x1Cpa\x1Cg6`\x04a\x1C\x0EV[\x92\x91\x90\x91a3\x7FV[a\x1Cxa\x03\xE4V[\x80a\x1C\x82\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1C\xA2a\x1C\x9Da\x1C\xA7\x92a\x1C\x8BV[a\x05\xDEV[a\x04\xF2V[\x90V[a\x1C\xB6bv\xA7\0a\x1C\x8EV[\x90V[a\x1C\xC1a\x1C\xAAV[\x90V[4a\x1C\xF4Wa\x1C\xD46`\x04a\x04\x9FV[a\x1C\xF0a\x1C\xDFa\x1C\xB9V[a\x1C\xE7a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1D\x10a\x1D\x0Ba\x1D\x15\x92a\x1C\xF9V[a\x05\xDEV[a\x04\xF2V[\x90V[a\x1D$b\t:\x80a\x1C\xFCV[\x90V[a\x1D/a\x1D\x18V[\x90V[4a\x1DbWa\x1DB6`\x04a\x04\x9FV[a\x1D^a\x1DMa\x1D'V[a\x1DUa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[4a\x1D\x96Wa\x1D\x80a\x1Dz6`\x04a\x0B\rV[\x90a3\xB7V[a\x1D\x88a\x03\xE4V[\x80a\x1D\x92\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x1D\xA7`\x01_\x90a\x04\xD5V[\x90V[4a\x1D\xDAWa\x1D\xBA6`\x04a\x04\x9FV[a\x1D\xD6a\x1D\xC5a\x1D\x9BV[a\x1D\xCDa\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xF3[a\x03\xEAV[\x90V[a\x1D\xF6a\x1D\xF1a\x1D\xFB\x92a\x1D\xDFV[a\x05\xDEV[a\x07\xECV[\x90V[a\x1E\x0Ef#\x86\xF2o\xC1\0\0a\x1D\xE2V[\x90V[a\x1E\x19a\x1D\xFEV[\x90V[4a\x1ELWa\x1E,6`\x04a\x04\x9FV[a\x1EHa\x1E7a\x1E\x11V[a\x1E?a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[\x90` \x82\x82\x03\x12a\x1E\x80W_\x82\x015`\x01\x80`@\x1B\x03\x81\x11a\x1E{Wa\x1Ew\x92\x01a\t\xEBV[\x90\x91V[a\x03\xF2V[a\x03\xEEV[4a\x1E\xB4Wa\x1E\x9Ea\x1E\x986`\x04a\x1EQV[\x90a4\x18V[a\x1E\xA6a\x03\xE4V[\x80a\x1E\xB0\x81a\nlV[\x03\x90\xF3[a\x03\xEAV[a\x1E\xCDa\x1E\xC8a\x1E\xD2\x92a\r\0V[a\x05\xDEV[a\x07\xECV[\x90V[a\x1E\xE0a'\x10a\x1E\xB9V[\x90V[a\x1E\xEBa\x1E\xD5V[\x90V[4a\x1F\x1EWa\x1E\xFE6`\x04a\x04\x9FV[a\x1F\x1Aa\x1F\ta\x1E\xE3V[a\x1F\x11a\x03\xE4V[\x91\x82\x91\x82a\t\x12V[\x03\x90\xF3[a\x03\xEAV[4a\x1FRWa\x1F=\x90\xFD[a#\xB8a5\x92V[a#\xE3_a#\xCDa#\xC8\x84a\"\xC6V[a\"\xD2V[cn%\xB9x\x90a#\xDBa\x03\xE4V[\x93\x84\x92a\"\xDEV[\x82R\x81\x80a#\xF3`\x04\x82\x01a\nlV[\x03\x91Z\xFA\x80\x15a$sWa$\x0F\x91_\x91a$QW[P\x82a5\xCDV[a$9\x7FM<0\xF5\x99?\x19\"\xA7y4Z\x0F~\xC1\xA1p\xF1\xE5.\x9D#\x08$\xF9\xC1~cYl\x90m\x91a\x06\tV[\x90a$Ba\x03\xE4V[\x80a$L\x81a\nlV[\x03\x90\xA2V[a$m\x91P=\x80_\x83>a$e\x81\x83a\x0E\x84V[\x81\x01\x90a#mV[_a$\x08V[a#\xA0V[\x90a$\x82\x90a\x06\tV[_R` R`@_ \x90V[a$\xA5a$\xAA\x91a$\x9Da \xB1V[P`\x1Ba$xV[a\x074V[\x90V[\x90a$\xBF\x91a$\xBAa8\xF6V[a$\xC1V[V[\x90a$\xD4\x91a$\xCF\x81a9\xB0V[a:\x0CV[V[\x90a$\xE0\x91a$\xADV[V[a$\xF3\x90a$\xEEa;\nV[a%AV[\x90V[\x90V[a%\ra%\x08a%\x12\x92a$\xF6V[a\x16,V[a\x07\xC8V[\x90V[a%>\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCa$\xF9V[\x90V[Pa%Ja%\x15V[\x90V[a%]a%Xa!\xF8V[a$\xE2V[\x90V[a%la%q\x91a\x06]V[a\x12 V[\x90V[a%~\x90Ta%`V[\x90V[a%\x89a mV[Pa%\x9C_a%\x96a;hV[\x01a%tV[\x90V[_\x90V[a%\xBAa%\xBF\x91a%\xB2a%\x9FV[P`Va\r\xF5V[a\x06vV[\x90V[a%\xE7\x91a%\xDDa%\xE2\x92a%\xD5a%\x9FV[P`Wa\r\xDFV[a\r\xF5V[a\x06vV[\x90V[_\x90V[\x90a%\xF8\x90a\x06\tV[_R` R`@_ \x90V[`\x01\x80`\xA0\x1B\x03\x16\x90V[a&\x1Ba& \x91a\x06]V[a&\x04V[\x90V[a&-\x90Ta&\x0FV[\x90V[a&Ga&L\x91a&?a%\xEAV[P`\x06a%\xEEV[a&#V[\x90V[a&a\x90a&[a%\xEAV[Pa;\xA2V[\x90V[\x90a&n\x90a\x06\tV[_R` R`@_ \x90V[a&\xA9\x91_a&\x9Ea&\xA4\x93a&\x8Ea mV[P\x82a&\x98a7AV[\x01a!\xFCV[\x01a&dV[a%tV[\x90V[a&\xC3a&\xC8\x91a&\xBBa%\x9FV[P`#a\r\xF5V[a\x06vV[\x90V[\x90a&\xD5\x90a\x04\xF2V[\x90RV[\x90a&\xE3\x90a\x07\xC8V[\x90RV[\x90a&\xF1\x90a\x07\xD8V[\x90RV[\x90a&\xFF\x90a\x07\xECV[\x90RV[a'\x0Ea\x01 a\x0E\xABV[\x90V[\x90a'\xEFa'\xE5`\x06a'\"a'\x03V[\x94a'9a'1_\x83\x01a\x06vV[_\x88\x01a&\xCBV[a'Pa'G_\x83\x01a\x06\x9DV[` \x88\x01a&\xCBV[a'ga'^_\x83\x01a\x06\xC4V[`@\x88\x01a&\xCBV[a'\x7Fa'v`\x01\x83\x01a\x06\xE8V[``\x88\x01a&\xD9V[a'\x97a'\x8E`\x02\x83\x01a\x07\x10V[`\x80\x88\x01a&\xE7V[a'\xAFa'\xA6`\x03\x83\x01a\x074V[`\xA0\x88\x01a&\xF5V[a'\xC7a'\xBE`\x04\x83\x01a\x074V[`\xC0\x88\x01a&\xF5V[a'\xDFa'\xD6`\x05\x83\x01a\x074V[`\xE0\x88\x01a&\xF5V[\x01a\x06\xE8V[a\x01\0\x84\x01a&\xD9V[V[a'\xFA\x90a'\x11V[\x90V[a(\x07\x90Qa\x04\xF2V[\x90V[a(\x1Ea(\x19a(#\x92a\x16)V[a\x05\xDEV[a\x04\xF2V[\x90V[a(0\x90Qa\x07\xC8V[\x90V[a(=\x90Qa\x07\xECV[\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[a(ca(i\x91\x93\x92\x93a\x07\xECV[\x92a\x07\xECV[\x82\x03\x91\x82\x11a(tWV[a(@V[a(\x88a(\x8E\x91\x93\x92\x93a\x07\xECV[\x92a\x07\xECV[\x91a(\x9A\x83\x82\x02a\x07\xECV[\x92\x81\x84\x04\x14\x90\x15\x17\x15a(\xA9WV[a(@V[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[a(\xCEa(\xD4\x91a\x07\xECV[\x91a\x07\xECV[\x90\x81\x15a(\xDFW\x04\x90V[a(\xAEV[\x92\x91\x90\x92a)\ra)\x08a(\xF6a \xB1V[\x95a)\x03`U\x85\x90a\x06\x15V[a\x06GV[a'\xF1V[\x91a)\x19_\x84\x01a'\xFDV[a)+a)%_a(\nV[\x91a\x04\xF2V[\x14a)\xECW\x90a)H\x91\x90a)B``\x85\x01a(&V[\x91a<\xD6V[\x90\x81a)\\a)V_a \xEDV[\x91a\x07\xECV[\x14a)\xDCWa)m`\xC0\x82\x01a(3V[a)\x8Aa)\x84a)\x7F`\xE0\x85\x01a(3V[a\x07\xECV[\x91a\x07\xECV[\x11a)\x94W[PPV[a)\xD4\x92\x93P\x90a)\xC0\x82a)\xBA`\xE0a)\xB3`\xC0a)\xC6\x97\x01a(3V[\x92\x01a(3V[\x90a(TV[\x90a(yV[a)\xCEa\x18\xACV[\x90a(\xC2V[\x90_\x80a)\x90V[PP\x90Pa)\xE9_a \xEDV[\x90V[PPP\x90Pa)\xFA_a \xEDV[\x90V[_\x90V[_\x90V[_\x90V[_\x90V[a*\x15a'\x03V[\x90` \x80\x80\x80\x80\x80\x80\x80\x80\x8Aa*)a)\xFDV[\x81R\x01a*4a)\xFDV[\x81R\x01a*?a)\xFDV[\x81R\x01a*Ja*\x01V[\x81R\x01a*Ua*\x05V[\x81R\x01a*`a*\tV[\x81R\x01a*ka*\tV[\x81R\x01a*va*\tV[\x81R\x01a*\x81a*\x01V[\x81RPPV[a*\x8Fa*\rV[\x90V[a*\xB7\x91a*\xADa*\xB2\x92a*\xA5a*\x87V[P`Ua\x06\x15V[a\x06GV[a'\xF1V[\x90V[a*\xC4`@a\x0E\xABV[\x90V[a*\xCFa*\xBAV[\x90` \x80\x83a*\xDCa*\tV[\x81R\x01a*\xE7a*\tV[\x81RPPV[a*\xF5a*\xC7V[\x90V[\x90a+\x02\x90a\x06+V[_R` R`@_ \x90V[\x90a+\x18\x90a\x06\tV[_R` R`@_ \x90V[\x90a+[a+R`\x01a+5a*\xBAV[\x94a+La+D_\x83\x01a\x074V[_\x88\x01a&\xF5V[\x01a\x074V[` \x84\x01a&\xF5V[V[a+f\x90a+$V[\x90V[a+\x8E\x91a+\x84a+\x89\x92a+|a*\xEDV[P`\x10a*\xF8V[a+\x0EV[a+]V[\x90V[a+\xB6\x91a+\xACa+\xB1\x92a+\xA4a%\x9FV[P`Xa\r\xDFV[a\r\xF5V[a\x06vV[\x90V[a+\xC5a+\xCA\x91a\x06\x83V[a\x12 V[\x90V[a+\xD7\x90Ta+\xB9V[\x90V[a+\xEEa+\xE9a+\xF3\x92a\x1AsV[a\x05\xDEV[a\x04\xF2V[\x90V[a+\xFF\x90a\x05\xFDV[\x90V[\x90a,\x13`\x01\x80`@\x1B\x03\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x90a,5a,0a,<\x92a\x06+V[a,\x1DV[\x82Ta,\x02V[\x90UV[`@\x1B\x90V[\x90a,U`\xFF`@\x1B\x91a,@V[\x91\x81\x19\x16\x91\x16\x17\x90V[a,h\x90a\x04CV[\x90V[\x90V[\x90a,\x83a,~a,\x8A\x92a,_V[a,kV[\x82Ta,FV[\x90UV[a,\x97\x90a+\xDAV[\x90RV[\x91\x90a,\xAE\x90_` \x85\x01\x94\x01\x90a,\x8EV[V[\x90\x91\x92a,\xBBa=\xC5V[\x93a,\xD0a,\xCA_\x87\x01a+\xCDV[\x15a\x04CV[\x93a,\xDC_\x87\x01a\x06vV[\x80a,\xEFa,\xE9_a(\nV[\x91a\x04\xF2V[\x14\x80a.\tW[\x90a-\na-\x04`\x01a+\xDAV[\x91a\x04\xF2V[\x14\x80a-\xE1W[a-\x1C\x90\x91\x15a\x04CV[\x90\x81a-\xD0W[Pa-\xB4Wa-L\x93a-Aa-9`\x01a+\xDAV[_\x89\x01a, V[\x85a-\xA2W[a1\xC1V[a-TW[PV[a-a\x90_\x80\x91\x01a,nV[`\x01a-\x99\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x91a-\x90a\x03\xE4V[\x91\x82\x91\x82a,\x9BV[\x03\x90\xA1_a-QV[a-\xAF`\x01_\x89\x01a,nV[a-GV[_c\xF9.\xE8\xA9`\xE0\x1B\x81R\x80a-\xCC`\x04\x82\x01a\nlV[\x03\x90\xFD[a-\xDB\x91P\x15a\x04CV[_a-#V[Pa-\x1Ca-\xEE0a+\xF6V[;a.\x01a-\xFB_a \xEDV[\x91a\x07\xECV[\x14\x90Pa-\x11V[P\x85a,\xF6V[a.$a.\x1Fa.)\x92a\x16)V[a\x05\xDEV[a\x05TV[\x90V[a.5\x90a.\x10V[\x90V[a.B`@a\x0E\xABV[\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x02\x11\x15a.cWV[a.EV[\x90a.r\x82a.YV[V[\x90a.~\x90a.hV[\x90RV[\x90a.\x8C\x90a\x05_V[\x90RV[a.\xA4a.\x9Fa.\xA9\x92a\x07\xECV[a\x05\xDEV[a\x07\xD8V[\x90V[a.\xB6`\xC0a\x0E\xABV[\x90V[\x90a.\xC3\x90a\x04CV[\x90RV[\x90a.\xD1\x90a \xCBV[_R` R`@_ \x90V[a.\xE7\x90Qa\x04CV[\x90V[\x90a.\xF6`\xFF\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a/\x15a/\x10a/\x1C\x92a,_V[a,kV[\x82Ta.\xEAV[\x90UV[\x90a/,_\x19\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[a/Ja/Ea/O\x92a\x07\xECV[a\x05\xDEV[a\x07\xECV[\x90V[\x90V[\x90a/ja/ea/q\x92a/6V[a/RV[\x82Ta/ V[\x90UV[a/\x7F\x90Qa\x07\xD8V[\x90V[\x90a/\x8Fa\xFF\xFF\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[a/\xADa/\xA8a/\xB2\x92a\x07\xD8V[a\x05\xDEV[a\x07\xD8V[\x90V[\x90V[\x90a/\xCDa/\xC8a/\xD4\x92a/\x99V[a/\xB5V[\x82Ta/\x82V[\x90UV[\x90a0g`\xA0`\x05a0m\x94a/\xFB_\x82\x01a/\xF5_\x88\x01a.\xDDV[\x90a/\0V[a0\x14`\x01\x82\x01a0\x0E` \x88\x01a(3V[\x90a/UV[a0-`\x02\x82\x01a0'`@\x88\x01a(3V[\x90a/UV[a0F`\x03\x82\x01a0@``\x88\x01a(3V[\x90a/UV[a0_`\x04\x82\x01a0Y`\x80\x88\x01a(3V[\x90a/UV[\x01\x92\x01a/uV[\x90a/\xB8V[V[\x90a0y\x91a/\xD8V[V[`\x80\x1B\x90V[\x90a0\x91a\xFF\xFF`\x80\x1B\x91a0{V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a0\xB0a0\xABa0\xB7\x92a/\x99V[a/\xB5V[\x82Ta0\x81V[\x90UV[\x90V[a0\xD2a0\xCDa0\xD7\x92a0\xBBV[a\x05\xDEV[a\x04\xF2V[\x90V[a0\xE5aT`a0\xBEV[\x90V[\x90a0\xFD`\x01`@\x1B`\x01`\x80\x1B\x03\x91a,@V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a1\x1Ca1\x17a1#\x92a\x06+V[a,\x1DV[\x82Ta0\xE8V[\x90UV[\x90V[a1>a19a1C\x92a1'V[a\x05\xDEV[a\x04\xF2V[\x90V[a1P`\x1Ca1*V[\x90V[`\xC0\x1B\x90V[\x90a1k`\x01\x80`\xC0\x1B\x03\x19\x91a1SV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a1\x8Aa1\x85a1\x91\x92a\x06+V[a,\x1DV[\x82Ta1YV[\x90UV[\x90V[a1\xACa1\xA7a1\xB1\x92a1\x95V[a\x05\xDEV[a\x04\xF2V[\x90V[a1\xBE`8a1\x98V[\x90V[\x91\x90\x91a1\xCCa=\xF3V[a1\xD4a>\x07V[a1\xDCa>-V[a1\xE4a>SV[a1\xECa\x16MV[\x81a1\xF6\x91a7yV[Pa1\xFFa\x11\xBCV[\x81a2\t\x91a7yV[Pa2\x12a\x17\xBCV[\x81a2\x1C\x91a7yV[Pa2%a\x1F\xC5V[\x90a2/\x91a7yV[P_\x80a2;\x90a.,V[a2Ca.8V[\x91_\x83\x01\x90a2Q\x91a.tV[` \x82\x01\x90a2_\x91a.\x82V[a2h\x90a>\xBDV[\x90`\x01\x92\x90_\x80\x91a2xa\x1E\xD5V[a2\x81\x90a.\x90V[\x93a2\x8Aa.\xACV[\x96_\x88\x01\x90a2\x98\x91a.\xB9V[` \x87\x01\x90a2\xA6\x91a&\xF5V[`@\x86\x01\x90a2\xB4\x91a&\xF5V[a2\xBD\x90a \xEDV[``\x85\x01\x90a2\xCB\x91a&\xF5V[a2\xD4\x90a \xEDV[`\x80\x84\x01\x90a2\xE2\x91a&\xF5V[`\xA0\x83\x01\x90a2\xF0\x91a&\xE7V[`\x02\x90a2\xFC\x91a.\xC7V[\x90a3\x06\x91a0oV[`\x01a3\x13\x90`\x05a/\0V[a3\x1E\x90`\x01a0\x9BV[`\x01a3)\x90a+\xDAV[a33\x90_a, V[a3;a0\xDAV[a3E\x90_a1\x07V[a3Ma1FV[a3W\x90_a1uV[a3_a1FV[a3j\x90`\x01a, V[a3ra1\xB4V[a3}\x90`\x01a1\x07V[V[\x90a3\x8B\x93\x92\x91a,\xB0V[V[\x90a3\xA8\x91a3\xA3a3\x9E\x82a\"\x12V[a7eV[a3\xAAV[V[\x90a3\xB4\x91a8=V[PV[\x90a3\xC1\x91a3\x8DV[V[`\x01a3\xCF\x91\x01a\x07\xECV[\x90V[P\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x91\x90\x81\x10\x15a3\xFAW` \x02\x01\x90V[a3\xD6V[5a4\t\x81a\x04\x02V[\x90V[a4\x15\x90a\x03\xF6V[\x90V[\x91\x90\x91a4#a5\x92V[a4,_a \xEDV[[\x80a4Ja4Da4?\x85\x88\x90a3\xD2V[a\x07\xECV[\x91a\x07\xECV[\x10\x15a4\xCEWa4\xC9\x90a4pa4ka4f\x85\x88\x85\x91a3\xEAV[a3\xFFV[a?\x84V[a4\x84a4\x7F\x84\x87\x84\x91a3\xEAV[a3\xFFV[a4\xAE\x7F\xBE\xB2w\x01\x82\x8FQ[\x03\x06\x9DD\xDAe\x19\xB6\xC4\x91\xDA\x13\xEF\x1C\xA7\x08.a\x99Y\xD1\xF4\x8D\xDB\x91a4\x0CV[\x90a4\xB7a\x03\xE4V[\x80a4\xC1\x81a\nlV[\x03\x90\xA2a3\xC3V[a4-V[PP\x90PV[\x90a4\xEE\x91a4\xE9a4\xE4a\x11\xBCV[a7eV[a4\xF0V[V[a5\x05\x82a5\0`#\x84\x90a\r\xF5V[a, V[a5Da52\x7F\x90\xB3~Y\xA9B\xC5A<\xE0\n:\x84JG\xC2\0\x94\x97\x98\x97\xCCe6\x06\xD9%\xE9\t\x88_5\x92a\x06\tV[\x92a5;a\x03\xE4V[\x91\x82\x91\x82a\x05\nV[\x03\x90\xA2V[\x90a5S\x91a4\xD4V[V[a?\x9AV[a5ba mV[Pa5|a5vc\x01\xFF\xC9\xA7`\xE0\x1Ba\x03\xF6V[\x91a\x03\xF6V[\x14\x90V[a5\x90a5\x8Ba\x11\xBCV[a7eV[V[a5\x9Aa5\x80V[V[Q\x90V[\x90a5\xAA\x82a5\x9CV[\x81\x10\x15a5\xBBW` \x80\x91\x02\x01\x01\x90V[a3\xD6V[a5\xCA\x90Qa\x03\xF6V[\x90V[\x91\x90\x82a5\xEAa5\xE4a5\xDF_a.,V[a\x05_V[\x91a\x05_V[\x14a7F\xDD`\xE1\x1B\x81R\x80a9W`\x04\x82\x01a\nlV[\x03\x90\xFD[Pa9daA\x15V[a9\x96a9\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05_V[\x91a\x05_V[\x14\x15a99V[Pa9\xAEa9\xA9a\x1F\xC5V[a7eV[V[a9\xB9\x90a9\x9DV[V[a9\xC4\x90a\x05\xE1V[\x90V[a9\xD0\x90a9\xBBV[\x90V[a9\xDC\x90a\x05\xFDV[\x90V[\x90PQ\x90a9\xEC\x82a\x08\xC2V[V[\x90` \x82\x82\x03\x12a:\x07Wa:\x04\x91_\x01a9\xDFV[\x90V[a\x03\xEEV[\x91\x90a::` a:$a:\x1F\x86a9\xC7V[a9\xD3V[cR\xD1\x90-\x90a:2a\x03\xE4V[\x93\x84\x92a\"\xDEV[\x82R\x81\x80a:J`\x04\x82\x01a\nlV[\x03\x91Z\xFA\x80\x91_\x92a:\xDAW[P\x15_\x14a:\x8BWPP\x90`\x01a:lWP[V[a:\x87\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[\x92\x83a:\xA6a:\xA0a:\x9Ba%\x15V[a\x07\xC8V[\x91a\x07\xC8V[\x03a:\xBBWa:\xB6\x92\x93PaA;V[a:jV[a:\xD6\x84_\x91\x82\x91c*\x87Ri`\xE2\x1B\x83R`\x04\x83\x01a\n\xC3V[\x03\x90\xFD[a:\xFC\x91\x92P` =\x81\x11a;\x03W[a:\xF4\x81\x83a\x0E\x84V[\x81\x01\x90a9\xEEV[\x90_a:WV[P=a:\xEAV[a;\x130a8\xEAV[a;Ea;?\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x05_V[\x91a\x05_V[\x03a;LWV[_cp>F\xDD`\xE1\x1B\x81R\x80a;d`\x04\x82\x01a\nlV[\x03\x90\xFD[\x7F\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x90V[\x90a;\x96\x90a4\x0CV[_R` R`@_ \x90V[a;\xB9a;\xBE\x91a;\xB1a%\xEAV[P`!a;\x8CV[a&#V[\x90V[\x90a;\xCB\x90a\x06\tV[_R` R`@_ \x90V[\x90V[T\x90V[_R` _ \x90V[a;\xF0\x81a;\xDAV[\x82\x10\x15a<\nWa<\x02`\x04\x91a;\xDEV[\x91\x02\x01\x90_\x90V[a3\xD6V[\x90V[`\xFF\x16\x90V[a<$a<)\x91a\x06]V[a<\x12V[\x90V[a<6\x90Ta<\x18V[\x90V[`\x08\x1C\x90V[a\xBDV[a=\xB6a=\xB0\x86a\x07\xC8V[\x91a\x07\xC8V[\x14a=ZV[P\x93PP\x92PPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x90V[a=\xF1aA\xC4V[V[a=\xFBa=\xE9V[V[a>\x05aA\xC4V[V[a>\x0Fa=\xFDV[V[a>\x19aA\xC4V[a>!a>#V[V[a>+aB\x1FV[V[a>5a>\x11V[V[a>?aA\xC4V[a>Ga>IV[V[a>QaBeV[V[a>[a>7V[V[a>g\x90Qa.hV[\x90V[a>t\x90Qa\x05_V[\x90V[a>\x80\x90a.hV[\x90V[a>\x8C\x90a>wV[\x90RV[\x91` a>\xB1\x92\x94\x93a>\xAA`@\x82\x01\x96_\x83\x01\x90a>\x83V[\x01\x90a\x13\xAFV[V[` \x01\x90V[Q\x90V[a>\xC5a!\xF8V[Pa?\x07a>\xE0` a>\xD9_\x85\x01a>]V[\x93\x01a>jV[\x91a>\xF8a>\xECa\x03\xE4V[\x93\x84\x92` \x84\x01a>\x90V[` \x82\x01\x81\x03\x82R\x03\x82a\x0E\x84V[a?\x19a?\x13\x82a>\xB9V[\x91a>\xB3V[ \x90V[\x1B\x90V[\x91\x90`\x08a?A\x91\x02\x91a?;`\x01\x80`\xA0\x1B\x03\x84a?\x1DV[\x92a?\x1DV[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90V[\x91\x90a?da?_a?l\x93a\x06\tV[a?KV[\x90\x83Ta?!V[\x90UV[a?\x82\x91a?|a%\xEAV[\x91a?NV[V[_a?\x93a?\x98\x92`!a;\x8CV[a?pV[V[a?\xADc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16a;\xA2V[\x80a?\xC8a?\xC2a?\xBD_a.,V[a\x05_V[\x91a\x05_V[\x03aB\xA3Wc\xFF\xFF\xFF\xFF`\xE0\x1B_5\x16aB\x84V[_c\xD9.#=`\xE0\x1B\x81R\x80a?\xF5`\x04\x82\x01a\nlV[\x03\x90\xFD[a@\x14\x90_\x91\x82\x91c\"\xA2\xD0{`\xE2\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[a@!\x90a\x03\xF6V[\x90RV[\x91` a@F\x92\x94\x93a@?`@\x82\x01\x96_\x83\x01\x90a@\x18V[\x01\x90a\x13\xAFV[V[a@b_\x92\x83\x92c\x10\xAE\x11\xA9`\xE3\x1B\x84R`\x04\x84\x01a@%V[\x03\x90\xFD[\x90a@w`\x01\x80`\xA0\x1B\x03\x91a\x16,V[\x91\x81\x19\x16\x91\x16\x17\x90V[\x90a@\x96a@\x91a@\x9D\x92a\x06\tV[a?KV[\x82Ta@fV[\x90UV[a@\xB0a@\xB5\x92\x91`!a;\x8CV[a@\x81V[V[\x91` a@\xD8\x92\x94\x93a@\xD1`@\x82\x01\x96_\x83\x01\x90a\x13\xAFV[\x01\x90a\x07\xCBV[V[\x90a@\xEFa@\xE9\x83\x83\x90a&zV[\x15a\x04CV[a@\xF7WPPV[aA\x11_\x92\x83\x92c\xE2Q}?`\xE0\x1B\x84R`\x04\x84\x01a@\xB7V[\x03\x90\xFD[aA\x1Da%\xEAV[PaA8_aA2aA-a%\x15V[aB\xC1V[\x01a&#V[\x90V[\x90aAE\x82aB\xC4V[\x81aAp\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x91a\x06\tV[\x90aAya\x03\xE4V[\x80aA\x83\x81a\nlV[\x03\x90\xA2aA\x8F\x81a>\xB9V[aA\xA1aA\x9B_a \xEDV[\x91a\x07\xECV[\x11_\x14aA\xB5WaA\xB1\x91aC\x94V[P[V[PPaA\xBFaC\x19V[aA\xB3V[aA\xD5aA\xCFaC\xC3V[\x15a\x04CV[aA\xDBWV[_c\x1A\xFC\xD7\x9F`\xE3\x1B\x81R\x80aA\xF3`\x04\x82\x01a\nlV[\x03\x90\xFD[aA\xFFaA\xC4V[aB\x07aB\tV[V[aB\x1DaB\x14a;hV[_\x80\x91\x01a/\0V[V[aB'aA\xF7V[V[aB1aA\xC4V[aB9aBHV[V[aBE`\x01a\x1AvV[\x90V[aBcaBSaC\xE1V[_aB\\aB;V[\x91\x01a/UV[V[aBmaB)V[V[\x91\x90aB\x82\x90_` \x85\x01\x94\x01\x90a@\x18V[V[aB\x9F\x90_\x91\x82\x91c\xC2\xA8%\xF5`\xE0\x1B\x83R`\x04\x83\x01aBoV[\x03\x90\xFD[_\x80\x916\x82\x807\x816\x91Z\xF4=_\x80>_\x14aB\xBDW=_\xF3[=_\xFD[\x90V[\x80;aB\xD8aB\xD2_a \xEDV[\x91a\x07\xECV[\x14aB\xFAWaB\xF8\x90_aB\xF2aB\xEDa%\x15V[aB\xC1V[\x01a@\x81V[V[aC\x15\x90_\x91\x82\x91cL\x9C\x8C\xE3`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[4aC,aC&_a \xEDV[\x91a\x07\xECV[\x11aC3WV[_c\xB3\x98\x97\x9F`\xE0\x1B\x81R\x80aCK`\x04\x82\x01a\nlV[\x03\x90\xFD[``\x90V[\x90aCfaCa\x83a\x0E\xC0V[a\x0E\xABV[\x91\x82RV[=_\x14aC\x86WaC{=aCTV[\x90=_` \x84\x01>[V[aC\x8EaCOV[\x90aC\x84V[_\x80aC\xC0\x93aC\xA2aCOV[P\x83\x90` \x81\x01\x90Q\x91Z\xF4\x90aC\xB7aCkV[\x90\x91\x90\x91aD\x05V[\x90V[aC\xCBa mV[PaC\xDE_aC\xD8a=\xC5V[\x01a+\xCDV[\x90V[\x7F\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\x90V[\x90aD\x19\x90aD\x12aCOV[P\x15a\x04CV[_\x14aD%WPaD\x89V[aD.\x82a>\xB9V[aD@aD:_a \xEDV[\x91a\x07\xECV[\x14\x80aDnW[aDOWP\x90V[aDj\x90_\x91\x82\x91c\x99\x96\xB3\x15`\xE0\x1B\x83R`\x04\x83\x01a\x13\xBCV[\x03\x90\xFD[P\x80;aD\x83aD}_a \xEDV[\x91a\x07\xECV[\x14aDGV[aD\x92\x81a>\xB9V[aD\xA4aD\x9E_a \xEDV[\x91a\x07\xECV[\x11_\x14aD\xB3W\x80Q\x90` \x01\xFD[_c\xD6\xBD\xA2u`\xE0\x1B\x81R\x80aD\xCB`\x04\x82\x01a\nlV[\x03\x90\xFD\xFE\xA1dsolcC\0\x08\x1A\0\n", ); #[derive(serde::Serialize, serde::Deserialize)] #[derive(Default, Debug, PartialEq, Eq, Hash)] @@ -12328,6 +12342,151 @@ function TANGLE_ROLE() external view returns (bytes32); }; #[derive(serde::Serialize, serde::Deserialize)] #[derive(Default, Debug, PartialEq, Eq, Hash)] + /**Function with signature `UPGRADER_ROLE()` and selector `0xf72c0d8b`. +```solidity +function UPGRADER_ROLE() external view returns (bytes32); +```*/ + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UPGRADER_ROLECall; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] + ///Container type for the return parameters of the [`UPGRADER_ROLE()`](UPGRADER_ROLECall) function. + #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)] + #[derive(Clone)] + pub struct UPGRADER_ROLEReturn { + #[allow(missing_docs)] + pub _0: alloy::sol_types::private::FixedBytes<32>, + } + #[allow( + non_camel_case_types, + non_snake_case, + clippy::pub_underscore_fields, + clippy::style + )] + const _: () = { + use alloy::sol_types as alloy_sol_types; + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UPGRADER_ROLECall) -> Self { + () + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UPGRADER_ROLECall { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self + } + } + } + { + #[doc(hidden)] + #[allow(dead_code)] + type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + #[doc(hidden)] + type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,); + #[cfg(test)] + #[allow(dead_code, unreachable_patterns)] + fn _type_assertion( + _t: alloy_sol_types::private::AssertTypeEq, + ) { + match _t { + alloy_sol_types::private::AssertTypeEq::< + ::RustType, + >(_) => {} + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From for UnderlyingRustTuple<'_> { + fn from(value: UPGRADER_ROLEReturn) -> Self { + (value._0,) + } + } + #[automatically_derived] + #[doc(hidden)] + impl ::core::convert::From> for UPGRADER_ROLEReturn { + fn from(tuple: UnderlyingRustTuple<'_>) -> Self { + Self { _0: tuple.0 } + } + } + } + #[automatically_derived] + impl alloy_sol_types::SolCall for UPGRADER_ROLECall { + type Parameters<'a> = (); + type Token<'a> = as alloy_sol_types::SolType>::Token<'a>; + type Return = alloy::sol_types::private::FixedBytes<32>; + type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,); + type ReturnToken<'a> = as alloy_sol_types::SolType>::Token<'a>; + const SIGNATURE: &'static str = "UPGRADER_ROLE()"; + const SELECTOR: [u8; 4] = [247u8, 44u8, 13u8, 139u8]; + #[inline] + fn new<'a>( + tuple: as alloy_sol_types::SolType>::RustType, + ) -> Self { + tuple.into() + } + #[inline] + fn tokenize(&self) -> Self::Token<'_> { + () + } + #[inline] + fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> { + ( + as alloy_sol_types::SolType>::tokenize(ret), + ) + } + #[inline] + fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence(data) + .map(|r| { + let r: UPGRADER_ROLEReturn = r.into(); + r._0 + }) + } + #[inline] + fn abi_decode_returns_validate( + data: &[u8], + ) -> alloy_sol_types::Result { + as alloy_sol_types::SolType>::abi_decode_sequence_validate(data) + .map(|r| { + let r: UPGRADER_ROLEReturn = r.into(); + r._0 + }) + } + } + }; + #[derive(serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, Hash)] /**Function with signature `UPGRADE_INTERFACE_VERSION()` and selector `0xad3cb1cc`. ```solidity function UPGRADE_INTERFACE_VERSION() external view returns (string memory); @@ -18930,6 +19089,8 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external #[allow(missing_docs)] TANGLE_ROLE(TANGLE_ROLECall), #[allow(missing_docs)] + UPGRADER_ROLE(UPGRADER_ROLECall), + #[allow(missing_docs)] UPGRADE_INTERFACE_VERSION(UPGRADE_INTERFACE_VERSIONCall), #[allow(missing_docs)] VIRTUAL_ASSETS(VIRTUAL_ASSETSCall), @@ -19078,6 +19239,7 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external [225u8, 164u8, 82u8, 24u8], [226u8, 126u8, 5u8, 193u8], [243u8, 201u8, 179u8, 17u8], + [247u8, 44u8, 13u8, 139u8], [247u8, 203u8, 120u8, 154u8], ]; /// The names of the variants in the same order as `SELECTORS`. @@ -19140,6 +19302,7 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external ::core::stringify!(BPS_DENOMINATOR), ::core::stringify!(resetPendingSlashCount), ::core::stringify!(LOCK_SIX_MONTHS), + ::core::stringify!(UPGRADER_ROLE), ::core::stringify!(roundDuration), ]; /// The signatures in the same order as `SELECTORS`. @@ -19202,6 +19365,7 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external ::SIGNATURE, ::SIGNATURE, ::SIGNATURE, + ::SIGNATURE, ::SIGNATURE, ]; /// Returns the signature for the given selector, if known. @@ -19229,7 +19393,7 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external impl alloy_sol_types::SolInterface for MultiAssetDelegationCalls { const NAME: &'static str = "MultiAssetDelegationCalls"; const MIN_DATA_LENGTH: usize = 0usize; - const COUNT: usize = 59usize; + const COUNT: usize = 60usize; #[inline] fn selector(&self) -> [u8; 4] { match self { @@ -19287,6 +19451,9 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external Self::TANGLE_ROLE(_) => { ::SELECTOR } + Self::UPGRADER_ROLE(_) => { + ::SELECTOR + } Self::UPGRADE_INTERFACE_VERSION(_) => { ::SELECTOR } @@ -20055,6 +20222,17 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external } LOCK_SIX_MONTHS }, + { + fn UPGRADER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw( + data, + ) + .map(MultiAssetDelegationCalls::UPGRADER_ROLE) + } + UPGRADER_ROLE + }, { fn roundDuration( data: &[u8], @@ -20724,6 +20902,17 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external } LOCK_SIX_MONTHS }, + { + fn UPGRADER_ROLE( + data: &[u8], + ) -> alloy_sol_types::Result { + ::abi_decode_raw_validate( + data, + ) + .map(MultiAssetDelegationCalls::UPGRADER_ROLE) + } + UPGRADER_ROLE + }, { fn roundDuration( data: &[u8], @@ -20835,6 +21024,11 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external inner, ) } + Self::UPGRADER_ROLE(inner) => { + ::abi_encoded_size( + inner, + ) + } Self::UPGRADE_INTERFACE_VERSION(inner) => { ::abi_encoded_size( inner, @@ -21143,6 +21337,12 @@ function upgradeToAndCall(address newImplementation, bytes memory data) external out, ) } + Self::UPGRADER_ROLE(inner) => { + ::abi_encode_raw( + inner, + out, + ) + } Self::UPGRADE_INTERFACE_VERSION(inner) => { ::abi_encode_raw( inner, @@ -23376,6 +23576,12 @@ the bytecode concatenated with the constructor's ABI-encoded arguments.*/ ) -> alloy_contract::SolCallBuilder<&P, TANGLE_ROLECall, N> { self.call_builder(&TANGLE_ROLECall) } + ///Creates a new call builder for the [`UPGRADER_ROLE`] function. + pub fn UPGRADER_ROLE( + &self, + ) -> alloy_contract::SolCallBuilder<&P, UPGRADER_ROLECall, N> { + self.call_builder(&UPGRADER_ROLECall) + } ///Creates a new call builder for the [`UPGRADE_INTERFACE_VERSION`] function. pub fn UPGRADE_INTERFACE_VERSION( &self, diff --git a/fixtures/Cargo.toml b/fixtures/Cargo.toml index 4aaa9877..d1b0917b 100644 --- a/fixtures/Cargo.toml +++ b/fixtures/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tnt-core-fixtures" -version = "0.17.0" +version = "0.17.1" edition = "2021" rust-version = "1.81" description = "Local testnet fixture data for TNT Core"